怎样实现全屏显示(vc)
源代碼如下:
void CMainFrame::SetFullScreenMode(BOOL bFullMode)?// 全屏顯示
{
?if(bFullMode == m_bFullScreenMode)// 當(dāng)前狀態(tài)已經(jīng)是全屏或非全屏狀態(tài),直接返回
??return;
?//m_bToolBarWasVisible = (m_wndToolBar.IsWindowVisible() != 0);
?//m_wndToolBar.ShowWindow(!bFullMode);
?m_bStatisBarWasVisible = (m_wndStatusBar.IsWindowVisible() != 0);
?m_wndStatusBar.ShowWindow(!bFullMode);
?// 保存窗口位置
?if(bFullMode)
??GetWindowRect(&m_MainRect);
?else?
??MoveWindow(m_MainRect);??
?
?// 移走或添加主窗口的標(biāo)題
?LONG style = ::GetWindowLong(m_hWnd,GWL_STYLE);
?if(bFullMode)
??style &= ~WS_CAPTION;
?else
??style |= WS_CAPTION;
?::SetWindowLong(m_hWnd,GWL_STYLE,style);
?int cxScreen = GetSystemMetrics(SM_CXSCREEN);
?int cyScreen = GetSystemMetrics(SM_CYSCREEN);
?
?if(bFullMode)
?{?//設(shè)置窗口位置
??SetWindowPos(NULL,-2,-2,cxScreen,cyScreen,SWP_NOZORDER);
??// 保存最初的菜單,并設(shè)置菜單為 NULL
??ASSERT(m_OrgMenu.GetSafeHmenu() == NULL);
??CMenu *pOldMenu = GetMenu();
??m_OrgMenu.Attach(pOldMenu->Detach());
??SetMenu((CMenu*)NULL);
??// 右側(cè)控制面板
??m_wndMyBar1.ShowWindow(SW_HIDE);
??m_TabCtrl.ShowWindow(SW_HIDE);
?}
?else
?{
??ASSERT(m_OrgMenu.GetSafeHmenu() != NULL);
??SetMenu(&m_OrgMenu);
??m_OrgMenu.Detach();
??// 右側(cè)控制面板
??m_wndMyBar1.ShowWindow(SW_SHOW);
??m_TabCtrl.ShowWindow(SW_SHOW);
?}
?// 窗口所有控件重排
?RecalcLayout();
?m_bFullScreenMode = bFullMode;
}
在View中調(diào)用
void CNiKoView::OnChar(UINT nChar, UINT nRepCnt, UINT nFlags)
{
?// TODO: Add your message handler code here and/or call default
?if(nChar == 'F' || nChar == 'f' || nChar == VK_ESCAPE)
?{// 全屏顯示控制
??CMainFrame *pFrame = (CMainFrame*)AfxGetMainWnd();
??if(nChar == 'F' || nChar == 'f' )
???pFrame->SetFullScreenMode(TRUE);
??else
???pFrame->SetFullScreenMode(FALSE);
?}
?CView::OnChar(nChar, nRepCnt, nFlags);
}
總結(jié)
以上是生活随笔為你收集整理的怎样实现全屏显示(vc)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 网络测试及故障诊断方法及工具
- 下一篇: 第2章 构建环境——安装Oracle 9