我有一個運行在Win7中的沒有Titlebar的MFC應用程序(即我的標題欄是自制的,具有用於還原,最大化和關閉的自定義按鈕)。在Win7中,當用戶將窗口拖到屏幕的頂部時,它響應Win 7 API生成的最大化事件。但是,一旦最大化,我無法捕獲用戶將窗口從頂部拖動時發生的還原事件。如何在最大化窗口上處理拖動事件
我在雙擊時處理還原,我處理還原時單擊還原按鈕,但拖動我無法檢測到。
我會想象它看起來類似於:
if (message == WM_WINDOWPOSCHANGING)
{
// DETECT RESTORE MSG HERE.
}
但是,這似乎並沒有抓住它。就好像某個地方我已經禁止在窗戶最大化時移動窗戶。
有沒有辦法阻止WM_RESIZE?如何處理拖動事件以啓用自動調整大小?
我會試試!謝謝! – 2010-01-22 15:00:34
這不起作用,因爲我們的虛假標題欄實際上是一個功能區(來自CWnd)。當我捕獲命中測試並返回它是一個HTCaption時,然後將功能區拖到主框架周圍並剪切到窗口邊緣。 :( – 2010-01-22 20:16:06
那麼這是不幸的,我唯一的想法是改變用戶界面以允許從主窗口顯示「拖拽區域」 - 然後WM_NCHITTEST就可以工作 - 類似於Chrome的工作方式 – Ruddy 2010-01-22 20:39:25