BOOL PeekMessage(
LPMSG IpMsg,
HWND hWnd,
UINT wMSGfilterMin,
UINT wMsgFilterMax,
UINT wRemoveMsg
LPMSG IpMsg,
HWND hWnd,
UINT wMSGfilterMin,
UINT wMsgFilterMax,
UINT wRemoveMsg
);
lpMsg
接收消息信息的MSG结构指针。
hWnd
其消息被检查的窗口句柄。
wMsgFilterMin
指定被检查的消息范围里的第一个消息。
wMsgFilterMax
指定被检查的消息范围里的最后一个消息。
wRemoveMsg
值
|
意义
|
---|---|
PM_NOREMOVE
|
PeekMessage处理后,消息不从队列里除掉。
|
PM_REMOVE
|
PeekMessage处理后,消息从队列里除掉。
|
PM_NOYIELD
|
此标志使系统不释放等待调用程序空闲的线程。可将PM_NOYIELD随意组合到PM_NOREMOVE或PM_REMOVE。
|
无论应用程序消息队列是否有消息,PeekMessage函数都立即返回。
MSG msg = {0};
while(msg.message != WM_QUIT)
{
if(PeekMessage(&msg,0,0,0,PM_REMOVE))
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}
else
{
Direct3d_Update(hwnd);
Direct3d_Render(hwnd);
}
}