在一个Windows应用程序中有两个线程,线程A创建了3个窗口,记作Win_A1,Win_A2,Win_A3,然后线程A创建了线程B,线程B创建了2个窗口,记作Win_B1,Win_B2;最后线程A与线程B分别进入了消息循环。根据Windows核心编程中讲到的知识,线程A的消息循环只能接收到发往Win_A1,Win_A2,Win_A3这三个窗口的消息,而线程B的消息循环只能接收到发往Win_B1,Win_B2这两个窗口的消息。
问题是有一个进程外的线程,通过获取线程A的ID号并调用PostThreadMessage()发消息,那么线程A对这个消息的处理是怎么样的?是处理处理一次还是三次呀?
问题是有一个进程外的线程,通过获取线程A的ID号并调用PostThreadMessage()发消息,那么线程A对这个消息的处理是怎么样的?是处理处理一次还是三次呀?
解决方案 »
- 内存不能为"read”
- [求助]如何获得一个CSocket的状态?
- alphapaopao(炮炮) 请进
- 寻介绍VC++中各种变量类型的资料
- 多个client连接到SERVER,如何只给一个指定的client发送一个server发起的消息
- 为什么给一个类的成页函数开线程编译会出现内存错误问题?
- 内存不足地问题!
- 能不能给vc做插件,比如加入一些象类生成器一类的工具?
- 新手学VC++ 困惑
- 我想在Win2000下开发程序,任何用户安装后,其他用户也能看到并正常使用,具体见内容!!
- error C2440: 'type cast' : cannot convert from 'long (__thiscall CEditBaseApp::*
- vs2005 控制台调用com组件出错 (c++)
PostThreadMessage发送线程消息不是窗口消息,不会分发到窗口处理函数的
只能在消息循环里处理
检查lpMsg.hwnd == NULL
这一点从 控制台程序无法接收消息就能看出来没有窗口的 程序就收不到postmessage的消息,使用PostThreadMessage函数原型:BOOL PostThreadMessage(DWORD idThread,UINT Msg,WPARAM wParam,LPARAM IParam);就看那个idthread了、
写个测试程序就知道了,要看看是否会发送系统自定义的消息,如WM_PAINT之类的哦。
这一点从 控制台程序无法接收消息就能看出来没有窗口的 程序就收不到postmessage的消息,使用PostThreadMessage函数原型:BOOL PostThreadMessage(DWORD idThread,UINT Msg,WPARAM wParam,LPARAM IParam);就看那个idthread了、