怎样在单文档应用程序加入背景音乐啊??急!!

dragon8250 2003-10-17 05:57:02
怎样在单文档应用程序加入背景音乐啊??
...全文
277 21 打赏 收藏 转发到动态 举报
写回复
用AI写文章
21 条回复
切换为时间正序
请发表友善的回复…
发表回复
dragon8250 2003-10-23
  • 打赏
  • 举报
回复
yzkzero(Skall You):
你是在哪加的啊!
我是在BOOL CTestDialogApp::InitInstance()
客户区初始化的时候加的!运行是没有错,可是“当”一下后就没声音了!
tks!!
yzkzero 2003-10-23
  • 打赏
  • 举报
回复
InitInstance()里加也可以

我是加在SetRegistryKey(_T("应用程序向导生成的本地应用程序"));后面
yzkzero 2003-10-23
  • 打赏
  • 举报
回复
OnInitDialog()里加的

yzkzero 2003-10-21
  • 打赏
  • 举报
回复
如果要重复的话:

PlaySound(_T("G:\\TLJ\\GETDOWN.WAV"),NULL,SND_ASYNC|SND_LOOP);
yzkzero 2003-10-21
  • 打赏
  • 举报
回复
我可以的,代码如下:


加入Winmm.lib
#include <Mmsystem.h>

PlaySound(_T("G:\\TLJ\\GETDOWN.WAV"),NULL,SND_FILENAME);
pudding205 2003-10-21
  • 打赏
  • 举报
回复
我也是新手,我也碰到这个问题,老调试不出,呵呵
哥哥姐姐们,救急啊~~~~~~~~~~
dragon8250 2003-10-21
  • 打赏
  • 举报
回复
各位帮忙啊!!
8412230 2003-10-19
  • 打赏
  • 举报
回复
gz 学习中
dragon8250 2003-10-19
  • 打赏
  • 举报
回复
各位多指点,tks!!
dragon8250 2003-10-18
  • 打赏
  • 举报
回复
我以c:\1.wav为例
用:
PlaySound(PSTR,HMODULE,DWORD);
PlaySound("c:\\1.wav",NULL,SND_FILENAME|SND_ASYNC);
也添加了winmm.lib
头文件加的windows.h
还是出错了!我在初始化和view类里分别添加了以上代码,都有错!应该在什么地方加啊?
报错如下:
F:\object\TestDialog\TestDialogView.cpp(62) : error C2065: 'PlaySound' : undeclared identifier
F:\object\TestDialog\TestDialogView.cpp(62) : error C2275: 'PSTR' : illegal use of this type as an expression
c:\program files\microsoft visual studio\vc98\include\winnt.h(166) : see declaration of 'PSTR'
F:\object\TestDialog\TestDialogView.cpp(62) : error C2275: 'HMODULE' : illegal use of this type as an expression
c:\program files\microsoft visual studio\vc98\include\windef.h(253) : see declaration of 'HMODULE'
F:\object\TestDialog\TestDialogView.cpp(62) : error C2275: 'DWORD' : illegal use of this type as an expression
c:\program files\microsoft visual studio\vc98\include\windef.h(141) : see declaration of 'DWORD'
F:\object\TestDialog\TestDialogView.cpp(63) : error C2065: 'SND_FILENAME' : undeclared identifier
F:\object\TestDialog\TestDialogView.cpp(63) : error C2065: 'SND_ASYNC' : undeclared identifier
Error executing cl.exe.
Creating browse info file...

TestDialog.exe - 6 error(s), 0 warning(s)
新手上路,麻烦了!!
wizlian 2003-10-17
  • 打赏
  • 举报
回复
#include <windows.h>
//#include <windowsx.h>

LRESULT CALLBACK WndProc(HWND,UINT,WPARAM,LPARAM);


