簡體   English   中英

如何檢測窗口已最大化?

[英]How to detect a window has been maximized?

有誰知道當窗口最大化時發送的 WM_MESSAGE (通過在標題欄中按下最大化按鈕,或者通過雙擊標題欄?)

是否有按下最大化按鈕的 Windows 消息?

Win32/C++,謝謝。

您會在 wParam 中獲得值為 SIZE_MAXIMIZED 的WM_SIZE消息

編輯

下面的@jamesdlin 評論引起了我對WM_WINDOWPOSCHANGED文檔的關注,其中指出(強調我的):

備注默認情況下,DefWindowProc 函數將 WM_SIZE 和 WM_MOVE 消息發送到窗口。 如果應用程序在不調用 DefWindowProc 的情況下處理 WM_WINDOWPOSCHANGED 消息,則不會發送 WM_SIZE 和 WM_MOVE 消息 在 WM_WINDOWPOSCHANGED 消息期間執行任何移動或大小更改處理而不調用 DefWindowProc 會更有效。

謝謝詹姆斯!

我最近處理了這個問題,我確定的方法是檢查IsZoomed以響應WM_WINDOWPOSCHANGED ,將其結果與前一個結果進行比較以檢測何時發生轉換,然后將WM_WINDOWPOSCHANGED轉發到默認窗口過程。

如果您可以完全控制應用程序中的消息處理,並且知道沒有(並且永遠不會)抑制WM_MOVE / WM_SIZEWM_WINDOWPOSCHANGED處理WM_SIZE ,那么您應該能夠直接在WM_SIZE處理程序中處理它在jachgate 的回答中描述。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM