为了使主应用程序窗口在桌面中央显示,MFC提供了一种简单的方法,即利用CWnd::CenterWindow()函数来实现。
在主应用程序窗口的OnCreate()函数中插入Centerwindow()的调用。
int CMainFrame::OnCreate(LPCREATESTRUCT lpCreateStruct)
{
if( CMainFrame::OnCreate(lpCreateStruct) == -1)
return -1;
//使主应用程序窗口位于桌面中央
//对 CWnd::GetDesktopWindow() 的调用是可选的。
CenterWindow( CWnd::GetDesktopWindow() );
}
你可能考虑过,在几行代码中简单的根据 当前窗口的矩形 和 它父类成员区域的矩形 来计算目标的位置,就可以使窗口居中。这种方法全部都是正确的,但是,必须有一种稳固的实现类负责某些额外的细节。可参考CWnd::CenterWindow()函数的伪代码(p116).
关于如何使视图在 主框架窗口中 居中的方法:
方法1、在视图的框架窗口类的OnCreate()函数中调用CenterWindow()函数
方法2、在视图类中重载虚函数OnInitialUpdate(),并在其中调用GetParentFrame()->CenterWindow();