窗口全屏 隐藏taskbar SIP button及处理x消息

 

设置全屏窗口

重设窗口大小 

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

 

 

 

你可能感兴趣的:(窗口全屏 隐藏taskbar SIP button及处理x消息)