繁体   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