关于peekmessage的PM_REMOVE和PM_REMOVE问题
线程函数代码如下:
static unsigned __stdcall TestThread(LPVOID)
{
MSG msg;
PeekMessage(&msg,NULL,NULL,NULL,PM_REMOVE);
int i = 0;
while(TRUE)
{
PeekMessage(&msg,NULL,WM_TEST,WM_TEST,PM_REMOVE);
switch(msg.message)
{
case WM_TEST:
i++;
break;
default:
break;
}
Sleep(1000);
}}
即使使用了PM_REMOVE, 在调试的时候 发现向线程发送一个wm_test消息,发现 case wm_test一直进来,也就是说,wm_test消息并未从消息队列删除。msdn上说peekmessage中如果使用pm_remove参数,除了(wm_paint),其他的消息都要被删除的,困惑中。
线程函数代码如下:
static unsigned __stdcall TestThread(LPVOID)
{
MSG msg;
PeekMessage(&msg,NULL,NULL,NULL,PM_REMOVE);
int i = 0;
while(TRUE)
{
PeekMessage(&msg,NULL,WM_TEST,WM_TEST,PM_REMOVE);
switch(msg.message)
{
case WM_TEST:
i++;
break;
default:
break;
}
Sleep(1000);
}}
即使使用了PM_REMOVE, 在调试的时候 发现向线程发送一个wm_test消息,发现 case wm_test一直进来,也就是说,wm_test消息并未从消息队列删除。msdn上说peekmessage中如果使用pm_remove参数,除了(wm_paint),其他的消息都要被删除的,困惑中。
解决方案 »
- 请问定义BMP格式的工程师为什么要定义4字节对齐,这样不是很麻烦吗?
- 如何把菜单响应和按钮响应归为一个函数操作?
- 我想在vc里交朋友交流技术,一定要有诚心交流技术,否则别进来了.
- 怎么做在打开窗口的同时,播放*.mp3,*.rm的文件呢?
- 定义全局函数
- 关于文字编码的问题!!!
- 准确翻译一下"需求分析"、"系统分析"、"模块切分"、"进度表"、"常用的"这几个单词(英文)?
- 如何从c++转到vc++?
- 谁能给我发一个类似windows资源管理器的例子!及拥有treeview和listview的sdi!
- 怎样使程序自动启动?
- 关于在mfc中视频播放的问题
- 如何让程序 建立 exe 远程访问文件?
-----lz,你写错了么,怎么两个词语是一样的?
应该向窗口发消息
Messages are not removed from the queue after processing by PeekMessage.PM_REMOVE
Messages are removed from the queue after processing by PeekMessage.