4.2--如何使 对话框 在 另一个窗口 里居中?

MFC的默认设置是在 主应用程序窗口中央 显示所有的对话框,可以很容易的修改这种默认设置,从而使对话框居于任一窗口的中央。在对话框的OnInitDialog()函数中调用CenterWindow()函数,如下:

BOOL CDemoDlg::OnInitDialog() { CDialog::OnInitDialog(); //使对话框居于活动窗口的中央 CWnd* pActiveFrame=EkGetActiveFrame(); ASSERT_VALID(pActiveFrame); CenterWindow(pActiveFrame); return TRUE; } 

如果要将对话框居于整个桌面窗口中央的话,调用CenterWindow( CWnd::GetDesktopWindow() );

 

CFrameWnd* EkGetActiveFrame() { CWnd* pMainWnd = AfxGetMainWnd(); ASSERT_VALID( pMainWnd ); if( !pMainWnd->IsKindOf( RUNTIME_CLASS( CFrameWnd ) ) ) { return NULL; } return static_cast<CFrameWnd*>( pMainWnd )->GetActiveFrame(); } 

 

CFrameWnd::GetActiveFrame

virtual CFrameWnd* GetActiveFrame( );

返回值
指向活动的MDI子窗口。如果程序是一个SDI应用或MDI框架窗口没有活动文档,则返回this指针。

说明:
调用此成员函数获取一个指向MDI框架窗口的活动多文档界面(MDI)子窗口的指针。
如果没有活动MDI子窗口或应用是一个单文档界面(SDI),则强制返回this指针。

你可能感兴趣的:(4.2--如何使 对话框 在 另一个窗口 里居中?)