MFC 带Ribbonbar的窗口 实现全屏和取消全屏
2017-07-24 14:12
393 查看
void CMainFrame::FullScreen()
{
m_wndRibbonBar.ShowWindow(SW_HIDE);//隐藏工具栏
m_wndStatusBar.ShowWindow(SW_HIDE);//隐藏状态栏
m_menuMainWnd = GetMenu();
//隐藏菜单栏
SetMenu(NULL);
// 保存以前的位置信息
GetWindowRect(&m_FullScreenRect);
// 去除主窗口的标题
LONG style=::GetWindowLong(m_hWnd,GWL_STYLE);
style&=~WS_CAPTION;
::SetWindowLong(m_hWnd,GWL_STYLE,style);
// 使客户区无边框
ModifyStyleEx(WS_EX_CLIENTEDGE, 0, SWP_FRAMECHANGED);
ModifyStyleEx(WS_EX_CLIENTEDGE, NULL);
//得到当前系统的分辨率
int screenx=GetSystemMetrics(SM_CXSCREEN);
int screeny=GetSystemMetrics(SM_CYSCREEN);
// 全屏显示
SetWindowPos(NULL,0,0,screenx,screeny,SWP_NOZORDER);
style=::GetWindowLong(this->m_hWnd,GWL_STYLE);
m_bFullScreen = TRUE;
}
//退出全屏
void CMainFrame::EndFullScreen()
{
//恢复窗口标题
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_FullScreenRect);
//恢复菜单栏
this->SetMenu(m_menuMainWnd);
m_bFullScreen = FALSE;
}
最后要在C....View::PreCreateWindow()添加:cs.style &= ~WS_BORDER;
一切OK!!!
{
m_wndRibbonBar.ShowWindow(SW_HIDE);//隐藏工具栏
m_wndStatusBar.ShowWindow(SW_HIDE);//隐藏状态栏
m_menuMainWnd = GetMenu();
//隐藏菜单栏
SetMenu(NULL);
// 保存以前的位置信息
GetWindowRect(&m_FullScreenRect);
// 去除主窗口的标题
LONG style=::GetWindowLong(m_hWnd,GWL_STYLE);
style&=~WS_CAPTION;
::SetWindowLong(m_hWnd,GWL_STYLE,style);
// 使客户区无边框
ModifyStyleEx(WS_EX_CLIENTEDGE, 0, SWP_FRAMECHANGED);
ModifyStyleEx(WS_EX_CLIENTEDGE, NULL);
//得到当前系统的分辨率
int screenx=GetSystemMetrics(SM_CXSCREEN);
int screeny=GetSystemMetrics(SM_CYSCREEN);
// 全屏显示
SetWindowPos(NULL,0,0,screenx,screeny,SWP_NOZORDER);
style=::GetWindowLong(this->m_hWnd,GWL_STYLE);
m_bFullScreen = TRUE;
}
//退出全屏
void CMainFrame::EndFullScreen()
{
//恢复窗口标题
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_FullScreenRect);
//恢复菜单栏
this->SetMenu(m_menuMainWnd);
m_bFullScreen = FALSE;
}
最后要在C....View::PreCreateWindow()添加:cs.style &= ~WS_BORDER;
一切OK!!!
相关文章推荐
- MFC 的ribbon菜单实现全屏
- 使用WindowsFormsHost实现WPF窗口中“镶嵌”MFC窗口
- 把Qt 的窗口程序 嵌入到 MFC 的窗口程序中 实现思路
- MFC窗口实现闪烁~~
- MFC中左键移动窗口实现方法
- MFC中实现组合键调用窗口功能
- MFC MDI 全屏实现
- [MFC] 无边框窗口的Resize拖动效果的实现(下):子窗口覆盖,导致主窗口热点区无法响应WM_NCHITTEST
- 怎么实现MFC窗口的最大化以及控件随最大化发生位置变动原因
- MFC中对话框全屏(非最大化)实现方法
- C#实现带指定文本水印的截图(指定窗口与 全屏)
- C++创建控件并响应三部曲、设置窗口全屏、OnSize实现控件大小改变、跟踪调试顺序
- mfc 窗口控件全屏显示
- MFC 中实现在客户区拖动来拖动窗口的方法总结
- MFC技术系列(四)--Frame窗口之Control Bar(2)
- MFC基于对话框程序启动时隐藏窗口的实现
- MFC所有控件随窗口变化的实现
- MFC窗体实现 F11全屏切换 2种方法
- 一个MFC小程序界面的实现思路(窗口分割)
- MFC 中实现窗口淡入淡出、逐步放大显示效果