用PostMessage发送消息,怎么用GetMessage获得呀? 如题? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 你可以添加响应消息的映射来处理PostMessage发出的消息啊不用GetMessage获取 在主线程里面循环调用GetMessage((&msg,hwnd,0,0) 可能被APP的getmessage取掉并删除你发送过 下面就放一个getmessage 应该可以取到 我在子线程里用: PostMessage(hWnd , WM_USER+1 , 0 , 0) ; //其中hWnd有主线程的HWND。以后我在主线程,也就是窗体的某个事件中俘获: while(::GetMessage(&Msg , NULL , 0 ,0)) { break ; //一获得就退出(如果获取不到就一直等要该消息发生,该消息一获得 //就退出,接的往下执行,否则一直等) }谢谢大家! 那个while里面是你所有的语句吗?难道只有一句break?这样的话,你那个while和break根本就是多余的,GetMessage不是PeekMessage,只有取得消息了才会继续执行,否则就会等待,根本不需要while。如果这里的GetMessage取不到消息,只有两种可能:1、hWnd的这个窗口不是由主线程创建的,这样的话它的消息不存在于主线程的消息队列,可以试试PostThreadMessage。2、程序当时不处于此处的循环之中。另外这个设计很怪,如果主线程像这样处于某种假死状态的等待之中,然后由子线程唤醒的话,一般都是用WaitForSingleObject居多。 屏幕截图问题 望懂的朋友帮忙 win7下程序基址改变问题 小弟读了一篇关于分段管理机制的文章。。总感觉讲的有点问题,求高手点拨 一个很想知道的问题 小女子有一VC源程序链接问题特来求教 ATL如何触发IHTMLSelectElement组合框的onchange事件 怎样在树控件中的叶子结点前面加上复选框? --------我想在VC中使用SQL SERVER的自定义函数(UDF)-------- ichar 幹嗎用? 如何取得程序的所在路径? Windows Media Player 编程问题 急:为什么会出类型不对的错?
不用GetMessage获取
你发送过 下面就放一个getmessage 应该可以取到
PostMessage(hWnd , WM_USER+1 , 0 , 0) ; //其中hWnd有主线程的HWND。以后我在主线程,也就是窗体的某个事件中俘获:
while(::GetMessage(&Msg , NULL , 0 ,0))
{
break ; //一获得就退出(如果获取不到就一直等要该消息发生,该消息一获得
//就退出,接的往下执行,否则一直等)
}
谢谢大家!
难道只有一句break?
这样的话,你那个while和break根本就是多余的,GetMessage不是PeekMessage,只有取得消息了才会继续执行,否则就会等待,根本不需要while。
如果这里的GetMessage取不到消息,只有两种可能:
1、hWnd的这个窗口不是由主线程创建的,这样的话它的消息不存在于主线程的消息队列,可以试试PostThreadMessage。
2、程序当时不处于此处的循环之中。另外这个设计很怪,如果主线程像这样处于某种假死状态的等待之中,然后由子线程唤醒的话,一般都是用WaitForSingleObject居多。