windows應用程式中有很多的播放器都有快速鍵控制視窗以全螢幕的方式顯示。MFC實現給應用程式加上全螢幕的功能,並不需要很多的代碼,比如給一個基於對話方塊的應用程式加上全屏功能只需要以下少量代碼就可以實現了。
實現代碼如下所示:
void CFullScreenDlg::FullScreenView(void){RECT rectDesktop;WINDOWPLACEMENT wpNew;if (!IsFullScreen()){// We'll need these to restore the original state.GetWindowPlacement (&m_wpPrev);//Adjust RECT to new size of window::GetWindowRect ( ::GetDesktopWindow(), &rectDesktop );::AdjustWindowRectEx(&rectDesktop, GetStyle(), FALSE, GetExStyle());// Remember this for OnGetMinMaxInfo()m_rcFullScreenRect = rectDesktop;wpNew = m_wpPrev;wpNew.showCmd = SW_SHOWNORMAL;wpNew.rcNormalPosition = rectDesktop;m_bFullScreen=true;}else{// 退出全螢幕時恢複到原來的視窗狀態m_bFullScreen=false;wpNew = m_wpPrev;}SetWindowPlacement ( &wpNew );}void CFullScreenDlg::OnGetMinMaxInfo(MINMAXINFO* lpMMI){// TODO: Add your message handler code here and/or call defaultif (IsFullScreen()){lpMMI->ptMaxSize.y = m_rcFullScreenRect.Height();lpMMI->ptMaxTrackSize.y = lpMMI->ptMaxSize.y;lpMMI->ptMaxSize.x = m_rcFullScreenRect.Width();lpMMI->ptMaxTrackSize.x = lpMMI->ptMaxSize.x;}CDialog::OnGetMinMaxInfo(lpMMI);}bool CFullScreenDlg::IsFullScreen(void){// 記錄視窗當前是否處於全屏狀態return m_bFullScreen;}