vc++6.0编写的应用程序窗口怎么播放声音文件

以下是代码:#include<windows.h>LRESULTCALLBACKWndProc(HWND,UINT,WPARAM,LPARAM);intWINAPIWin... 以下是代码:
#include<windows.h>
LRESULT CALLBACK WndProc(HWND,UINT,WPARAM,LPARAM);
int WINAPI WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,
PSTR szCmdLine,int iCmdShow)
{
static TCHAR szAppName[]=TEXT("HelloWin");
HWND hwnd;
MSG msg;
WNDCLASS wndclass;
wndclass.style =CS_HREDRAW | CS_VREDRAW;
wndclass.lpfnWndProc =WndProc;
wndclass.cbClsExtra =0;
wndclass.cbWndExtra =0;
wndclass.hInstance =hInstance;
wndclass.hIcon =LoadIcon(NULL,IDI_APPLICATION);
wndclass.hCursor =LoadCursor(NULL,IDC_ARROW);
wndclass.hbrBackground=(HBRUSH) GetStockObject (WHITE_BRUSH);
//窗口背景为白色
wndclass.lpszMenuName =NULL;
//窗口无菜单
wndclass.lpszClassName=szAppName;
//窗口类名为窗口
if(!RegisterClass(&wndclass))
{
MessageBox(NULL,TEXT("This program requires WINdows NT!"),
szAppName,MB_ICONERROR);
//注册失败,发出警告,消息框中的图标按钮
return 0;
}
hwnd=CreateWindow(szAppName,
TEXT("The Hello Program"),
//标题名
WS_OVERLAPPEDWINDOW,
//风格
CW_USEDEFAULT,
CW_USEDEFAULT,
//左上角缺省
CW_USEDEFAULT,
CW_USEDEFAULT,
//高度和宽度缺省
NULL,
//无父窗口
NULL,
//无子菜单
hInstance,
//创建此窗口的应用程序的当前句柄
NULL);
ShowWindow(hwnd,iCmdShow);
//显示窗口函数
UpdateWindow(hwnd);
//绘制用户区
while(GetMessage(&msg,NULL,0,0))//消息循环
{
TranslateMessage(&msg);
//将虚拟键消息转化为字符消息
DispatchMessage(&msg);
//向函数分发一个消息给窗口,
}
return msg.wParam;
//消息循环结束,即程序结束时,将信息返回给系统
}
LRESULT CALLBACK WndProc(HWND hwnd,UINT message,WPARAM wParam,LPARAM lParam)
//窗口函数定义了应用程序对接受到的不同消息的响应,其中包含了应用程序对各种可能接受到的消息的处理
//过程窗口消息
{
HDC hdc;
//类似于指针的数据类型
PAINTSTRUCT ps;
//绘制客户区的信息对象用来存储矩形框的左上角坐标
RECT rect;
//高度和宽度
switch(message)
{
case WM_CREATE:
//窗口消息
PlaySound(TEXT("hellowin.wav"),NULL,SND_FILENAME | SND_ASYNC);
//播放声音
return 0;
case WM_PAINT:
hdc=BeginPaint(hwnd,&ps);
//为指定窗口进行绘图工作的准备,并填充在ps中
GetClientRect(hwnd,&rect);
//该函数获取窗口客户区的坐标,客户区坐标指定客户区的左上角和右下角。
DrawText(hdc,TEXT("Hello,Windows 98!"),-1,&rect,
DT_SINGLELINE | DT_CENTER | DT_VCENTER);
//设备描述句柄函数,将要绘制的字符串,字符串长度,获取指针地址(矩形结构的指针)
EndPaint(hwnd,&ps);
//函数标记绘画过程已结束,这个函数在每次调用BeginPaint函数之后被清除
return 0;
case WM_DESTROY:
PostQuitMessage(0);
//函数功能:该函数向系统表明有个线程有终止请求,通常用来响应MWM_DESTROY;
return 0;
}
return DefWindowProc(hwnd,message,wParam,lParam);
}
补充:编译通过,运行正确,窗口出来了但没有声音啊?
展开
 我来答
相思丶猫2C
2013-02-20 · TA获得超过1198个赞
知道小有建树答主
回答量:1432
采纳率:50%
帮助的人:960万
展开全部
改用mcisendstring来做,可以播放mp3(wav太大了)。
追问
case WM_CREATE: 
mciSendString("Play f.mp3", NULL, 0, NULL);
return 0;
就是mp3播放不了,没有声音
追答
不是你这样弄的。

mciSendString("open f.mp3 my",0,0,0);
mciSendString("play my",0,0,0);
空雪梦见
2013-02-20 · TA获得超过5598个赞
知道大有可为答主
回答量:2522
采纳率:75%
帮助的人:1214万
展开全部
不能确定程序运行的“当前目录”是什么的话,改为绝对路径试一下?比如"c:\\wtf\\hellowin.wav"。猜测有没有可能是因为程序没有找到那个wav文件。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
韭花逞味
2013-02-20 · 超过14用户采纳过TA的回答
知道答主
回答量:49
采纳率:66%
帮助的人:25万
展开全部
的确,有可能是程序没找到声音文件。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式