msdn上说PM_NOREMOVE是不删除队列的消息,PM_REMOVE是删除队列的消息。
我在自己创建的线程里循环接收按键消息。用的PM_NOREMOVE。
while(wait)
{
BOOL result = PeekMessage(&pMsg, 0, 0, 0, PM_NOREMOVE);
if(result)
{
if(pMsg.message == WM_LBUTTONDOWN)
MessageBox(NULL, "button", "ok", MB_OK);
}
}
界面上按下按钮后就发送消息到线程。
按照理论只要按下一次按钮,线程的消息队列里就该有了按键消息。之后我不再按按钮,那线程里也该一直报接收到消息阿。
可是实际情况,线程不报任何消息。只有我按下按钮,他才报消息。和PM_REMOVE的效果是一样的。
为什么?
我在自己创建的线程里循环接收按键消息。用的PM_NOREMOVE。
while(wait)
{
BOOL result = PeekMessage(&pMsg, 0, 0, 0, PM_NOREMOVE);
if(result)
{
if(pMsg.message == WM_LBUTTONDOWN)
MessageBox(NULL, "button", "ok", MB_OK);
}
}
界面上按下按钮后就发送消息到线程。
按照理论只要按下一次按钮,线程的消息队列里就该有了按键消息。之后我不再按按钮,那线程里也该一直报接收到消息阿。
可是实际情况,线程不报任何消息。只有我按下按钮,他才报消息。和PM_REMOVE的效果是一样的。
为什么?
解决方案 »
- 不使用WS_THICKFRAME,怎么设置使控件可以改变尺寸
- telnet客户端的界面与控制台程序运行时的那个界面很相似,用什么类做的啊?
- 头痛问题~~~关于OnDraw()的问题,请帮忙解决啊
- 為什麼連接不上數據庫
- 我怎么才能把这个线程真正的关掉?
- 按 WEB 页方式查看文件夹的时候,回收站等文件夹的左边通常都有一些按钮、链接和图片,请问这是如何做的?
- CDockablePane 禁止拖动和悬浮
- CListBox 自绘.
- 一个会VC++就肯定会的很菜的问题
- ADO非常奇怪的一个问题..
- 今天在这里感谢一位CSDN的前辈,很感动,大家看完感动给顶一下。不要让这个帖子沉下去。
- 请问如何获取Excel的表头值
PM_REMOVE:PeekMessage处理后,消息从队列里除掉。
如果消息不除掉的话,再次peekmessage不是应该还能读到吗,但是线程里却读不到阿
可是不知道为什么。