mfc怎么全屏

 我来答
fanfan2004cn
推荐于2016-03-31 · TA获得超过392个赞
知道小有建树答主
回答量:134
采纳率:100%
帮助的人:51.4万
展开全部
在mainframe中添加如下代码就可以
void CMainFrame::OnFull()
{
m_bFullScreen=!m_bFullScreen; // 设置全屏显示标志
LONG style = ::GetWindowLong(this->m_hWnd,GWL_STYLE);
if(m_bFullScreen)//全屏显示
{
style &= ~(WS_DLGFRAME | WS_THICKFRAME);
SetWindowLong(this->m_hWnd,GWL_STYLE, style);
this->ShowWindow(SW_SHOWMAXIMIZED);
CRect rect;
this->GetWindowRect(&rect);
::SetWindowPos(this->m_hWnd,HWND_NOTOPMOST,rect.left-1, rect.top-1, rect.right-rect.left + 3, rect.bottom-rect.top + 3, SWP_FRAMECHANGED);
}
else
{
style |= WS_DLGFRAME | WS_THICKFRAME;
SetWindowLong(this->m_hWnd, GWL_STYLE, style);
this->ShowWindow(SW_NORMAL);
}
}
追问
看了一下,加了一个成员变量。剩下的复制就可以吗?需要头文件,消息处理之类的吗?
追答
对,在头文件里加个BOOL m_bFullScreen; 
在CMainFrame的构造函数里加初始化 m_bFullScreen=false;
即可
du瓶邪
推荐于2016-11-27 · TA获得超过2.4万个赞
知道大有可为答主
回答量:1.7万
采纳率:100%
帮助的人:2870万
展开全部
  方法一:
  在Dialog::OnInitDialog()中加入:
  ModifyStyle(WS_CAPTION,0,0); // 如果只是要普通的全屏,不想去掉标题栏,就不用第一个语句
SendMessage(WM_SYSCOMMAND,SC_MAXIMIZE,0);
  不过这种方法不方便调整控件的位置,此时可以考虑方法二
  
  方法二:
先取得分辨率,
  int cx,cy;
cx = GetSystemMetrics(SM_CXSCREEN);
cy = GetSystemMetrics(SM_CYSCREEN);
  再用MoveWindow

  CRect rcTemp;
rcTemp.BottomRight() = CPoint(cx, cy);
rcTemp.TopLeft() = CPoint(0, 0);
MoveWindow(&rcTemp);
  方法二因为获得了窗口与屏幕的参数,所以当想调整Dialog上的一些控件位置时就方便许多。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友2e1c396
2013-02-07 · TA获得超过1395个赞
知道答主
回答量:53
采纳率:0%
帮助的人:14.8万
展开全部
什么叫mfc
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式