MFC下如何qt窗口全屏显示示窗口

-------------
新增文件夹...
新增文件夹
(多个标签用逗号分隔)
mfc对话框全屏显示,控件按比例改变大小.docx
mfc对话框全屏显示,控件按比例改变大小
mfc对话框全屏显示,控件按比例改变大小&&
加载中...!
如果长时间没有加载,请点击
来安装或允许flash插件运行!
下载本文档需要登录,并付出相应积分()。
文件大小:11.93 KB
所需积分:& 2
相关资讯  — 
相关讨论话题  — 
浏览:7662次&& 下载:0次
格式:docx
上传时间: 08:55:03
同类热门文档
0次浏览 &16次下载
15121次浏览 &16次下载
0次浏览 &16次下载
0次浏览 &12次下载
0次浏览 &51次下载
34104次浏览 &20次下载
相关经验 -
& 2人评&9页
& 0人评&3页
& 5人评&149页
& 3人评&6页
& 2人评&25页
OPEN-OPEN, all rights reserved.MFC实现全屏功能代码实例
投稿:shichen2014
字体:[ ] 类型:转载 时间:
这篇文章主要介绍了MFC实现全屏功能的代码,对于学习MFC有一定的借鉴价值,需要的朋友可以参考下
windows应用程序中有很多的播放器都有快捷键控制窗口以全屏幕的方式显示。MFC实现给应用程序加上全屏幕的功能,并不需要很多的代码,比如给一个基于对话框的应用程序加上全屏功能只需要以下少量代码就可以实现了。
实现代码如下所示:
void CFullScreenDlg::FullScreenView(void)
RECT rectD
WINDOWPLACEMENT wpN
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 = rectD
wpNew = m_wpP
wpNew.showCmd = SW_SHOWNORMAL;
wpNew.rcNormalPosition = rectD
m_bFullScreen=
// 退出全屏幕时恢复到原来的窗口状态
m_bFullScreen=
wpNew = m_wpP
SetWindowPlacement ( &wpNew );
void CFullScreenDlg::OnGetMinMaxInfo(MINMAXINFO* lpMMI)
// TODO: Add your message handler code here and/or call default
if (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_bFullS
您可能感兴趣的文章:
大家感兴趣的内容
12345678910
最近更新的内容
常用在线小工具MFC单文档(SDI)全屏程序实现方法 - shanzhizi的专栏 - CSDN博客
MFC单文档(SDI)全屏程序实现方法
MFC单文档(SDI)全屏程序实现方法,供大家参考:
实现思路:
按下F11时转换全屏显示方式
全屏时需要记录窗口当前位置
记录工具栏、状态栏的显示属性
隐藏/显示菜单栏
隐藏/显示标题栏
最大化/最小化窗口
MFC单文档(SDI)全屏程序实现技术要点:
为View添加KeyDown事件,当nChar==122时添加处理代码。
在View中获取MainFrame的指针:CMainFrame *pMain=(CMainFrame *)AfxGetApp()-&m_pMainW
在MainFrame中添加状态等变量:
bool m_bFullScreenM&
CMenu m_menuMainW
bool m_bStatusBarWasVisible, m_bToolBarWasV
CRect m_mainR
在MainFrame的OnCreate事件中初始化变量值: this-&m_menuMainWnd.LoadMenu(IDR_MAINFRAME);&
this-&SetMenu(&m_menuMainWnd);
在MainFrame的构造函数中初始化全屏状态为false:this-&m_bFullScreenMode =
在MainFrame中添加开关函数:FullScreenModeSwitch
在MainFrame中添加全屏的开关函数:FullScreenModeOn、FullScreenModeOff
核心代码:
Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/--&void CMainFrame::FullScreenModeOn()
m_bToolBarWasVisible=(m_wndToolBar.IsWindowVisible()!=0);//隐藏工具栏之前工具栏的显示状态
m_wndToolBar.ShowWindow(SW_HIDE);//隐藏工具栏
m_bStatusBarWasVisible=(m_wndStatusBar.IsWindowVisible()!=0);//隐藏状态栏之前状态栏的显示状态
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);
//设置全屏显示标志
m_bFullScreenMode=
void CMainFrame::FullScreenModeOff()
//恢复窗口标题
LONG style=::GetWindowLong(m_hWnd,GWL_STYLE);
style|=WS_CAPTION;
::SetWindowLong(m_hWnd,GWL_STYLE,style);
//如果需要,显示工具栏
if(m_bToolBarWasVisible)
m_wndToolBar.ShowWindow(SW_SHOW);
//如果需要,显示状态栏
if(m_bStatusBarWasVisible)
m_wndStatusBar.ShowWindow(SW_SHOW);
//恢复窗口以前的大小
MoveWindow(&m_mainRect);
//恢复菜单栏
this-&SetMenu(&m_menuMainWnd);
//设置全屏显示标志
m_bFullScreenMode=
void CMainFrame::FullScreenModeSwitch()
if(this-&m_bFullScreenMode)
this-&FullScreenModeOff();
this-&FullScreenModeOn();
相关文章推荐查看: 5436|回复: 5
VS2008单文档全屏显示视图
阅读权限60
铜牌会员, 积分 1144, 距离下一级还需 356 积分
& && &最近将一个原来在6.0中写的屏幕监控的软件移植到VS2008上面,遇到了许多问题,其中关于单文档视图的全屏显示觉得很有用,所以贴出来和大家分享。
& && &废话补多少,下面贴出源码:
//显示全屏
void CMainFrame::OnFullscreen()
{
& & & & // TODO: 在此添加命令处理程序代码
& & & & GetWindowPlacement(&m_OldWndPlacement);//保存原窗口位置
& & & & CRect& & & & WindowR
& & & & CRect& & & & ClientR
& & & & GetWindowRect(&WindowRect); //获取普通窗口位置
& & & & //获取各个控制条之外的客户区位置
& & & & RepositionBars(0,0xffffff,AFX_IDW_PANE_FIRST,reposQuery,&ClientRect);
& & & & ClientToScreen(&ClientRect);//将指定区域转换成屏幕坐标
& & & & // 隐藏工具栏,状态栏,菜单栏
& & & & this-&ShowPane(&m_wndToolBar, FALSE, FALSE, TRUE);
& & & & this-&ShowPane(&m_wndStatusBar, FALSE, FALSE, TRUE);
& & & & this-&ShowPane(&m_wndMenuBar, FALSE, FALSE, TRUE);
& & & &
& & & & //获取屏幕分辩率
& & & & int nFullWidth=GetSystemMetrics(SM_CXSCREEN);
& & & & int nFullHeight=GetSystemMetrics(SM_CYSCREEN);
& & & & //计算全屏显示的窗口位置
& & & & m_FullScreenRect.left=WindowRect.left-ClientRect.
& & & & m_FullScreenRect.top=WindowRect.top-ClientRect.
& & & & m_FullScreenRect.right=(WindowRect.right-ClientRect.right)+nFullW
& & & & m_FullScreenRect.bottom=(WindowRect.bottom-ClientRect.bottom)+nFullH& &
& & & & m_bFullScreen=TRUE;&&//全屏标志
& & & & //进入全屏显示
& & & & WINDOWPLACEMENT
& & & & wndpl.length=sizeof(WINDOWPLACEMENT);
& & & & wndpl.flags=0;
& & & & wndpl.showCmd=SW_SHOWNORMAL;
& & & & wndpl.rcNormalPosition=m_FullScreenR
& & & & SetWindowPlacement(&wndpl);
}
//退出全屏
void CMainFrame::EndFullScreen()
{
& & & & m_bFullScreen=FALSE;
& & & & //将窗口显示到原来的位置
& & & & this-&SetWindowPlacement(&m_OldWndPlacement);
& & & & //显示菜单栏,工具栏,状态栏
& & & & this-&ShowPane(&m_wndToolBar, TRUE, FALSE, TRUE);
& & & & this-&ShowPane(&m_wndStatusBar, TRUE, FALSE, TRUE);
& & & & this-&ShowPane(&m_wndMenuBar, TRUE, FALSE, TRUE);
}
复制代码说明:
& && & 在VS2008的单文档中,标题栏以及菜单栏还有状态栏并不是像是在6.0中使用RepositionBars函数来获取控制条之外的客户区域就能将他们去掉的,必须在添加相应的代码才可以将它们去掉。另外,想问一下,正因为在VS2008中单文档与在6.0中的不同,我要是想获取2008中单文档的除去菜单,工具栏,标题栏之外的客户区的视图的大小怎么获取?最后,希望本贴能对一些朋友有所帮助!
发帖求助前要善用【】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请编辑帖子并把分类改成【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【热心】和【驿站币】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
阅读权限40
中级会员, 积分 484, 距离下一级还需 16 积分
GetClientRect可以吗?
发帖求助前要善用【】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请编辑帖子并把分类改成【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【热心】和【驿站币】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
阅读权限60
铜牌会员, 积分 1144, 距离下一级还需 356 积分
可以,我之前理解错误了,刚才问题已经解决了
发帖求助前要善用【】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请编辑帖子并把分类改成【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【热心】和【驿站币】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
阅读权限60
铜牌会员, 积分 1258, 距离下一级还需 242 积分
感谢楼主分享
发帖求助前要善用【】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请编辑帖子并把分类改成【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【热心】和【驿站币】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
阅读权限70
银牌会员, 积分 2485, 距离下一级还需 515 积分
嗯&&很好&&解决了我一个问题 之前VC6.0转VS2008不行 现在好了
发帖求助前要善用【】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请编辑帖子并把分类改成【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【热心】和【驿站币】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
阅读权限70
银牌会员, 积分 2137, 距离下一级还需 863 积分
感谢楼主分享
发帖求助前要善用【】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请编辑帖子并把分类改成【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【热心】和【驿站币】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
工作时间:8:00-18:00
客服热线:
官方微信扫一扫
VC驿站微信公众号cctry2009
Powered by Discuz!为MFC应用程序添加全屏幕显示功能_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
为MFC应用程序添加全屏幕显示功能
&&为MFC应用程序添加全屏幕显示功能
你可能喜欢

我要回帖

更多关于 mfc 全屏 的文章

 

随机推荐