作者:冰淇淋泡火锅_589 | 来源:互联网 | 2023-09-24 16:41
一.模态对话框和非模态对话框Windows对话框分为两类:模态对话框和非模态对话框。模态对话框是这样的对话框,当它弹出后,本应用程序其他窗口将不再接受用户输入,
一.模态对话框和非模态对话框
Windows对话框分为两类:模态对话框和非模态对话框。
模态对话框是这样的对话框,当它弹出后,本应用程序其他窗口将不再接受用户输入,只有该对话框响应用户输入,在对它进行相应操作退出后,其他窗口才能继续与用户交互。
非模态对话框则是,它弹出后,本程序其他窗口仍能响应用户输入。非模态对话框一般用来显示提示信息等。
大家对Windows系统很了解,相信这两种对话框应该都遇到过。下面就将对登录界面进行讲解模态对话框
二.添加一个新对话框并弹出它
1.根据“创建对话框模板和修改对话框属性”中所讲的方法,在Resource View中的“Dialog”上点右键选择“Insert Dialog”,创建一个新的对话框模板。在新建的Dialog上面添加两个静态文本两个文本编辑框以及两个按钮,修改名称,在密码文本框属性里面选择Password 为 True;
2.根据“创建对话框类和添加控件变量”中创建对话框类的方法,在对话框模板上点右键选择“Add Class...”,弹出添加类的对话框,设置“Class name”为CTipDlg,点“OK”。在Solution Explorer中可以看到生成了CTipDlg类的头文件TipDlg.h和源文件TipDlg.cpp
3在CtestDlg的头文件testDlg.h中添加 TipDlg.h 并为其添加成员 CTipDlg Dlg;
4.为两个文本框添加关联变量m_user and m_password 为两个按钮设置ID IDCANCEL 和 IDOK;
4在初始化函数 BOOL CtestDlg::OnInitDialog()中添加代码产生出登录框,代码如下:
// TODO: Add extra initialization here
INT_PTR nRes; // 用于保存DoModal函数的返回值
CTipDlg tipDlg; // 构造对话框类CTipDlg的实例
nRes = tipDlg.DoModal(); // 弹出对话框
if (IDCANCEL == nRes) // 判断对话框退出后返回值是否为IDCANCEL,如果是则return,否则继续向下执行
{
// CDialogEx::OnDestroy();
CDialog::EndDialog(0);
return false;
}
if(tipDlg.m_user == L"yujia" && tipDlg.m_password == L"123456")
{
return TRUE; // return TRUE unless you set the focus to a control
}
else
{
MessageBox(L"用户或则密码错误");
CDialogEx::OnDestroy();
return false;
}
编译运行 就会出现一个完整的登录界面。