设置全屏窗口
重设窗口大小
RECT rc;
SetRect(&rc,
0, 0,
GetSystemMetrics(SM_CXSCREEN),
GetSystemMetrics(SM_CYSCREEN));
MoveWindow( hWnd,
rc.left, rc.top,
rc.right, rc.bottom,
FALSE);
隐藏任务栏 和 SIP button
SHFullScreen(hWnd, SHFS_HIDETASKBAR | SHFS_HIDESIPBUTTON)
移动menu bar
SetWindowPos(SHFindMenuBar(hwndDlg), NULL, -1, -1, 0, 0, SWP_NOZORDER | SWP_NOACTIVATE);
合起来可以这样写
RECT rc;
SecureZeroMemory(&rc, sizeof(RECT));
//隐藏任务栏和SIP button
if (!SHFullScreen(hwndDlg, SHFS_HIDETASKBAR | SHFS_HIDESTARTICON | SHFS_HIDESIPBUTTON))
{
DBG_MSG(MSG_ERR, L"SHFullScreen function fail!");
}
//移动menu bar
SetWindowPos(SHFindMenuBar(hwndDlg), NULL, -1, -1, 0, 0, SWP_NOZORDER | SWP_NOACTIVATE);
//全屏化窗口
SetRect(&rc, 0, 0, GetSystemMetrics(SM_CXSCREEN), GetSystemMetrics(SM_CYSCREEN));
MoveWindow( hwndDlg, rc.left, rc.top,rc.right, rc.bottom, TRUE);
隐藏Menu bar
初始化时创建空的menu bar
SHINITDLGINFO sid;
sid.dwFlags = SHIDIF_EMPTYMENU;//这里还可以设置sip的状态
SHInitDialog( &sid )
创建空的menu bar
mbi.cbSize = sizeof(SHMENUBARINFO);
mbi.hwndParent = hwndDlg;
mbi.dwFlags = SHCMBF_EMPTYBAR;
!SHCreateMenuBar(&mbi);
隐藏SIP button.
创建menu bar时隐藏SIP button
mbi.cbSize = sizeof(SHMENUBARINFO);
mbi.hwndParent = hwndDlg;
mbi.dwFlags = SHCMBF_HIDESIPBUTTON;
SHCreateMenuBar(&mbi);
处理X按钮消息。
调用SHDoneButton(hWnd, SHDB_SHOWCANCEL); 然后主窗口去截获WM_COMMAND IDCANCEL