我想傻傻調用是否有像PeekMessage這樣的函數不處理消息?
PeekMessage(&msg, 0, WM_KEYDOWN, WM_KEYUP, PM_NOREMOVE | PM_NOYIELD);
和Windows Vista 64,在通話的PeekMessage,是處理的消息。結果是,我將重新進入我的繪畫調用和其他各種代碼。
繪畫在我們的應用程序中可能需要幾秒鐘,所以我們添加了PeekMessage調用以查看用戶是否擊中了一個鍵,因此我們可以中斷該繪畫並啓動下一個。我們沒有意識到Windows可以開始處理我們的消息。將繪畫的真實工作放在一個單獨的線程中是一個重大的重構......我們試圖查看是否按下了特定的按鍵,或者是否單擊了鼠標滾輪或鼠標按鈕來中斷呈現。
我試過專門添加代碼以防止重新入侵,然後將隊列中的油漆消息重新注入等。這些都非常糟糕,並且有些情況下它不能正常工作。
是否有一些標誌可以添加到PeekMessage調用中?在MSDN上的文檔中我沒有看到任何新東西。我真的需要一個不處理消息的PeekMessage
。幫幫我!
同意。我沒有寫這個代碼。不幸的是,我不相信有任何函數調用會做我所需要的 - 確定如果按鍵或鼠標事件在隊列中,而不處理任何消息。 – 2009-07-15 20:00:45