PeekMessage
来源:互联网 发布:淘宝如何推广引流 编辑:程序博客网 时间:2024/06/05 18:26
调度传入的发送消息,检查发送消息的线程消息队列,并检索消息(如果有的话)。
BOOL WINAPI PeekMessage( _Out_ LPMSG lpMsg, _In_opt_ HWND hWnd, _In_ UINT wMsgFilterMin, _In_ UINT wMsgFilterMax, _In_ UINT wRemoveMsg);
参数
lpMsg [out]
类型:LPMSG
指向接收消息信息的MSG结构的指针。
hWnd [in,可选]
类型:HWND
要检索其消息的窗口的句柄。该窗口必须属于当前线程。
如果hWnd为NULL,PeekMessage将检索属于当前线程的任何窗口的消息,以及hwnd值为NULL的当前线程的消息队列中的任何消息(请参阅MSG结构)。因此,如果hWnd为NULL,则处理窗口消息和线程消息。
如果hWnd为-1,PeekMessage仅检索当前线程的消息队列中的消息,其中hwnd值为NULL,即PostMessage(hWnd参数为NULL)或PostThreadMessage发布的线程消息 。
wMsgFilterMin [in]
类型:UINT
要检查的消息范围内的第一条消息的值。使用WM_KEYFIRST(0x0100)指定第一个键盘消息或WM_MOUSEFIRST(0x0200)来指定第一个鼠标消息。
如果wMsgFilterMin和wMsgFilterMax都为零,PeekMessage返回所有可用的消息(即不执行范围过滤)。
wMsgFilterMax [in]
类型:UINT
要检查的消息范围内的最后一条消息的值。使用WM_KEYLAST指定最后一个键盘消息或WM_MOUSELAST来指定最后一个鼠标消息。
如果wMsgFilterMin和wMsgFilterMax都为零,PeekMessage返回所有可用的消息(即不执行范围过滤)。
wRemoveMsg [in]
类型:UINT
指定消息的处理方式。此参数可以是以下值中的一个或多个。
- PM_NOREMOVE
- 为0x0000
PeekMessage处理后消息不会从队列中删除。
- PM_REMOVE
- 0×0001
PeekMessage处理后消息将从队列中删除。
- PM_NOYIELD
- 0×0002
防止系统释放等待呼叫者空闲的任何线程(请参阅WaitForInputIdle)。
将此值与PM_NOREMOVE或PM_REMOVE组合。
默认情况下,处理所有消息类型。要指定只处理某些消息,请指定以下一个或多个值。
- PM_QS_INPUT
- (QS_INPUT << 16)
处理鼠标和键盘消息。
- PM_QS_PAINT
- (QS_PAINT << 16)
处理油漆消息。
- PM_QS_POSTMESSAGE
- ((QS_POSTMESSAGE | QS_HOTKEY | QS_TIMER)<< 16)
处理所有发布的消息,包括计时器和热键。
- PM_QS_SENDMESSAGE
- (QS_SENDMESSAGE << 16)
处理所有发送的消息。
返回值
类型:BOOL
如果消息可用,则返回值不为零。
如果没有可用的消息,返回值为零。
备注
的PeekMessage检索与由所述标识的窗口相关联的消息的hWnd由指定的参数或任何其子的IsChild功能,并且通过给定的消息的值的范围内wMsgFilterMin和wMsgFilterMax参数。
请注意,应用程序只能使用wMsgFilterMin和wMsgFilterMax参数中的低字; 高字保留给系统。
请注意,PeekMessage始终检索WM_QUIT消息,无论您为wMsgFilterMin和wMsgFilterMax指定了哪些值。
在此呼叫期间,系统提供待处理的非排队消息,即使用SendMessage,SendMessageCallback,SendMessageTimeout或SendNotifyMessage函数发送到调用线程拥有的窗口的消息。
然后检索与指定的过滤器匹配的第一个排队的消息。该系统还可以处理内部事件。如果未指定过滤器,则按以下顺序处理消息:
- 发送信息
- 发布消息
- 输入(硬件)消息和系统内部事件
- 发消息(再次)
- WM_PAINT消息
- WM_TIMER消息
所述的PeekMessage功能通常不会删除WM_PAINT从队列中的消息。WM_PAINT消息保留在队列中,直到它们被处理。但是,如果WM_PAINT消息具有NULL更新区域,PeekMessage将其从队列中删除。
如果顶级窗口停止响应消息超过几秒钟,系统会将该窗口视为不响应,并使用具有相同z阶,位置,大小和视觉属性的ghost窗口替换该窗口。这允许用户移动它,调整大小,甚至关闭应用程序。
但是,这些是唯一可用的操作,因为应用程序实际上没有响应。当一个应用程序被调试时,系统不会生成一个鬼窗口。
- PeekMessage
- PeekMessage
- peekmessage
- PeekMessage
- PeekMessage()
- PeekMessage
- PeekMessage
- PeekMessage
- PeekMessage
- PeekMessage
- peekmessage函数
- peekmessage getmessage
- GetMessage PeekMessage
- peekmessage getmessage
- PeekMessage 详解
- PeekMessage & GetMessage
- PeekMessage&&GetMessage
- PeekMessage&GetMessage
- 【大数据部落】电信公司churn数据客户流失knn预测分析(二)
- python导入第三方库
- PyQt4入门教程(2)_PyQt4的第一个程序
- 223. Rectangle Area
- Android团队的组建和管理
- PeekMessage
- 核心动画(三)-关键帧动画
- AtCoder Grand Contest 017-B
- JS-5-prototype、__proto__
- 美团CodeM初赛B轮-黑白树(树形结构贪心)
- 并发编程笔记(一)
- 标准IO重定向到文件非交互式设备时的缓冲策略
- POJ 1276 Cash Machine <多重背包>
- HihoCoder