我正在尝试解决MFC功能包Windows 7 taskbar won't auto-unhide when wizard-built MFC app is maximized中的此错误。
问题:
当应用程序最大化并且用户在其任务栏上具有自动隐藏功能时,该窗口将覆盖“隐藏”任务栏(该任务栏应该仍然可见,但只有1像素高)。这样隐藏隐藏的任务栏时,用户无法通过将鼠标移至屏幕底部来取消隐藏它。
要进入任务栏,用户必须按Windows键或Alt-Tab键。
我尝试过的
非常感谢。
最佳答案
Windows 7的令人讨厌的功能,可以在任务栏上全屏运行每个无字幕的窗口
...
Windows 7实际上是通过重置TOPMOST标志来完成此操作的。因此,我们需要重新设置它。
这也是任务栏属性不再具有“始终在顶部”复选框的原因。
void CMainFrame::OnSysCommand(UINT nID, LPARAM lParam)
{
// TODO: Add your message handler code here and/or call default
CWnd::OnSysCommand(nID, lParam);
// Windows7 bug fix
if (nID == SC_MAXIMIZE)
{
HWND hTaskbar = ::FindWindowW(L"Shell_TrayWnd", NULL);
::SetWindowPos(hTaskbar, HWND_TOPMOST, 0, 0, 0, 0, SWP_NOMOVE | SWP_NOSIZE | SWP_NOACTIVATE );
}
}
关于c++ - 使自动隐藏的任务栏在窗口上可见,而无需取消隐藏即可最大化,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/11725827/