如何检测是否有应用全屏显示或退出全屏显示?

时间:2019-02-22 13:52:16

标签: c++ windows winapi

当另一个应用全屏显示(例如powerpoint或VLC)时,我需要在我的应用上禁用通知,以免打扰用户。

现在,我进入这段代码,但它始终返回true。是否有一些全屏应用程序。我不确定这是否仅适用于应用程序栏或任务栏。

HWND  hWnd;
hWnd = FindWindow(L"Shell_TrayWnd", nullptr);
if( hWnd )
{
    APPBARDATA apd;
    apd.cbSize = sizeof(APPBARDATA);
    apd.hWnd = hWnd;
    bool uState = bool(SHAppBarMessage(ABN_FULLSCREENAPP , &apd));
    if(uState)
        qDebug()<<"fullscreen";
    else
        qDebug()<<"not fullscreen";
}

1 个答案:

答案 0 :(得分:0)

ABN_FULLSCREENAPP不是您发送到外壳的消息,而是当应用程序进入或退出全屏模式时外壳发送给您的消息。该消息将发送到使用ABM_NEW创建的应用栏的所有者。

文档为here

我阅读的文档是,您必须创建一个应用栏才能接收此消息,但是如果要隐藏它,则可以使用ABM_SETPOS将其设置为零高度或宽度。

相关问题