热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

VS2010/MFC入门编程五(对话框:模态对话框的弹出过程)

一.模态对话框和非模态对话框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;
	}

	
编译运行 就会出现一个完整的登录界面。

推荐阅读
author-avatar
冰淇淋泡火锅_589
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有