现在我们来创建一个多文档工程,在其中加入一个口令对话框,以防止非法用户侵入。实现效果即为:出现一对话框要求用户输入口令,口令不正确显示错误并退出。若按下取消键,那也退出。如果正确,则进入程序。
Ⅰ、创建工程与编辑对话框资源
1>以Dialog为名,创建多文档工程
2>在Resource View标签展开Dialog Resources|Dialog条目
3>选中Dialog右键Insert Dialog命令
4>将新增加的IDD_DIALOG1在右键的Properties里修改为IDD_PASSWORD_DIALOG,并将标题设为“口令”
5>在Control中点击Static Text添加控件,并在其Properties里改为“输入口令:”
6>在Control中点击Edit Box添加控件,将其默认ID改为IDC_PASSWORD_EDIT,并在其Style里选中Password属性
7>移动相关控件,按自己喜好布置
Ⅱ、创建对话框类并写入代码
1>按下Ctrl+W弹出MFC ClassWizard对话框,系统检测到刚才新建的资源没有关联对应的类,弹出是否Adding Class的对话框,当然是OK了
2>以CPasswordDialog为名建立新类
3>在Member Variables标签里点击IDC_PASSWORD_EDIT,并单击Add Member Variable添加整形变量m_Password(关联变量与按钮)
4>此时Member Variable里下面会新增两个小窗口,在Minimun Value与Maximum Value里输入口令范围
5>在Dialog.cpp里加入头文件#include "PasswordDialog.h"
6>在CDialogApp里的InitInstance()函数里加入下列代码
CPasswordDialog cDlg;//建立对象
if(cDlg.DoModal()==IDOK)//用户按下确定
{
if(cDlg.m_Password!=1925)//口令值应为1925
{
AfxMessageBox("口令错误,确定后退出。");//口令不对,显示错误信息
return FALSE;
}
}
else return FALSE;//按下取消,程序结束
return TRUE;//口令正确
7>编译并运行程序,检测结果
说明:一般通过调用MessageBox或AfxMessageBox弹出最原始而常用的对话框,该对话框包含信息内容、标题、图标和按钮等,当然就可以在程序调试过程中显示一些变量的值。此消息对话框的风格由图标和按钮组合而成,可使用'|'或'+'实现图标和按钮的组合,如MessageBox("出现问题","警告",MB_ICONWARNING+MB_DEFBUTTON2)。
//函数原型int MessageBox(HWND hWnd,LPCTSTR lpTest,LPCTSTR lpCaption,UNIT uType);
//HWND hWnd 父窗口的局柄
//LPCTSTR lpTest 指向窗口信息地址的指针
//LPCTSTR lpCaption 指向窗口标题地址的指针
//UNIT uType 消息对话框的风格
/*
下简单介绍几个
1、按钮类型
MB_ABORTRETRYIGNORE 放弃、重试、忽略
MB_OK 确定
MB_OKCANCEL 确定、取消
MB_RETRYCANCEL 重试、取消
MB_YESNO 是、否
MB_YESNOCANCEL 是、否、取消
2、函数返回
IDABORT 放弃 按钮按下
IDCANCEL 取消 按钮按下
IDIGNORE 忽略 按钮按下
IDNO 否 按钮按下
IDOK 确定 按钮按下
IDRETRY 重试 按钮按下
IDYES 是 按钮按下
*/