CSDN论坛 > VC/MFC > 基础类

怎样才能让PlaySound(MAKEINTRESOURCE(IDR_WAVE1),hInstance,SND_RESOURCE¦SND_LOOP¦SND_ASYNC);立即停止声音播放? [问题点数:0分]

结帖率 100%
CSDN今日推荐
Bbs3
本版专家分:896
Bbs3
本版专家分:896
Bbs5
本版专家分:4824
Blank
蓝花 2000年11月 VB大版内专家分月排行榜第三
Bbs3
本版专家分:896
Bbs3
本版专家分:896
Bbs3
本版专家分:542
匿名用户不能发表回复!
其他相关推荐
DialogBoxParam(hinstExe, MAKEINTRESOURCE(IDD_ERRORSHOW), NULL, Dlg_Proc, _ttoi(pszCmdLine));
.
LoadIcon() --加载一个图标资源
LoadIcon() 函数原型如下: ? 1 2 3 4 HICON LoadIcon(   HINSTANCE hInstance,   LPCTSTR lpIconName ); 该函数从与 hInstance 模块相关联的可执行文件中装入lpIc
“PlaySound”: 找不到标识符
这两天在看windows程序设计,对于《windows程序设计pdf版》中第三章中的一段源代码在VS2008中跑了下,出现了问题 -----错误 3 error C3861: “PlaySound”: 找不到标识符。 查阅了相关的资料才解决掉。 下面是我的解决方案: PlaySound (TEXT ("hellowin.wav"), NULL, SND_FILENAME | SND_A
Windows下目录监视程序代码
用于完成指定目录变化监控 /*----------------------线程函数------------------------------------*/ DWORD WINAPI CDDlg::ThreadProc( LPVOID lParam ) //线程函数 { CDDlg* obj = (CDDlg*)lParam; //参数转化 obj->hDir = CreateFile( //打开目录,得到目录的句柄 obj->m_strWatchedDir, GENERIC_READ|GENERIC_WRITE, FILE_SHARE_READ|FILE_SHARE_WRITE|FILE_SHARE_DELETE, NULL, OPEN_EXISTING, FILE_FLAG_BACKUP_SEMANTICS, NULL ); if(obj->hDir ==INVALID_HANDLE_VALUE ) return false; char buf[(sizeof(FILE_NOTIFY_INFORMATION)+MAX_PATH)*2]; FILE_NOTIFY_INFORMATION* pNotify=(FILE_NOTIFY_INFORMATION*)buf; DWORD dwBytesReturned; while(true) { if( ::ReadDirectoryChangesW( obj->hDir, pNotify, sizeof(buf), true, FILE_NOTIFY_CHANGE_FILE_NAME| FILE_NOTIFY_CHANGE_DIR_NAME| FILE_NOTIFY_CHANGE_ATTRIBUTES| FILE_NOTIFY_CHANGE_SIZE| FILE_NOTIFY_CHANGE_LAST_WRITE| FILE_NOTIFY_CHANGE_LAST_ACCESS| FILE_NOTIFY_CHANGE_CREATION| FILE_NOTIFY_CHANGE_SECURITY, &dwBytesReturned, NULL, NULL ) ) { char tmp[MAX_PATH], str1[MAX_PATH], str2[MAX_PATH]; memset( tmp, 0, sizeof(tmp) ); //ZeroMemory() WideCharToMultiByte( CP_ACP,0,pNotify->FileName,pNotify->FileNameLength/2,tmp,99,NULL,NULL ); strcpy( str1, tmp ); if(pNotify->NextEntryOffset !=0 ) { PFILE_NOTIFY_INFORMATION p = (PFILE_NOTIFY_INFORMATION)((char*)pNotify+pNotify->NextEntryOffset); memset( tmp, 0, sizeof(tmp) ); WideCharToMultiByte( CP_ACP,0,p->FileName,p->FileNameLength/2,tmp,99,NULL,NULL ); strcpy( str2, tmp ); } switch(pNotify->Action) { case FILE_ACTION_ADDED: if(obj->m_bAddNew0) { CTime tt=CTime::GetCurrentTime(); CString strTT; strTT.Format("%d:%d:%d",tt.GetHour(),tt.GetMinute(),tt.GetSecond()); obj->m_list.InsertItem(0,obj->m_szi); obj->m_list.SetItemText(0,2,"添加了新文件"); obj->m_list.SetItemText(0,3,str1); obj->m_list.SetItemText(0,1,strTT); // PlaySound(MAKEINTRESOURCE(IDR_WAVE1),AfxGetResourceHandle(),SND_RESOURCE|SND_PURGE|SND_NODEFAULT); } break; case FILE_ACTION_REMOVED: if(obj->m_bDel0) { CTime tt=CTime::GetCurrentTime(); CString strTT; strTT.Format("%d:%d:%d",tt.GetHour(),tt.GetMinute(),tt.GetSecond()); obj->m_list.InsertItem(0,obj->m_szi); obj->m_list.SetItemText(0,2,"删除了文件"); obj->m_list.SetItemText(0,3,str1); obj->m_list.SetItemText(0,1,strTT); // PlaySound(MAKEINTRESOURCE(IDR_WAVE1),AfxGetResourceHandle(),SND_RESOURCE|SND_PURGE|SND_NODEFAULT); } break; case FILE_ACTION_RENAMED_NEW_NAME: if(obj->m_bRename0) { CTime tt=CTime::GetCurrentTime(); CString strTT; strTT.Format("%d:%d:%d",tt.GetHour(),tt.GetMinute(),tt.GetSecond()); obj->m_list.InsertItem(0,obj->m_szi); obj->m_list.SetItemText(0,2,"重命名了文件"); strcat(str1,"->"); obj->m_list.SetItemText(0,3,strcat(str1,str2)); obj->m_list.SetItemText(0,1,strTT); // PlaySound(MAKEINTRESOURCE(IDR_WAVE1),AfxGetResourceHandle(),SND_RESOURCE|SND_PURGE|SND_NODEFAULT); } break; case FILE_ACTION_RENAMED_OLD_NAME: if(obj->m_bRename0) { CTime tt=CTime::GetCurrentTime(); CString strTT; strTT.Format("%d:%d:%d",tt.GetHour(),tt.GetMinute(),tt.GetSecond()); obj->m_list.InsertItem(0,obj->m_szi); obj->m_list.SetItemText(0,2,"重命名了文件"); strcat(str1," 改名为 "); obj->m_list.SetItemText(0,3,strcat(str1,str2)); obj->m_list.SetItemText(0,1,strTT); // PlaySound(MAKEINTRESOURCE(IDR_WAVE1),AfxGetResourceHandle(),SND_RESOURCE|SND_PURGE|SND_NODEFAULT); } break; case FILE_ACTION_MODIFIED: if(obj->m_bModify0) { CTime tt=CTime::GetCurrentTime(); CString strTT; strTT.Format("%d:%d:%d",tt.GetHour(),tt.GetMinute(),tt.GetSecond()); obj->m_list.InsertItem(0,obj->m_szi); obj->m_list.SetItemText(0,2,"修改了文件"); obj->m_list.SetItemText(0,3,str1); obj->m_list.SetItemText(0,1,strTT); // PlaySound(MAKEINTRESOURCE(IDR_WAVE1),AfxGetResourceHandle(),SND_RESOURCE|SND_PURGE|SND_NODEFAULT); } break; default: if(obj->m_bOther0) { CTime tt=CTime::GetCurrentTime(); CString strTT; strTT.Format("%d:%d:%d",tt.GetHour(),tt.GetMinute(),tt.GetSecond()); obj->m_list.InsertItem(0,obj->m_szi); obj->m_list.SetItemText(0,2,"未知变化"); obj->m_list.SetItemText(0,3,""); obj->m_list.SetItemText(0,1,strTT); // PlaySound(MAKEINTRESOURCE(IDR_WAVE1),AfxGetResourceHandle(),SND_RESOURCE|SND_PURGE|SND_NODEFAULT); } break; } obj->m_i++; itoa(obj->m_i,obj->m_szi,10); //AfxBeginThread(SoundThread,0); } else break; } return 0; }
Windows API一日一练(17)DialogBox和DialogBoxParam函数
对话框是比较常用的窗口,比如当你想让用户输入一些参数时就可以使用对话框。或者提示一些警告的信息,都是可以使用对话框的。比如当你拷贝文件时,Windows就会提示一个拷贝文件的进度对话框。对话框的使用范围比较广,并且它在设计时就可以看到运行的结果模样,这样方便设计。但对话框又分为两类,一种对话框运行后,一定要用户关闭那个对话框后才能返回到父窗口;一种对话框是不需要关闭后就可以直接返回父窗口。因此,软
使用PlaySound函数播放小尺寸WAVE音频的过程
播放: PlaySound((LPCTSTR)IDR_WAVE_DIAL_TEL, AfxGetInstanceHandle(), SND_RESOURCE | SND_ASYNC |SND_LOOP); 停止就顺理成章的写为: PlaySound(NULL, AfxGetInstanceHandle(), SND_RESOURCE | SND_ASYNC |SND_LOOP); 可实际当中,怎么也不能停止播放。真正可以停止播放的是以下调用方式。 PlaySound(NULL, AfxGetInstanceHandle(), SND_MEMORY | SND_ASYNC |SND_LOOP); 个中原因我也没有深入下去,我想可能有这么一个解释。播放小尺寸WAVE文件,PlaySound会将音频资源存入一个放音缓冲中去。如果想停止的话,就先要清空放音缓冲才行。
DialogBox和DialogBoxParam函数
对话框是比较常用的窗口,比如当你想让用户输入一些参数时就可以使用对话框。或者提示一些警告的信息,都是可以使用对话框的。比如当你拷贝文件时,Windows就会提示一个拷贝文件的进度对话框。对话框的使用范围比较广,并且它在设计时就可以看到运行的结果模样,这样方便设计。但对话框又分为两类,一种对话框运行后,一定要用户关闭那个对话框后才能返回到父窗口;一种对话框是不需要关闭后就可以直接返回父窗口。因此,软
MFC点击按钮发出声音_playsound_循环/单次播放_声音文件加入程序中
在VC++的程序设计中,可以利用各种标准的资源,如位图,菜单,对话框等。同时VC++也允许用户自定义资源,因此我们可以将声音文件作为用户自定义资源加入程序资源文件中,经过编译连接生成EXE文件,实现无.WAV文件的声音播放。 具体步骤如下: 1.在dlg.h中加入 #include #include // 加上,不然PlaySound函数无法使用 #pragma comment(
windows播放函数PlaySound
在编写windows程序时,很多时候要用到播放音乐的函数,而windows下就提供了一个函数PlaySound 首先说下这个函数的使用范围,PlaySound函数用于播放一个音频文件,且这个文件时wav格式(且只能是wav格式),如果你需要混音,比如同时播放两首音乐,那就超出了Playsound的能力,你需要用directsound的库 下面看一下百度百科中PlaySound函数的原型(htt
MFC-PlaySound
PlaySound函数是用来播放wav格式的音频文件的.它包含在mmsystem.h头文件中,还需要导入winmm.lib.其原型如下:BOOL WINAPI PlaySound( LPCSTR pszSound, HMODULE hmod, DWORD fdwSound //标记 ); pszSound:指定了要播放声音的字符串,该参数可以是WAVE文件的名字,或是WAV资源的名
关闭