MFC 窗口居中显示 VS2010
MFC窗口居中显示 VS2010 工程名为:MFC22_6
目的:点击居中按钮,窗口将在文档的中央显示
思路:
使窗口居中显示可以调用CWnd::CenterWindow函数。
void CenterWindow(CWnd* pAlternateOwner=NULL);
步骤:
1、 用创建一个单文档应用程序
2、 添加一个对话框资源//(类视图 右键—添加—资源—dialog即可)
ID为IDD_DEMO
3、 添加一个按钮
类型为BUTTON ,ID为 IDC_TEST 标题为 居中显示窗口
4、 创建一个基类为CDialog的类CdemoDlg(双击对话框)
5、点击“居中显示窗口”右键,类向导
“添加处理程序”,成员函数名称可不变,“确定”,然后“编辑代码”
void CAboutDlg::OnAfxIdPreviewClose()
{
// TODO: 在此添加命令处理程序代码
CenterWindow();
}
6、在CDemoDlg类中重载CDialog::PostNcDestroy函数,代码如下: //也添加在DemoDlg.cpp后
void CDemoDlg::PostNcDestroy()
{
delete this ;
}
//在DemoDlg.h后面添加
void PostNcDestroy();
在MainFrm.cpp前面添加头文件
#include "DemoDlg.h"
7、在IDR_MAINFRAME菜单资源中添加一个子菜单,在菜单中添加菜单项,如下:
ID_SHOW_DLG 显示非模式对话框
点击MFC22_6.rc文件——Menu——IDR_MAINFRAME
8、在CMainFrame类中为菜单项添加命令处理函数:
具体步骤如下:
在“显示非模式对话框”右键,“事件处理程序向导”,添加编辑
void CMainFrame::OnShowDlg()
{
CDemoDlg* pDlg=new CDemoDlg();
pDlg->Create(IDD_DEMO,this);
pDlg->ShowWindow(SW_SHOW);
}
DemoDlg.h中的
enum { IDD = IDD_DIALOG1 };
改为:
enum { IDD = IDD_DEMO };
在DemoDlg.h中添加:
public:
void PostNcDestroy();
9、运行即可
点击菜单“对话框”——子菜单“显示非模式对话框”——“居中显示窗口”按钮