簡體   English   中英

在C ++ Windows API中最小化了應用程序上的事件

[英]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.

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