通过设置属性可以使得任务栏自动隐藏或者不隐藏,现在的问题是如何在代码中判断这两种情况
CWnd* pWnd=CWnd::FindWindow("Shell_TrayWnd", 0);
if(NULL != pWnd)
if(pWnd->IsWindowVisible())
MessageBox("Is Show");
else
MessageBox("Is Hide");
这种方法不行,明明是隐藏了任务栏但是还是执行 MessageBox("Is Show");如何处理,谢谢
CWnd* pWnd=CWnd::FindWindow("Shell_TrayWnd", 0);
if(NULL != pWnd)
if(pWnd->IsWindowVisible())
MessageBox("Is Show");
else
MessageBox("Is Hide");
这种方法不行,明明是隐藏了任务栏但是还是执行 MessageBox("Is Show");如何处理,谢谢
HWND hwndTaskBar = ::FindWindow("Shell_TrayWnd", NULL);
::ShowWindow(hwndTaskBar, SW_HIDE);
//屏蔽快捷键
SystemParametersInfo(SPI_SCREENSAVERRUNNING, TRUE, NULL, NULL);//还原
HWND hwndTaskBar = ::FindWindow("Shell_TrayWnd", NULL);
::ShowWindow(hwndTaskBar, SW_SHOW);
SystemParametersInfo(SPI_SCREENSAVERRUNNING, FALSE, NULL, NULL);你的任务栏可能被设为自动隐藏.
如果设为总在最前而没有自动隐藏的话可以用你的方法实现隐藏.
如果设为自动隐藏,则因为操作系统还会根据鼠标事件来隐藏或者显示,
这种情况下可以用:
if(!bStatusBarHide)
{
::ShowWindow(::FindWindow("Shell_TrayWnd",NULL),SW_HIDE);
::EnableWindow(::FindWindow("Shell_TrayWnd",NULL),FALSE);
bStatusBarHide = TRUE;
}
else
{
::ShowWindow(::FindWindow("Shell_TrayWnd",NULL),SW_SHOW);
//SW_SHOWNOACTIVATE可用但不激活
::EnableWindow(::FindWindow("Shell_TrayWnd",NULL),TRUE);
bStatusBarHide = FALSE;
}