2012-03-29 77 views
0

我想確定OnClose是否已通過ALT+F4觸發,或者通過從應用程序的TaskBar圖標中選擇「關閉窗口」來觸發。到目前爲止,我所能想到的只是如此測試:不同ALT + F4與任務欄關閉事件

void ...::OnClose() 
{ 
    if (::GetKeyState(VK_MENU)) 
    { 
      // Alt F4 triggered close 
    } 
} 

有沒有更好的方法?

獎勵積分:有沒有辦法處理Windows 7任務欄關閉窗口菜單項具體?

+3

你可以監聽WM_SYSKEYDOWN/VK_F4並直接處理事件,而不是讓DefWindowProc把它變成一個標準的關閉事件。 – 2012-03-29 20:11:40

+1

你爲什麼在意? ...並記住,可以通過按ALT +空格鍵+ C關閉窗口。C – Anders 2012-03-29 20:24:28

+0

我關心我自己的原因。 :) – 2012-03-29 21:03:35

回答

1

WM_CLOSE由任務管理器發送。 當您按ALT_F4或從任務欄按鈕的系統菜單中輸入參數SC_CLOSE時,會發送WM_SYSCOMMAND。

0

您應該使用RegisterHotkey API處理ALT+F4熱鍵。運行自定義代碼,然後關閉窗口。

+4

不要對本地問題使用全局解決方案。 – 2012-03-29 20:10:01

相關問題