[英]Event on Application Minimized in C++ Windows API
Windows桌面API中是否有信號或事件可以告訴我我的應用程序是否處於最小化狀態? 我查看了msdn文檔,僅發現在應用程序最小化時調用的最小化事件,而不是在應用程序已經完成最小化並處於最終最小化狀態時才發現。
當我知道所設置的窗口已最小化並且不影響屏幕捕獲時,我需要關閉另一個操作(屏幕捕獲)。 我使用WM_SIZE消息來檢查窗口最小化,然后開始屏幕捕獲。 我的問題是,即使通過ProcessWindowMessage回調收到SIZE_MINIMIZED消息,在進行屏幕截圖時(即使大多數應用程序窗口完成了最小化動畫),我仍然可以看到應用程序窗口關閉。 我需要告訴我應用程序已完全最小化,而不是以截屏的方式占用整個桌面。
謝謝!
您可能需要IsIconic()
; 如果將窗口最小化,則該API將返回非零值。
我相信您正在尋找WM_SIZE消息。 更改窗口大小后將發送該消息。 如果將窗口最小化,則wParam
變量應等於SIZE_MINIMIZED
您可以嘗試這里提到的解決方案: 如何檢測何時最小化我的應用程序?
〜片段:
switch (message)
{
case WM_SYSCOMMAND:
if ((wParam & 0xFFF0) == SC_MINIMIZE)
{
// shrink the application to the notification area
// ...
return 0;
}
break;
}
或嘗試GetWindowPlacement函數: https ://msdn.microsoft.com/zh-cn/library/windows/desktop/ms633518( v= vs.85).aspx
〜剪
檢索顯示狀態以及指定窗口的還原,最小化和最大化位置。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.