首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

win32 SDK 中 GetMessage和 settimer是不是必须在同一个线程?该怎么处理

2012-04-12 
win32 SDK 中 GetMessage和 settimer是不是必须在同一个线程?前面发了一个 settimer 调用成功,但是收发消

win32 SDK 中 GetMessage和 settimer是不是必须在同一个线程?
前面发了一个 settimer 调用成功,但是收发消息失败的问题,

我发觉 如果 GetMessage 和 settimer 在同一个线程中,就能成功收发消息,不在同一个线程中就收发不到,这个是怎么了


难道新线程中 settimer 后需要再调用下 GetMessage?

[解决办法]
如果通过消息处理不用回调的话, 调用 SetTimer 的线程必须是拥有窗口句柄的线程. MSDN 说得很明确.
[解决办法]
回调函数是在默认的窗口处理过程中调用的.

如果窗口句柄设置好了的, 就可以. 但是回调函数是在拥有窗口的那个线程中被回调的, 而不是调用 SetTimer 的那个线程.

如果你的窗口句柄为 NULL 的话, 你就需要在线程里面自己建立消息循环来处理 WM_TIMER, 把它分发给适当的窗口.

热点排行