当另一个应用全屏显示(例如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";
}
答案 0 :(得分:0)
ABN_FULLSCREENAPP
不是您发送到外壳的消息,而是当应用程序进入或退出全屏模式时外壳发送给您的消息。该消息将发送到使用ABM_NEW
创建的应用栏的所有者。
文档为here。
我阅读的文档是,您必须创建一个应用栏才能接收此消息,但是如果要隐藏它,则可以使用ABM_SETPOS
将其设置为零高度或宽度。