int WINAPI WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,LPSTR nCmdLine,int nShowCmd){
HWND hwnd;
WNDCLASSEX wndclass;
MSG msg;
const TCHAR clsName[]=TEXT("HelloWin");
const TCHAR helloError[]=TEXT("HelloWinError");

wndclass.cbSize=sizeof(WNDCLASSEX);
wndclass.style=CS_HREDRAW|CS_VREDRAW|CS_DBLCLKS;
wndclass.lpfnWndProc=WndProc;
wndclass.cbClsExtra=0;
wndclass.cbWndExtra=0;
wndclass.hInstance=hInstance;
wndclass.hIcon=LoadIcon(hInstance,IDI_APPLICATION);
wndclass.hCursor=LoadCursor(NULL,IDC_ARROW);
wndclass.hbrBackground=(HBRUSH)COLOR_BACKGROUND;
wndclass.lpszMenuName=NULL;
wndclass.lpszClassName=clsName;
wndclass.hIconSm=LoadIcon(hInstance,IDI_APPLICATION);

int SW_XFS=GetSystemMetrics(SM_CXSCREEN);
int SW_YFS=GetSystemMetrics(SM_CYSCREEN);

if(!RegisterClassEx(&wndclass)){
MessageBox(NULL,TEXT("本程序需要在NT下运行!"),helloError,MB_ICONERROR);
return 0;
}
hwnd=CreateWindowEx(WS_EX_CLIENTEDGE,clsName,TEXT("HelloWin"),WS_OVERLAPPEDWINDOW,
0,0,SW_XFS,SW_YFS,NULL,NULL,hInstance,NULL);
if(!hwnd){
MessageBox(NULL,TEXT("窗口创建失败!"),helloError,MB_ICONERROR);
return 0;
}

ShowWindow(hwnd,SW_SHOW);
UpdateWindow(hwnd);
//消息循环
while(GetMessage(&msg,NULL,0,0)){
TranslateMessage(&msg);
DispatchMessage(&msg);
}
return msg.wParam;
}

LRESULT CALLBACK WndProc(HWND hWnd,UINT nMessage,WPARAM wParam,LPARAM lParam){
HDC hdc;
PAINTSTRUCT ps;
RECT rect;
const TCHAR buff[]=TEXT("Hello World!");

switch(nMessage){
case WM_CREATE:
PlaySound(TEXT("c:\\HelloWin.mp3"),NULL,SND_FILENAME|SND_ASYNC);
//注意要在project->settings->里的link一项中Object/library modules
//里添加winmm.lib否则要报错的

return 0;
case WM_RBUTTONDOWN:
MessageBox(hWnd,TEXT("鼠标左键按下!"),TEXT("HelloWin"),MB_OK);
break;
case WM_KEYDOWN:
switch(wParam){
case VK_ESCAPE:
MessageBox(hWnd,TEXT("ESC键按下!"),TEXT("HelloWin"),MB_OK);
PostQuitMessage(0);
return 0;
default:
return DefWindowProc(hWnd,nMessage,wParam,lParam);
}
return 0;

case WM_PAINT:
hdc=BeginPaint(hWnd,&ps);
GetClientRect(hWnd,&rect);
SetTextColor(hdc,RGB(255,0,0));
TextOut(hdc,300,400,buff,sizeof(buff));
SetTextColor(hdc,RGB(0,0,255));
DrawText(hdc,buff,-1,&rect,DT_CENTER|DT_VCENTER|DT_SINGLELINE);
EndPaint(hWnd,&ps);
return 0;
case WM_DESTROY:
PostQuitMessage(0);
return 0;
default:
return DefWindowProc(hWnd,nMessage,wParam,lParam);
}

return DefWindowProc(hWnd,nMessage,wParam,lParam);
}
wizlian 2003-10-17
  • 打赏
  • 举报
回复
另外补充一点,你要在project->settings->里的link一项中Object/library modules
里添加winmm.lib否则要报错的
dragon8250 2003-10-17
  • 打赏
  • 举报
回复
那位能用代码说明一下阿??麻烦了!
wizlian 2003-10-17
  • 打赏
  • 举报
回复
PlaySound(PSTR,HMODULE,DWORD)
PlaySound("c:\\1.wav",NULL,SND_FILENAME|SND_ASYNC);
这个只能播放waveform
tigerfox 2003-10-17
  • 打赏
  • 举报
回复
另外还要注意音频文件的格式。
wav, mp3可直接播放,rm要有适当的解码器。
tigerfox 2003-10-17
  • 打赏
  • 举报
回复
其实很简单:开一个线程播放音乐就行了。或用计时器控制,重复地播放
Paris_Luo 2003-10-17
  • 打赏
  • 举报
回复
用directsound试试
dragon8250 2003-10-17
  • 打赏
  • 举报
回复
应该是用PlaySound();
可是具体怎么用啊?那位大哥能详细说明一下啊!
对声音文件的格式有什么要求吗》?
如果比如我想将c:\1.rm作为背景音乐可以吗??
dragon8250 2003-10-17
  • 打赏
  • 举报
回复
在线等待中。。。。
yaoha2003 2003-10-17
  • 打赏
  • 举报
回复
UP
加载更多回复(1)

15,979

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 界面
社区管理员
  • 界面
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