MFC基于对话框程序
2006-07-19 11:28:32 来源:WEB开发网核心提示: 下面,我们来一个对于对话框非常重要的函数OnInitDialog(),顾名思义这是一个对话框的初始化函数,MFC基于对话框程序(5),在对话框创建之后,第一次显示之前调用,则要右击控件,点选属性,BOOL CDialogDlg::OnInitDialog(){CDialog::OnInit
下面,我们来一个对于对话框非常重要的函数OnInitDialog(),顾名思义这是一个对话框的初始化函数。在对话框创建之后,第一次显示之前调用。
BOOL CDialogDlg::OnInitDialog()
{
CDialog::OnInitDialog(); //执行父类默认的初始化对话框操作
// IDM_ABOUTBOX 必须在系统命令范围内。
ASSERT((IDM_ABOUTBOX & 0xFFF0) == IDM_ABOUTBOX);
ASSERT(IDM_ABOUTBOX < 0xF000);
// 将\“关于...\”菜单项添加到系统菜单中。
CMenu* pSysMenu = GetSystemMenu(FALSE); //取得此对话框系统菜单的CMenu对象指针,并赋给pSysMenu;
if (pSysMenu != NULL) //如果不为空,则
{
CString strAboutMenu; //声明一个字符串对象
strAboutMenu.LoadString(IDS_ABOUTBOX); //取得资源IDS_ABOUTBOX预定义字符串,可以
//在资源视图中的String Table查到和设定这个预定义字符串
if (!strAboutMenu.IsEmpty()) //如果不为空,则
{
pSysMenu->AppendMenu(MF_SEPARATOR); //向菜单添加一个分隔符
pSysMenu->AppendMenu(MF_STRING, IDM_ABOUTBOX, strAboutMenu);
//向菜单添加这个字符串,并将消息ID设为IDM_ABOUTBOX
}
}
// 设置此对话框的图标。当应用程序主窗口不是对话框时,框架将自动
// 执行此操作
SetIcon(m_hIcon, TRUE); // 设置大图标
SetIcon(m_hIcon, FALSE); // 设置小图标
// TODO:在此添加额外的初始化代码
return TRUE; // 除非设置了控件的焦点,否则应该返回 TRUE
}
以上,就是这个基于对话框的MFC应用程序的基础代码。现在可以直接编译运行,来查看效果。 下面,我将在这些代码的基础上来添加功能,来实现一个复制文件的程序。 首先,我要在资源视图的Dialog中,修改IDD_DIALOG_DIALOG模板: 我首先将对话框模板上面的所有按钮和静态文本全部删掉,添加两个文本框和四个按钮。如果要修改控件的ID值,则要右击控件,点选属性,在ID框中输入任意的ID字符串即可。基本布局如下:
更多精彩
赞助商链接