第一步,添加两个函数,控制控件的可见性:在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);
}