对话框主要分为两个类型,即模式对话框和非模式对话框。当模式对话框弹出后,无法操作它的父窗口或者上一级窗口,直到关闭该对话框为止。图4-3 插入对话框资源用于测试模式对话框图4-4 修改对话框的外观和属性5)选中编辑好的对话框资源,执行View→ClassWizard命令,或按快捷键<Ctrl+W>打开类向导。图4-8 查看运行结果单击“关于”按钮弹出关于对话框,在关闭关于对话框前,主对话框是不可以操作的,这就是模式对话框的特点。......
2023-11-25
MFC封装了一些CDialog的派生类,提供常用的对话框功能,称之为系统对话框或者通用对话框,见表5-5。这些设计完整并且功能齐全的对话框类使开发效率提高了。
表5-5 系统对话框类及功能描述
1)在MFC启动函数,在App::InitInstance函数中,对表5-5中的系统对话框类进行测试。
2)文件对话框类。
CFileDialog是最常用的系统对话框类,文件对话框的结构设置主要通过CFileDialog类的构造函数实现。其中lpszFilter参数是一个字符串,用于设置文件类型筛选器,是文件对话框中最重要的设置。文件类型下拉列表中每一项都是一个筛选器,由显示文字和筛选类型两部分组成,两者之间由“|”符号间隔。例如,“文本文件|*.txt||”,代表文件类型下拉列表中显示“文本文件”,筛选的内容是所有TXT类型文件,最后多一个“|”符号表示结尾。
CFileDialog封装的API是GetOpenFileName和GetSaveFileName函数,两个函数的参数都是OPENFILENAME结构体。在MSDN的OPENFILENAME的页面中,包括了关于文件对话框的所有风格的详细说明。一些风格是针对打开对话框有效的,例如,OFN_ALLOWMULTISELECT和OFN_FILEMUSTEXIST等;另一些是针对另存为对话框有效的,例如,OFN_OVERWRITEPROMP等;还有一些是两种对话框公用的风格,例如,OFN_OFN_LONGNAMES和OFN_SHOWHELP等。
3)CFileDialog类的构造函数。
4)通过查看MSDN了解每一个参数的用途和使用方法,见表5-6。(www.chuimin.cn)
表5-6 CFileDialog类构造函数说明
5)打开本章第3节的“QQ”工程,在“信息管理”对话框中,双击“保存”按钮建立消息映射函数。
6)在“信息管理”对话框中,双击“加载”按钮建立消息映射函数。
7)编译并运行,测试代码,如图5-26所示。
图5-26 查看运行结果
在“信息管理”对话框中添加一些数据,然后单击“保存”按钮,保存列表数据到一个指定的文件中。重新启动软件再单击“加载”按钮,打开刚才保存过的文件,列表中的数据和保存时是一致的。
有关VC++就业培训宝典之MFC视频教程的文章
对话框主要分为两个类型,即模式对话框和非模式对话框。当模式对话框弹出后,无法操作它的父窗口或者上一级窗口,直到关闭该对话框为止。图4-3 插入对话框资源用于测试模式对话框图4-4 修改对话框的外观和属性5)选中编辑好的对话框资源,执行View→ClassWizard命令,或按快捷键<Ctrl+W>打开类向导。图4-8 查看运行结果单击“关于”按钮弹出关于对话框,在关闭关于对话框前,主对话框是不可以操作的,这就是模式对话框的特点。......
2023-11-25
对话框资源编辑既包括对话框自身的属性设置,还包括对话框内的每个控件的属性设置。对话框和内部的每个控件都有自己的资源ID,ID是一些不重复的数字标志,就如同学号或者身份证号是不重复的数字一样。#define IDD_FIRSTMFC_DIALOG 102#define IDR_MAINFRAME 128#define IDC_NUMB 1000#define IDC_NAME 1001#define IDC_SALA 1002#define IDC_LIST 1003#define IDC_ADD 1004#define IDC_DEL 1005#define IDC_MOD 10061)对话框资源自身的属性包括5个分页,如图2-34所示。Control:对话框启动后去掉标题栏。Accept files:允许从外部拖放一些文件放入对话框内,并在拖放后产生WM_DROPFILES消息。......
2023-11-25
图5-1 插入新对话框资源图5-2 编辑登录对话框3)添加一些控件并修改控件的属性,见表5-1。表5-1 “登录”对话框的控件属性4)在“登录”对话框上单击鼠标右键,在弹出的快捷菜单中,选择“ClassWizard”命令,或按快捷键<Ctrl+W>,如图5-3所示。图5-3 打开类向导图5-4 创建登录对话框的关联类6)在登录对话框资源中双击“登录”按钮,建立消息映射函数OnOK并编写代码。......
2023-11-25
模型的创建与定义、模型的分析以及修正是使用Simulink的三大步骤,图10-3显示了典型的Simulink工作框图。图10-3 Simulink操作框图Simulink具有相对独立的功能和使用方法,它支持线性和非线性系统、连续和离散时间系统,而且系统可以多进程。进行Simulink仿真的主要步骤如下:1)运行Simulink:在MATLAB命令窗口中直接键入Simulink并回车就会显示图10-2的Simulink启动界面。......
2023-06-23
当用户单击对话框标题栏上的关闭按钮后,可能顺次发生的回调包括WM_SYSCOMMAND消息、WM_CLOSE消息、CDialog::OnCancel虚函数和WM_DESTROY消息等。打开第1节建立的“Test”工程,本节继续演示对话框关闭过程的回调函数。当单击系统关闭菜单或按钮,或者按<Alt+F4>组合键都不能关闭对话框,对话框不是真正地关闭而只是最小化了。所有以上其他回调函数都发生在对话框消失之前,并且可以取消继续关闭对话框窗口。图4-26 关闭对话框消息的流程......
2023-11-25
对话框栏是类似于工具栏的非模式对话框,不但可以在资源视图中编辑内部控件,而且启动后可以停靠在框架类周边方便使用。打开本章第5节的“sp”分隔栏工程,用于演示对话框栏的编辑和调用方法。表14-7 主对话框的控件属性8)通过类向导为对话框栏创建一个CDialog派生类,如图14-41所示。图14-41 创建对话框栏的关联类9)在刚建立的CAddrBar头文件中,把“CDialog”改为“CDialogBar”,如图14-42所示。改变主框架窗口的大小,对话框栏内控件的位置自动调整。......
2023-11-25
打开本章第1节建立的“Test”工程,本节继续演示非模式对话框的调用过程。1)通过菜单命令或者按快捷键<Ctrl+1>再插入一个对话框,用于测试非模式对话框,如图4-9所示。7)非模式对话框的特点如下。①在关闭模式对话框前,不阻挡对背景窗口的操作。②使用CDialog::Create函数创建非模式对话框,该函数是非阻塞函数。......
2023-11-25
本节通过MFC应用程序向导新建一个工程,演示基于MFC架构平台的对话框程序。图2-29 MFC应用程序向导第三步选中“As a statically linked library”单选按钮,最后单击“Finish”按钮完成MFC工程的创建。在使用MFC应用程序向导新建工程时,选择“As a statically linked library”选项编译器会把MFC类库代码编译到可执行文件内部;选择“As a shared DLL”使用系统内共享的MFC动态库。在各个软件公司内一般要求使用静态链接,本书也统一要求新建MFC工程时都使用静态链接方式。12)API和MFC的关系。......
2023-11-25
相关推荐