第一步,添加两个函数,控制控件的可见性:在mainframe中
void CMainFrame::FullScreenModeOn() { m_wndRibbonBar.ShowWindow(SW_HIDE);//隐藏工具栏 m_wndStatusBar.ShowWindow(SW_HIDE);//隐藏状态栏 //隐藏菜单栏 SetMenu(NULL); // 保存以前的位置信息 GetWindowRect(&m_mainRect); // 去除主窗口的标题 LONG style=::GetWindowLong(m_hWnd,GWL_STYLE); style&=~WS_CAPTION; ::SetWindowLong(m_hWnd,GWL_STYLE,style); //得到当前系统的分辨率 int screenx=GetSystemMetrics(SM_CXSCREEN); int screeny=GetSystemMetrics(SM_CYSCREEN); // 全屏显示 SetWindowPos(NULL,-4,-4,screenx+8,screeny+8,SWP_NOZORDER); style=::GetWindowLong(this->m_hWnd,GWL_STYLE); } void CMainFrame::FullScreenModeOff() { //恢复窗口标题 LONG style=::GetWindowLong(m_hWnd,GWL_STYLE); style|=WS_CAPTION; ::SetWindowLong(m_hWnd,GWL_STYLE,style); //如果需要,显示工具栏 m_wndRibbonBar.ShowWindow(SW_SHOW); //如果需要,显示状态栏 m_wndStatusBar.ShowWindow(SW_SHOW); //恢复窗口以前的大小 MoveWindow(&m_mainRect); //恢复菜单栏 this->SetMenu(&m_menuMainWnd); }
第二部,添加一个点击全屏显示按钮,按钮相应事件在view中调用
void CBellGlobalView::OnViewZoomfull()
{
(( CMainFrame*)::AfxGetMainWnd())->FullScreenModeSwitch();
}
第三步,添加退出全屏快捷键,实现退出在视图view中实现:
BOOL CBellGlobalView::PreTranslateMessage(MSG* pMsg) { if ( pMsg->wParam == VK_ESCAPE)//退出全屏 { (( CMainFrame*)::AfxGetMainWnd())->FullScreenModeOff();//调用主框架里的函数 return TRUE; } return CView::PreTranslateMessage(pMsg); }