mfc怎么全屏
3个回答
展开全部
在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);
}
}
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;
即可
展开全部
方法一:
在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上的一些控件位置时就方便许多。
在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上的一些控件位置时就方便许多。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
什么叫mfc
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询