在OnInitDialog()函数中,调用
this->ShowWindow( SW_SHOWMAXIMIZED);
函数用于将对话框全屏。
其可选参数如下:
- SW_HIDE 隐藏该窗口,并激活另一个窗口。
- SW_MINIMIZE 最小化窗口,并且激活系统列表中的顶层窗口。
- SW_RESTORE 激活并显示窗口。如果窗口最大化或最小化,窗口将被还原为其初始化时的大小和位置。
- SW_SHOW 激活该窗口,并且以当前的尺寸和位置显示该窗口。
- SW_SHOWMAXIMIZED 激活窗口,并最大化显示该窗口。
- SW_SHOWMINIMIZED 激活窗口,并且将其显示为一个图标。
- SW_SHOWMINNOACTIVE 窗口显示为一个图标,并且当前活动窗口仍然有效。
- SW_SHOWNA 以当前状态显示窗口,当前窗口仍然有效。
- SW_SHOWNOACTIVATE 以其最近的尺寸和位置显示窗口,当前窗口仍然有效。
- SW_SHOWNORMAL 激活并显示窗口。如果窗口最大化或最小化,就将窗口还原为其原来的尺寸和位置。
可根据具体的需求选择需要的参数。在这里,选择SW_SHOWMAXSIZED来实现对话框的全屏显示。
不过,在实际编程时吗、,将参数写为SW_MAXIMIZE,也会获得全屏的效果。
第二种实现对话框窗口全屏的方式是:
ModifyStyle(WS_CAPTION,0,0); //此句可以去掉对话框中的标题栏
SendMessage(WM_SYSCOMMAND, SC_MAXIMIZE,0);
第三种全屏显示的方法:随屏幕的分辩率而调节
GetWindowPlacement(&m_OldWndPlacement);
CRect WindowRect;
GetWindowRect(&WindowRect);
CRect ClientRect;
RepositionBars(0, 0xffff, AFX_IDW_PANE_FIRST, reposQuery, &ClientRect);
ClientToScreen(&ClientRect);
//获取屏幕的分辨率
int nFullWidth=GetSystemMetrics(SM_CXSCREEN);
int nFullHeight=GetSystemMetrics(SM_CYSCREEN);
//将除控制条外的客户区全屏显示到从(0,0)到(nFullWidth, nFullHeight)区域,
//将(0,0)和(nFullWidth, nFullHeight)两个点外扩充原窗口和除控制条之外的
//客户区位置间的差值, 就得到全屏显示的窗口位置
m_FullScreenRect.left=WindowRect.left-ClientRect.left;
m_FullScreenRect.top=WindowRect.top-ClientRect.top;
m_FullScreenRect.right=WindowRect.right-ClientRect.right+nFullWidth;
m_FullScreenRect.bottom=WindowRect.bottom-ClientRect.bottom+nFullHeight;
m_bFullScreen=TRUE; //设置全屏显示标志为TRUE
//进入全屏显示状态
WINDOWPLACEMENT wndpl;
wndpl.length=sizeof(WINDOWPLACEMENT);
wndpl.flags=0;
wndpl.showCmd=SW_SHOWNORMAL;
wndpl.rcNormalPosition=m_FullScreenRect;
SetWindowPlacement(&wndpl);