GetMessage()从调用线程的消息队列中取消息,如果队列空就阻塞。
代码如下:
DWORD __stdcall PostMess(LPVOID lp);
void CTMsgDlg::OnBnClickedButton1()
{
// TODO: 在此添加控件通知处理程序代码
hThreadPM= CreateThread(NULL, 0, PostMess, NULL, 0, &dwThreadId);
}
void CTMsgDlg::OnBnClickedButton2()
{
// TODO: 在此添加控件通知处理程序代码
PostThreadMessage(dwThreadId,8888,0,0);
}
MSG message;
DWORD __stdcall PostMess(LPVOID lp)
{
while(::GetMessage(&message, NULL, 0, 0))
{
::TranslateMessage(&message);
::DispatchMessage(&message);
switch(message.message)
{
case 8888:
::Beep(100,100);
break;
}
}
return 0;
}