//提示用户
MessageBox("用户验证失败", "登录提示",MB_OK);
//退出主程序
AfxGetMainWnd()->PostMessage(WM_QUIT);
//返回登录失败
//EndDialog 退出对话框,参数表示对话框的返回值,本例
//用"取消"按钮的ID 作为验证失败返回值
EndDialog(IDCANCEL);
}
//默认的消息处理函数,用于退出对话框,返回值为IDOK
CDialog::OnOK();
}
技巧:一般要退出程序,只需要销毁该程序的主窗口,即向该程序的主窗口发送WM_QUIT 消息,
代码为AfxGetMainWnd()->PostMessage(WM_QUIT);。
(4)按前面所述方法,打开“ClassWizard”对话框,为CLoginDialog 的IDCANCEL 按
钮控件的BN_CLICKED 消息添加消息处理函数OnCancel()。在程序中单击“取消”按钮与
验证失败的处理方法相同,因此修改CLoginDialog::OnCancel()函数,代码如下:
void CLoginDialog::OnCancel()
{
// TODO: Add extra cleanup here
//验证不通过
//提示用户
枫叶文学网www.fywxw.com
第4 章 对话框
·73·
MessageBox("用户验证失败", "登录提示",MB_OK);
//退出主程序
AfxGetMainWnd()->PostMessage(WM_QUIT);
//默认的消息处理函数,用于退出对话框,返回值为IDCANCEL,
//同本例的OnOK 验证失败的返回值
CDialog::OnCancel();
}
添加控件通知消息处理函数后,对话框类的创建任务基本完成,对话框类能基本实现对
话框所需的功能。
4.2 模态对话框
Windows 系统中对话框大致可以分为以下两种:
? 模态对话框。这类对话框弹出后,其他程序会被挂起,只有当前对话框响应用户的输
入。模态对话框一般要求用户做出某种选择。
? 非模态对话框。打开非模态对话框后,程序的其他窗口仍能响应消息,程序仍可以继
续运行。非模态对话框一般用来显示信息,或者实时地进行一些设置。
实例4-2:创建模态对话框实例。源代码在光盘中“\04\实例4-2\Sample4_1”目录下。
本节还以实例Sample4_1 为例,具体讲解模态对话框的创建步骤。
1.创建对话框类
按照4.1 节所述的方法创建对话框类和对话框资源,Sample4_1 的对话框资源和对话框
类在前面已经创建,这里不再详述。
2.创建对话框类的实例并初始化
首先创建对话框类的对象。在Sample4_1 中,为了在程序运行最开始完成登录功