今天是我学习VC++开发的第八天,我主要学习的内容是界面设计中的对话框部分。
首先我们来认识一下什么是对话框~
对话框是一种窗口,包含按钮和各种选项,通过它们可以完成特定命令或任务。对话框也是人机交流的一种方式,用户对对话框进行设置,计算机就会执行相应的命令。
模式对话框的创建与使用
#include "MyDlg.h" //必须包含该对话框类的头文件才可以创建与使用该对话框
void Sample()
{
CMyDlg pDlg; //定义对话框类的对象
pDlg.DoModal(); //显示模式对话框
}
非模式对话框的创建与使用
#include "MyDlg.h" //必须包含该对话框类的头文件才可以创建与使用该对话框
void Sample()
{
CMyDlg * pDlg = new CMyDlg(); //创建对象并调用构造函数 () 可以省略
pDlg->Create(IDD_DIALOG,this); //创建非模式对话框
pDlg->ShowWindow(SW_SHOW); //显示非模式对话框
}
模式对话框的销毁
模式对话框的销毁很简单,只需要调用父类 (CDialog) 的 OnOK() 或者OnCancel() 方法就可以销毁啦。
void Sample()
{
CDialog::OnOK();
}
非模式对话框的销毁
非模式对话框的销毁就复杂一些了,我们需要先调用父类的 DestoryWindow() 方法销毁非模式对话框,之后使用 delete 关键字释放通过new关键字分配的内存。
void Sample()
{
pDlg->DestoryWindow(); //销毁非模式对话框
delete pDlg; //释放内存 若不释放,则会发生内存泄露
}
我们来实际操练一下吧~
首先,我们对对话框资源点击右键,选择 Insert Dialog 插入一个对话框
然后我们对我们新建好的对话框右键,选择 Properties 打开它的属性,将他的 ID 改成 IDC_LOGIN
然后我们对着这个对话框点击右键,选择 Properties 打开它的属性 (也可以通过快捷键 Alt + 回车 打开)
我们将对话框的标题 (Caption) 改成 登陆系统
再用同样的方法分别把2个按钮控件的标题改成 登陆和退出
然后呢,我们再从控件面板上拖出2个静态文本控件和2个编辑框控件
把2个静态文本控件的标题改成 用户 和 密码
然后把2个编辑框控件的 ID 改成 IDC_USER 和 IDC_PASSWORD
这样子我们对话框的大致样子也就出来啦,接下来我们需要为我们的对话框新建一个对话框类
双击我们的对话框,类向导将会询问你,该对话框还没有关联一个对话框类,需要创建一个新的对话框类还是选择一个已有的类关联该对话框
我们新建一个 CLogin 类
点击确定之后,我们的对话框就和CLogin类关联上啦~
做好登陆对话框之后呢,我们需要在进入主窗体之前先弹出登陆窗口,那么应该怎么做呢?
首先我们把 CLogin 类的头文件复制到主窗体的源文件中
然后我们在主窗体的 OnInitDialog() 方法里加上登陆窗口的调用代码
这样子就可以在主界面之前弹出我们的登陆界面啦~
编译之后执行。
好了,就先到这里吧。