




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、对话框与控件对话框与控件第第5 5章章本章主要内容本章主要内容o5.1 5.1 对话框概述对话框概述 o5.2 5.2 使用对话框使用对话框 o5.3 5.3 标准控件标准控件 o5.4 5.4 公共控件公共控件 o5.5 5.5 综合实例综合实例 5.1 5.1 对话框概述对话框概述 o5.1.1 5.1.1 对话框的组成与分类对话框的组成与分类 o5.1.2 5.1.2 基于对话框的应用程序基于对话框的应用程序 o5.1.3 5.1.3 对话框类对话框类CDialogCDialog o5.1.4 5.1.4 对话框数据交换对话框数据交换DDXDDX和验证和验证DDVDDV o5.1.5 5
2、.1.5 提示信息对话框提示信息对话框 5.1.1 5.1.1 对话框的组成与分类对话框的组成与分类o对话框主要由对话框资源和对话框类组成。对话框主要由对话框资源和对话框类组成。n对话框资源确定了对话框窗口的表现形式对话框资源确定了对话框窗口的表现形式o对话框的大小、风格等特性及对话框中控件的类型及位置对话框的大小、风格等特性及对话框中控件的类型及位置o一个数据结构一个数据结构n对话框类提供了对话框的编程接口对话框类提供了对话框的编程接口o要利用对话框资源创建对话框类,提供编程的接口管理对要利用对话框资源创建对话框类,提供编程的接口管理对话框话框o对话框有两种类型:对话框有两种类型:模态对话框
3、和非模态对话模态对话框和非模态对话框。框。o两种对话框在用资源编辑器设计和使用两种对话框在用资源编辑器设计和使用ClassWizardClassWizard进行编程时的方法基本一致,但进行编程时的方法基本一致,但在创建和退出窗口时的方式有所不同。在创建和退出窗口时的方式有所不同。n 在创建时,模态对话框式由系统自动分配内在创建时,模态对话框式由系统自动分配内存空间,因此,在退出对话框时,对话框对象会存空间,因此,在退出对话框时,对话框对象会自动删除;非模态对话框则是需要用户来指定内自动删除;非模态对话框则是需要用户来指定内存,退出时还需用户自己来删除对话框对象。存,退出时还需用户自己来删除对话
4、框对象。n 在退出时,两种对话框所使用的终止函数不在退出时,两种对话框所使用的终止函数不一样。模态对话框通过调用一样。模态对话框通过调用CDialog:EndDialogCDialog:EndDialog来终止;非模态对话框通过调用来终止;非模态对话框通过调用CWnd:DestroyWindowCWnd:DestroyWindow来终止。来终止。5.1.3 5.1.3 对话框类对话框类CDialogCDialogoCDialogCDialog类的派生关系如图所示类的派生关系如图所示 CDialog CDialog类是类是CWndCWnd类的继承类,所以它继承了类的继承类,所以它继承了CWndC
5、Wnd的基本的基本功能,如移动窗口、改变窗口大小、关闭窗口等。功能,如移动窗口、改变窗口大小、关闭窗口等。CDialogCDialog类类通过对话框的一些特定的特性扩展了基本功能。这些特性包通过对话框的一些特定的特性扩展了基本功能。这些特性包括生成和显示对话框的功能、遍历对话框的控件、设置和恢括生成和显示对话框的功能、遍历对话框的控件、设置和恢复默认按钮等。复默认按钮等。CDialogCDialog类经常使用的成员函数列于下表类经常使用的成员函数列于下表 成员函数 说明 CDialog:CDialog 构造函数,根据对话框资源模板定义一个对话框 CDialog:Create 创建非模态对话框窗
6、口,若对话框不是 Visible 属性,需调用CWnd:ShowWindow 函数显示非模态对话框窗口 CDialog:DoModal 激活模态对话框,显示对话框窗口 CDialog:OnInitDialog WM_INITDIALOG 的消息处理函数, 在调用 DoModal 或 Create函数是系统发送 WM_INITDIALOG 消息, 显示对话框前进行初始化 CDialog:EndDialog 关闭模态对话框窗口。 CDialog:OnOK 单击【OK】按钮调用该函数,接受对话框输入数据,关闭对话框 CDialog:OnCancel 单击【Cacel】按钮或【Esc】键时调用该函数,
7、不结束对话框输入数据,关闭对话框 CWnd:ShowWindow 显示或隐藏对话框窗口 CWnd:DestoryWindow 关闭并销毁非模态对话框 CWnd:GetWindowText 获取对话框窗口的标题 CWnd:SetWindowText 设置对话框窗口的标题 CWnd:UpdateData 调用 DoDataExchange 设置或获取对话框控件的数据 CWnd:DoDataExchange 被 UpdateData 调用实现对话框数据交换,不能直接访问 CWnd:MoveWindow 移动对话框窗口 CWnd:EnableWindow 是窗口处于可用或禁用状态 CDialogCDi
8、alog类的四个基本函数类的四个基本函数 oOnInitDialogOnInitDialog oDoModalDoModal oOnOkOnOk oOnCancelOnCancel 5.1.4 5.1.4 对话框数据交换对话框数据交换DDXDDX和验证和验证DDVDDVo对话数据交换对话数据交换(DDX)(DDX)用于初始化对话框中的控用于初始化对话框中的控件并获取用户的数据输入,而对话框数据验件并获取用户的数据输入,而对话框数据验证证(DDV)(DDV)则用于自动验证对话框中的数据输入。则用于自动验证对话框中的数据输入。o要 在 对 话 框 中 使 用要 在 对 话 框 中 使 用 D D
9、XD D X 和和 D D VD D V , 必 须 用, 必 须 用ClassWizardClassWizard创建数据成员、设置数据类型并创建数据成员、设置数据类型并指定验证规则。指定验证规则。 5.1.5 5.1.5 提示信息对话框提示信息对话框o提示信息对话框也称消息对话框,是用于显示简单信息的提示信息对话框也称消息对话框,是用于显示简单信息的一类对话框,不需要用户创建可以直接使用。在一类对话框,不需要用户创建可以直接使用。在Visual Visual C+C+的的MFCMFC类库中提供了三个相应的函数,它们分别是类库中提供了三个相应的函数,它们分别是CWnd:MessageBoxCW
10、nd:MessageBox、MessageBoxMessageBox和和AfxMessageBoxAfxMessageBox和函数。和函数。o这三个函数分别是这三个函数分别是CWndCWnd类的成员函数、类的成员函数、Windows APIWindows API函数函数和和MFCMFC全局函数。三者的功能基本相同,但适用范围是有全局函数。三者的功能基本相同,但适用范围是有区别的。区别的。AfxMessageBoxAfxMessageBox函数和函数和:MessageBox:MessageBox,在程序中,在程序中的任何位置都可调用;而的任何位置都可调用;而CWnd:MessageBoxCWnd
11、:MessageBox函数只能用于函数只能用于象控件、对话框和窗口等窗口类中。象控件、对话框和窗口等窗口类中。 提示信息对话框常用图标类型提示信息对话框常用图标类型 图标类型取值 图标类型 MB_ICONHAND、MB_ICONSTOP 和MB_ICONERROR 叉号图标 MB_ICONQUESTION 问号图标 MB_ICONEXCLAMATION、MB_ICONWARNING 惊叹号图标 MB_ICONASTERISK、MB_ICONINFORMATION 信息图标 提示信息对话框常用按钮类型提示信息对话框常用按钮类型 按钮类型取值 按钮类型 MB_ABORTRETRYIGNORE 显示
12、【关于】 、 【重试】 、 【忽略】3 个按钮 MB_OK 显示【是】按钮 MB_OKCANCEL 显示【确定】 、 【取消】按钮 MB_RETRYCANCEL 显示【重试】 、 【取消】按钮 MB_YESNO 显示【是】 、 【否】按钮 MB_YESNOCANCEL 显示【是】 、 【否】 、 【取消】按钮 在实际使用中,图标类型及按钮类型的取值可通过在实际使用中,图标类型及按钮类型的取值可通过“|”|”组合。组合。 在提示消息对话框中单击不同的按钮,其返回值是不同的,在提示消息对话框中单击不同的按钮,其返回值是不同的,该返回值也是由该返回值也是由MFCMFC预定义的标识符来表示的。预定义的
13、标识符来表示的。被单击的按钮 函数返回值 单击【终止】按钮 IDABORT 单击【取消】按钮 IDCANCEL 单击【忽略】按钮 IDIGNORE 单击【否】按钮 IDNO 单击【确定】按钮 IDOK 单击【重试】按钮 IDRETRY 单击【是】按钮 IDYES 5.2 5.2 使用对话框使用对话框 o5.2.1 5.2.1 一般对话框工作流程一般对话框工作流程 o5.2.2 5.2.2 创建对话框创建对话框 o5.2.3 5.2.3 添加控件及关联的成员变量添加控件及关联的成员变量 o5.2.4 5.2.4 非模态对话框非模态对话框 o5.2.5 5.2.5 公用对话框公用对话框 5.2.1
14、 5.2.1 一般对话框工作流程一般对话框工作流程 OK Cancel 调用用户定义的对话框类构造函数 CHelloDlg:CHelloDlg 创建对话框对象 调用 CHelloDlg:DoModal 显示对话框窗口 OK/Cancel 调用 CHelloDlg:OnOK,返回 IDOK 调用 CHelloDlg:OnCancel,返回 IDCANCEL 从 CDialog:DoModal 返回 调用 CDialog:DoModal 调用 CHelloDlg:OnInitDialog 调用 CDialog:OnInitDialog 调用 CWnd:UpdateData(FALSE) 调用 CH
15、elloDlg:DoDataExchange 调用 CWnd:UpdateData(TRUE)接收数据 调用 CDialog: EndDialog 关闭对话框 5.2.2 5.2.2 创建对话框创建对话框o在程序中创建一个对话框,首先要创建一个对话框资源,在程序中创建一个对话框,首先要创建一个对话框资源,然后创建一个基于该对话框资源的对话框类。然后创建一个基于该对话框资源的对话框类。o对话框资源指定了对话框本身的属性和对话框中控件的对话框资源指定了对话框本身的属性和对话框中控件的属性,对话框类规定了对话框和对话框中每个控件的行属性,对话框类规定了对话框和对话框中每个控件的行为。为。 “Cont
16、rols”“Controls”工具栏工具栏 编辑框 控件的选择 静态文本 组框 复选框 组合框 水平滚动条 微调按钮 滑动条 列表视图 标签 复合编辑 月历 用户定制工具 静态图片 按钮 单选框 垂直滚动条 列表框 进展条 热键 动画 树形视图 日期选择 IP 地址 组合框的扩展 “Dialog”“Dialog”工具栏工具栏 图形 名称 说明 Test 单独运行对话框来测试对话框的外观和行为 Align Left 将选定的多个控件按照左边界对齐的格式放置 Align Right 将选定的多个控件按照右边界对齐的格式放置 Align Top 将选定的多个控件按照上边界对齐的格式放置 Align
17、Bottom 将选定的多个控件按照下边界对齐的格式放置 Central Vertical 将选定的一个或多个控件按照中心垂直对齐的格式放置 Central Horizontal 将选定的一个或多个控件按照水平垂直对齐的格式放置 Space Across 将选定的多个控件两两之间的水平间隔调整相同 Space Down 将选定的多个控件两两之间的垂直间隔调整相同 Make Same Width 使选定的多个控件具有相同的宽度, 宽度的标准是最后选择的控件的宽度 Make Same Height 使选定的多个控件具有相同的高度, 高度的标准是最后选择的控件的高度 Make Same Size 使选
18、定的多个控件具有相同的宽度和高度, 宽度和高度的标准是最后选择的控件的大小 Toggle Grid 显示或隐藏网格 Toggle Guides 显示或隐藏标尺 5.2.3 5.2.3 添加控件及关联的成员变量添加控件及关联的成员变量o1 1 添加控件添加控件 o2 2 添加关联的成员变量添加关联的成员变量 o3 3 添加成员变量后的程序分析添加成员变量后的程序分析 o4 4 映射变量的管理映射变量的管理 o5 5 对话框类的实现对话框类的实现 1 1 添加控件添加控件o在控件工具栏中选择所需要的控件,按下鼠标在控件工具栏中选择所需要的控件,按下鼠标的左键(不要松开),将鼠标拖到对话框中松的左键
19、(不要松开),将鼠标拖到对话框中松开,在对话框中添加一个指定的控件。开,在对话框中添加一个指定的控件。o按照修改对话框标题的方法对每个控件的按照修改对话框标题的方法对每个控件的“ID”ID”和和“Caption”Caption”o进行修改,如表所示。各个控件的风格按照默进行修改,如表所示。各个控件的风格按照默认方式设置。认方式设置。 4 4 映射变量的管理映射变量的管理o(1 1)映射变量的定义)映射变量的定义 映射变量必须定义在以下两行代码之间,才能被映射变量必须定义在以下两行代码之间,才能被ClassWizardClassWizard识识别和处理:别和处理: /AFX_DATA(CMate
20、rialDlg) /AFX_DATA(CMaterialDlg) /(括号内为映射变量所属的类)(括号内为映射变量所属的类) /AFX_DATA/AFX_DATAo(2 2)映射变量的初始化)映射变量的初始化 映射变量的初始化必须放在以下两行代码(在对话框类的构映射变量的初始化必须放在以下两行代码(在对话框类的构 造函数中)之间,才能被造函数中)之间,才能被ClassWizardClassWizard识别和处理:识别和处理: / /AFX_DATA_INIT(CMaterialDlg)AFX_DATA_INIT(CMaterialDlg) /AFX_DATA_INIT /AFX_DATA_IN
21、ITo(3 3)映射变量与对话框控制间的映射宏)映射变量与对话框控制间的映射宏 映射变量与对话框控制间的映射宏必须放在以下两行代码映射变量与对话框控制间的映射宏必须放在以下两行代码(在(在函数函数DoDataExchangeDoDataExchange中中)之间,才能被)之间,才能被ClassWizardClassWizard识别和处识别和处理理: / /AFX_DATA_MAP(CMaterialDlg)AFX_DATA_MAP(CMaterialDlg) /AFX_DATA_MAP /AFX_DATA_MAP 5.2.4 非模态对话框非模态对话框o创建对话框创建对话框CreateCreat
22、e o显示对话框显示对话框CWnd:ShowWindowCWnd:ShowWindow o消息循环部分的处理消息循环部分的处理CWnd:IsDialogMessageCWnd:IsDialogMessage o关闭对话框关闭对话框CWnd:DestroyWindowCWnd:DestroyWindow 5.2.55.2.5、公用对话框、公用对话框( (略)略)o“颜色颜色”对话框对话框o“字体字体”对话框对话框o“打开打开”对话框对话框o“保存保存”对话框对话框o“打印机设置打印机设置”对话框等,对话框等,o以上对话框类都是从一个公共的基类以上对话框类都是从一个公共的基类CCommonDial
23、ogCCommonDialog派生出来的,而派生出来的,而CCommonDialogCCommonDialog类又是类又是CDialogCDialog类的派生类。下表列出了这些类的派生类。下表列出了这些类及其用途。类及其用途。 通用对话框类 用途 CFileDialog 文件对话框,用户可打开或保存对话框 CFontDialog 字体对话框,允许用户从列出的字体种选择所需要的字体 CColorDialog 颜色对话框,用户可从中选择或创建颜色 CPageSetupDialog 页面设置对话框,允许用户设置页面参数 CPrintDialog 打印对话框,允许用户设置打印机的参数及打印文档 CFi
24、ndReplaceDialog 查找替换对话框,允许用户查找或替换指定字符串 COleDialog 该类及其派生类用于生成 OLE 应用程序对话框 5.3 5.3 标准控件标准控件o5.3.1 5.3.1 控件概述控件概述o5.3.5.3.2 2 控件的组织控件的组织 o5.3.3 5.3.3 控件公有属性控件公有属性 o5.3.4 5.3.4 静态控件静态控件o5.3.5 5.3.5 编辑框编辑框o5.3.6 5.3.6 按钮按钮o5.3.7 5.3.7 列表框列表框o5.3.8 5.3.8 组合框组合框o5.3.9 5.3.9 滚动条滚动条5.3.1 5.3.1 控件概述控件概述o控件是控
25、件是WindowsWindows图形用户界面的主要组成部分之一,用户通图形用户界面的主要组成部分之一,用户通过操作控件对象完成与应用程序之间的交互。过操作控件对象完成与应用程序之间的交互。MFC 类 说明 CButton 代表一个按钮的小长方形的子窗口(按钮控件) CComboBox 代表一个选择列表框的子窗口(组合框控件) CEdit 代表一个接收用户输入的文本输入子窗口(编辑框控件) CListBox 代表字符串列表的子窗口(列表框控件) CScrollBar 代表一个滚动条的子窗口(滚动条控件) CStatic 代表一个显示静态文本的子窗口(静态控件) 5.3.2 5.3.2 控件的组织
26、控件的组织o1 1 添加和删除控件添加和删除控件 o2 2 选择控件选择控件 o3 3 调整控件的大小调整控件的大小 o4 4 移动控件移动控件 o5 5 复制控件复制控件 o6 6 设置属性设置属性 o7 7 设置【设置【TabTab】键顺序】键顺序 o8 8 测试对话框资源测试对话框资源 1 1 添加和删除控件添加和删除控件o添加控件的方法有两种:添加控件的方法有两种:n(1 1)在控件工具栏中选择所需要的控件,按下鼠标的)在控件工具栏中选择所需要的控件,按下鼠标的左键(不要松开),将鼠标拖到对话框中松开,在对左键(不要松开),将鼠标拖到对话框中松开,在对话框中添加一个指定的控件。话框中添
27、加一个指定的控件。n(2 2)在控件工具栏中单击需要的控件,此时,控件呈)在控件工具栏中单击需要的控件,此时,控件呈凹下状态,将鼠标拖到对话框,鼠标成凹下状态,将鼠标拖到对话框,鼠标成“+”+”字形显示,字形显示,在对话框中按下鼠标左键拖到适当大小后松开,在对在对话框中按下鼠标左键拖到适当大小后松开,在对话框中添加一个指定的控件。话框中添加一个指定的控件。o删除已添加的控件,只要选择对话框中的控件,按下删除已添加的控件,只要选择对话框中的控件,按下【DelDel】键即可。键即可。 2 2 选择控件选择控件o选取单个按钮:单击选取单个按钮:单击“Control”Control”工具栏中的选取工具
28、栏中的选取按钮,然后移动鼠标到对话框上的某个控件上,单按钮,然后移动鼠标到对话框上的某个控件上,单击鼠标左键即可。击鼠标左键即可。o选取多个控件的方法有两种:选取多个控件的方法有两种: 在对话框内按住鼠标左键不放,拖出一个虚框,在对话框内按住鼠标左键不放,拖出一个虚框,释放鼠标,则被虚框包围的控件全部被选取。释放鼠标,则被虚框包围的控件全部被选取。 按住按住【ShiftShift】键,用鼠标一次单击所要选取键,用鼠标一次单击所要选取的控件,然后放开的控件,然后放开【ShiftShift】键。键。3 3 调整控件的大小调整控件的大小o选取控件后,用鼠标指针指向其周围的蓝色选取控件后,用鼠标指针指
29、向其周围的蓝色小方框,待鼠标光标形状变成双向箭头时,小方框,待鼠标光标形状变成双向箭头时,拖动鼠标将控件变到所需要的大小时放开鼠拖动鼠标将控件变到所需要的大小时放开鼠标。标。 4 4 移动控件移动控件 o当控件被选取后,按键盘上的方向键或用鼠当控件被选取后,按键盘上的方向键或用鼠标拖动到所需要的位置即可。标拖动到所需要的位置即可。 5 5 复制控件复制控件 o1 1、当控件被选取后,按下键盘上的、当控件被选取后,按下键盘上的【CtrlCtrl】键不放,用鼠标拖动到所需要的位置,然后放键不放,用鼠标拖动到所需要的位置,然后放开开【CtrlCtrl】键即可;键即可;o2 2、当控件被选取后,按住、
30、当控件被选取后,按住【Ctrl+CCtrl+C】键复制,键复制,再粘贴,把复制后的控件用鼠标移动到所需要再粘贴,把复制后的控件用鼠标移动到所需要的位置即可。的位置即可。 6 6 设置属性设置属性 o将光标指向对话框中的控件,右击鼠标,弹出的快捷菜单将光标指向对话框中的控件,右击鼠标,弹出的快捷菜单中选择中选择“Properties”Properties”菜单项,弹出菜单项,弹出“Properties”Properties”对话对话框,在框,在“Properties”Properties”对话框中设置属性。有时为了修改对话框中设置属性。有时为了修改多个控件的属性,方便起见,按下多个控件的属性,方
31、便起见,按下 “Properties”Properties”对话对话框的框的【图钉图钉】按钮,这样按钮,这样“Properties”Properties”对话框始终保持对话框始终保持打开,打开,7 7 设置【设置【TabTab】键顺序】键顺序 o选择选择“Layout”Layout”菜单中的菜单中的“Tab Order”Tab Order”菜单项,或直接按菜单项,或直接按下下【Ctrl+DCtrl+D】键,此时,对话框中每一个控件的左上角会键,此时,对话框中每一个控件的左上角会出现一个数字标签,这个数字标签代表了默认的出现一个数字标签,这个数字标签代表了默认的【TabTab】键键顺序。以下面的
32、顺序依次用鼠标左键单击每一个控件:顺序。以下面的顺序依次用鼠标左键单击每一个控件: ( (1) IDC_STATIC (2) IDC_EDIT_NAME (3) IDC_STATIC1) IDC_STATIC (2) IDC_EDIT_NAME (3) IDC_STATIC (4) IDC_EDIT_DATE (5) IDC_STATIC 6) IDC_EDIT_PRICE (4) IDC_EDIT_DATE (5) IDC_STATIC 6) IDC_EDIT_PRICE (7) IDC_STATIC 8) IDC_RADIO_ARTIC 9) IDC_RADIO_COMPUTER (7)
33、IDC_STATIC 8) IDC_RADIO_ARTIC 9) IDC_RADIO_COMPUTER (10) IDC_RADIO_COSTER (11) IDC_STATIC(12) IDC_EDIT_USER (10) IDC_RADIO_COSTER (11) IDC_STATIC(12) IDC_EDIT_USER (13) IDC_STATIC (14) IDC_COMBO_POSITION (13) IDC_STATIC (14) IDC_COMBO_POSITION8 8 测试对话框资源测试对话框资源 o选择选择“Dialog”Dialog”工具栏中的工具栏中的【TestTes
34、t】按钮,按钮,就可以测试对话框资源。就可以测试对话框资源。 5.3.3 5.3.3 控件公有属性控件公有属性o在对话框中的控件上单击鼠标右键,然后在出在对话框中的控件上单击鼠标右键,然后在出现的快捷菜单中单击现的快捷菜单中单击“Properties”Properties”菜单项,菜单项,弹出控件的属性对话框,如图所示。弹出控件的属性对话框,如图所示。 项目 说明 ID 控件的标识符,每种控件都有缺省的标识符。 Caption 控件的标题,大多数控件都有缺省的标题。 Visible 指定控件初始化是否可见。选中表示控件可见;否则不可见。 Group 指定控件组中的第一个控件。 选中表示控件后的
35、所有控件均被看成是同一组。成组的目的是为了让用户可以用键盘方向键在同一组控件中进行切换。 Help ID 若该项选中,则为该控件建立一个上下文相关的帮助标识符。 Disabled 指定控件初始化时是否禁用。选中表示控件不可用,呈灰色显示;否则可用 Tab stop 若该项被选中,则用户可以使用【Tab】键选择控件 5.3.4 5.3.4 静态控件静态控件o静态控件静态控件(Static Control)(Static Control)是一种包含正文或图形的小窗是一种包含正文或图形的小窗口,通常是用来显示一个字符串、框、矩形、图标、位图口,通常是用来显示一个字符串、框、矩形、图标、位图或增强的图
36、元文件的。静态控件包括静态文本或增强的图元文件的。静态控件包括静态文本(Static (Static Text)Text)、组框、组框(Group Box)(Group Box)和静态图片和静态图片(Picture)3(Picture)3种。种。o静态文本控件用来显示一般不需要变化的文本;静态文本控件用来显示一般不需要变化的文本;o组框控件用来显示一个文本标题和一个矩形边框,通常将组框控件用来显示一个文本标题和一个矩形边框,通常将一组控件组织在一起;一组控件组织在一起;o图片控件用来显示边框、矩形、图标或位图等图形。图片控件用来显示边框、矩形、图标或位图等图形。 5.3.5 5.3.5 编辑框
37、编辑框o编辑框编辑框(Edit Box)(Edit Box)的主要作用在于接收用户键的主要作用在于接收用户键盘输入,用户可在编辑框中编辑输入。编辑框盘输入,用户可在编辑框中编辑输入。编辑框是是WindowsWindows应用程序中一种重要的交互工具。应用程序中一种重要的交互工具。o编辑框可以有以下功能特点:编辑框可以有以下功能特点:n可自动转换用户输入,如大小写转换等;可自动转换用户输入,如大小写转换等;n可使用某个字符可使用某个字符( (如如* *) )代替显示用户的输入;代替显示用户的输入;n可支持多行编辑等。可支持多行编辑等。 编辑框的常用属性及其说明编辑框的常用属性及其说明 属性属性说
38、明说明Multiline建立多行文本编辑框建立多行文本编辑框Align text设置文本对齐方式设置文本对齐方式Number只能输入数字只能输入数字Password编辑框作为密码文本框的字符形式编辑框作为密码文本框的字符形式Border设置控件周围的边框设置控件周围的边框Uppercase所有的字母都大写所有的字母都大写Lowercase所有的字母都小写所有的字母都小写Read-Only文本只读文本只读编辑框的基本操作编辑框的基本操作 o为了能让编辑框控件允许不同类型数据的输入为了能让编辑框控件允许不同类型数据的输入和读取,用户需要使用和读取,用户需要使用DDVDDV和和DDXDDX技术。技术
39、。DDXDDX将将控件的成员变量同对话框类的控件相连接,这控件的成员变量同对话框类的控件相连接,这样使得数据在控件之间很容易地传输;样使得数据在控件之间很容易地传输;DDVDDV用用于数据的校验。于数据的校验。 口令设置口令设置 o口令设置就是把编辑框设置成一个可输入口令口令设置就是把编辑框设置成一个可输入口令的输入框。的输入框。o用户输入的每个字符都被一个特殊的字符代替用户输入的每个字符都被一个特殊的字符代替显示,这个特殊的字符称为口令字符。显示,这个特殊的字符称为口令字符。o选择编辑框的属性对话框的选择编辑框的属性对话框的“Styles”Styles”选项卡,选项卡,选中选中“Passwo
40、rd”Password”就将编辑框设置成一个可输就将编辑框设置成一个可输入口令的输入框。缺省的口令字符是入口令的输入框。缺省的口令字符是“* *”。o应用程序可以使用成员函数应用程序可以使用成员函数CEdit:SetPassWordCharCEdit:SetPassWordChar来定义自己的口令字来定义自己的口令字符。符。选择文本选择文本 o用鼠标选择文本的方法是:在要选择的文本的用鼠标选择文本的方法是:在要选择的文本的一端按下鼠标左键并拖动鼠标,到另一端释放一端按下鼠标左键并拖动鼠标,到另一端释放鼠标键;鼠标键;o用键盘选择文本的方法是:在按光标方向移动用键盘选择文本的方法是:在按光标方向
41、移动键的同时按住键的同时按住【ShiftShift】键。键。o在应用程序中通过调用成员函数在应用程序中通过调用成员函数CEdit:SetSelCEdit:SetSel来实现。来实现。只读设置只读设置 o只读设置就是把编辑框设置成一个只读的编辑只读设置就是把编辑框设置成一个只读的编辑框,这时该编辑框只能读不能输入和修改。框,这时该编辑框只能读不能输入和修改。o设置的方法是选择编辑框的属性对话框的设置的方法是选择编辑框的属性对话框的“Styles”Styles”选项卡,选中选项卡,选中“Read-only”Read-only”就将就将编辑框设置成一个只读的编辑框。编辑框设置成一个只读的编辑框。o也
42、可以通过编程来实现编辑框的只读设置,需也可以通过编程来实现编辑框的只读设置,需要调用成员函数要调用成员函数CEdit:SetReadOnlyCEdit:SetReadOnly来实现。来实现。常见编辑框的通知消息常见编辑框的通知消息 消息取值 说明 EN_CHANGE 用户在编辑框子窗口中更改了输入框中的数据 EN_ERRSPACE 编辑框的空间已用完 EN_HSCROLL 水平滚动条被按下并披激活 EN_KILLFOUCS 编辑框失去输入焦点 EN_MAXTEXT 输入的正文数超过了编辑框的最大容量 EN_SETFOUCS 编辑框子窗口获得输入焦点 EN_UPDATE 编辑框子窗口将更新显示内
43、容 EN_VSCROLL 垂直滚动条被按下并激活 5.3.6 5.3.6 按钮按钮o按钮按钮(Button)(Button)是是WindowsWindows对话框中最常用的控件之一。按对话框中最常用的控件之一。按钮控件的类型比较丰富钮控件的类型比较丰富o按钮的种类:按钮的种类:(1 1)普通按钮)普通按钮(Button)(Button) 普通按钮是最常用的按钮,其外观为矩形条,按钮上可设置普通按钮是最常用的按钮,其外观为矩形条,按钮上可设置文本或图标、位图等。文本或图标、位图等。(2 2)单选按钮)单选按钮(Radio Button)(Radio Button) 单选按钮的外形为按钮文本和其左
44、侧的小圆框,当单选按钮单选按钮的外形为按钮文本和其左侧的小圆框,当单选按钮被选中时,该项的圆框将加点显示。单选按钮所包含的各被选中时,该项的圆框将加点显示。单选按钮所包含的各选项之间一般存在互斥性,即用户只能选择其中某个选项。选项之间一般存在互斥性,即用户只能选择其中某个选项。(3 3)复选框)复选框(Check Box)(Check Box) 复选框的外形为按钮文本和其左侧的小方框,当复选框按复选框的外形为按钮文本和其左侧的小方框,当复选框按选中时,该项的方框将加对号显示。复选框常用来显示一选中时,该项的方框将加对号显示。复选框常用来显示一组选项供用户选择。组选项供用户选择。消息取值 说明
45、BN_CLICKED 用户在按钮子窗口中单击 BN_DOUBLECLICKED 用户在按钮子宙口中双击 BN_SETFOUCS 按钮获得输入焦点 BN_KILLFOUCS 按钮失去输入焦点 常见按钮的通知消息类型常见按钮的通知消息类型 5.3.7 5.3.7 列表框列表框o列表框列表框(List Box)(List Box)是一个允许用户从已有的项是一个允许用户从已有的项目中进行选择的控件。目中进行选择的控件。MFCMFC的的CListBoxCListBox类封装类封装了列表框控件的各种操作。了列表框控件的各种操作。 列表框的基本操作列表框的基本操作 o添加列表项添加列表项AddStringA
46、ddString和和InsertStringInsertString、SetItemDataSetItemData和和SetItemDataPtrSetItemDataPtr、GetItemDataGetItemData和和GetItemDataPtrGetItemDataPtr o列表框的单项选择列表框的单项选择GetCurSelGetCurSel和和SetCurSelSetCurSel、GetTextGetTexto查找列表框查找列表框FindStringFindString和和FindStringExactFindStringExact o删除列表项删除列表项DeleteStringDe
47、leteString和和ResetContentResetContent 列表框常见的通知消息列表框常见的通知消息 消息取值 说明 LBN_DBLCLK 字符串列表框中的字符串被双击 LBN_ERRSPACE 分配给字符串列表框的内存已经用完 LBN_KILLFOUCS 字符串列表框失去焦点 LBN_SELCHANGE 在字符串列表框进行的选择发生了改变 LBN_SETFOUCS 字符串列表框获得输入焦点 5.3.8 5.3.8 组合框组合框o组合框组合框(Combo Box)(Combo Box)结合了列表框和编辑框控结合了列表框和编辑框控件的特点,取二者之长,从而完成较为复杂的件的特点,取
48、二者之长,从而完成较为复杂的输入功能。按照组合框的主要风格特征,可把输入功能。按照组合框的主要风格特征,可把其分成其分成3 3类:简单组合框、下拉式组合框和下类:简单组合框、下拉式组合框和下拉式列表框。拉式列表框。oMFCMFC的的CComboBoxCComboBox类封装了组合框控件的各种操类封装了组合框控件的各种操作,组合框的操作可以调用作,组合框的操作可以调用CComboBoxCComboBox的成员的成员函数来实现。函数来实现。 消息取值 说明 CBN_CLOSEUP 组合框的列表关闭 CBN_DBLCLK 选择列表框中的字符串被双击 CBN_DROPDOWN 选择列表框将被取消 CB
49、N_EDITCHANGE 选择列表框中的正文将被修改 CBN_EDITUPDATE 选择列表框中的正文将被更新 CBN_ERRSPACE 分配给选择列表框的内存已用完 CBN_KILLFOUCS 选择列表框失去焦点 CBN_SELENDCANCEL 当前选择项被取消 CBN_SELCHANGE 选择列表框中的选择项发生改变 CBN_SETFOUCS 选择列表框获得焦点 常见组合框的通知消息类型常见组合框的通知消息类型 程序的实现过程如下:程序的实现过程如下:(1) (1) 利用利用MFC AppWiardexeMFC AppWiardexe向导创建一个基于对话框向导创建一个基于对话框的应用程序
50、的应用程序MyComboboxMyCombobox。(2) (2) 添加控件和关联的成员变量添加控件和关联的成员变量为对话框添加的控件和关联的成员变量如表所示。为对话框添加的控件和关联的成员变量如表所示。 控件名称 ID 值 Caption 成员变量 静态文本 IDC_STATIC 服务器位于 组合框 IDC_ROOMCOMBO CComboBox m_Room 按钮 IDC_EXITBUTTON 退出 添加的控件和关联的成员变量添加的控件和关联的成员变量 5.3.9 5.3.9 滚动条滚动条o滚动条滚动条(Scroll Bar)(Scroll Bar)是一个独立的窗口,虽然是一个独立的窗口,
51、虽然它具有直接的输入焦点,但却不能自动地滚动它具有直接的输入焦点,但却不能自动地滚动窗口的内容。窗口的内容。o滚动条可分为水平滚动条和垂直滚动条两种,滚动条可分为水平滚动条和垂直滚动条两种,两端都有两个箭头按钮,中间有一个可沿滚动两端都有两个箭头按钮,中间有一个可沿滚动条方向移动的滚动块。滚动条控件的各种操作条方向移动的滚动块。滚动条控件的各种操作封装在封装在MFCMFC的的CScrollBarCScrollBar类中。类中。 滚动条的基本操作滚动条的基本操作 o(1 1)设置和获取滚动条的范围)设置和获取滚动条的范围 滚动条控件的缺省滚动范围是滚动条控件的缺省滚动范围是0-00-0,可用,可
52、用CScrollBarCScrollBar类类的成员函数的成员函数SetScrollRangeSetScrollRange设置滚动条的滚动范围。与设置滚动条的滚动范围。与SetScrollRangeSetScrollRange相应的函数是相应的函数是GetScrollRangeGetScrollRange,该函数获,该函数获取当前滚动条的最小值和最大值。取当前滚动条的最小值和最大值。o(2 2)设置和获取滚动块的位置)设置和获取滚动块的位置 可用可用CScrollBarCScrollBar类的成员函数类的成员函数SetScrollPosSetScrollPos设置滚动块设置滚动块的位置。的位置
53、。WM_HSCROLLWM_HSCROLL和和WM_VSCROLLWM_VSCROLL消息消息 通知消息 说明 SB_ENDSCROLL 结束滚动 SB_LEFT、SB_RIGHT 滚动到最左端或最右端 SB_LINELEFT、SB_LINERIGHT 向左或向右滚动一行(或一个单位) SB_PAGELEFT、SB_PAGERIGHT 向左或向右滚动一页 SB_THUMBPOSITION 滚动到某绝对位置 SB_TOP、SB_BOTTOM 滚动到最上端或最下端 SB_LINEUP、SB_LINEDOWN 向上或向下滚动一行(或一个单位) SB_PAGEUP、SB_PAGEDOWN 向上或向下滚
54、动一页 SB_THUMBTRACK 拖动滚动块 5.4 5.4 公共控件公共控件o5.4.15.4.1旋转按钮旋转按钮 o5.4.25.4.2滑块滑块o5.4.35.4.3进度条进度条 o5.4.45.4.4标签控件、属性表和属性页标签控件、属性表和属性页 o5.4.55.4.5图像列表图像列表 o5.4.65.4.6列表视控件列表视控件 o5.4.75.4.7树视控件树视控件 .4.1 .4.1 旋转按钮旋转按钮o旋转按钮控件(旋转按钮控件(SpinSpin)又称为上下控件()又称为上下控件(Up Down ControlUp Down Control)或微调控件或微调控件 。o主要功能是利
55、用一对标有相反方向箭头的小按钮,通过点主要功能是利用一对标有相反方向箭头的小按钮,通过点击它来在一定范围内改变当前的数值。击它来在一定范围内改变当前的数值。o旋转按钮控制的当前值通常显示在一个称为伙伴窗口旋转按钮控制的当前值通常显示在一个称为伙伴窗口(Buddy WindowBuddy Window)的控制中,可以是一个编辑框等。)的控制中,可以是一个编辑框等。o旋转按钮控件的各种操作封装在旋转按钮控件的各种操作封装在MFCMFC的的CSpinButtonCtrlCSpinButtonCtrl类类中。中。 旋转按钮控件的基本操作旋转按钮控件的基本操作 o基数的设置和获取基数的设置和获取 Set
56、BaseSetBase、GetBaseGetBase o范围及位置的设置和获取范围及位置的设置和获取SetRangeSetRange或或SetRange32SetRange32、GetRangeGetRange和和GetRange32GetRange32、SetPosSetPos和和GetPosGetPos 旋转按钮控件的通知消息只有一个:旋转按钮控件的通知消息只有一个:UDN_DELTAPOSUDN_DELTAPOS,它是当控件的当前数值将要改变时向其父窗口发送的。它是当控件的当前数值将要改变时向其父窗口发送的。 5.4.2 5.4.2 滑块滑块o一个滑块(也称为滑动条或游标)是包含一个滑动
57、块和可一个滑块(也称为滑动条或游标)是包含一个滑动块和可选刻度线的窗口。选刻度线的窗口。o滑块滑块(Slider)(Slider)是按照应用程序中指定的增量来移动的。是按照应用程序中指定的增量来移动的。o滑块控件的各种操作封装在了滑块控件的各种操作封装在了MFCMFC的的CSliderCtrlCSliderCtrl类中类中 。滑块的基本操作滑块的基本操作 o范围和位置的设置和获取范围和位置的设置和获取SetRangeSetRange和和SetPosSetPos、SetRangeMaxSetRangeMax和和SetRangeMinSetRangeMin、GetRangeGetRange、Get
58、PosGetPos、GetRangeMaxGetRangeMax和和GetRangeMinGetRangeMin o选择范围的设置选择范围的设置SetSelectionSetSelection o刻度线尺寸的设置和清除刻度线尺寸的设置和清除SetTicSetTic、SetTicFreqSetTicFreq、ClearTicsClearTics 滑块的通知消息滑块的通知消息 oTB_BOTTOMTB_BOTTOM、TB_ENDTRACKTB_ENDTRACK、TB_LINEDOWNTB_LINEDOWN、TB_LINEUPTB_LINEUP、TB_PAGEDOWNTB_PAGEDOWN、TB_P
59、AGEUPTB_PAGEUP、TB_THUMBPOSITIONTB_THUMBPOSITION、TB_THUMBTRACKTB_THUMBTRACK和和TB_TOPTB_TOP 5.4.3 5.4.3 进度条进度条o进度条进度条(Progress)(Progress)主要用来进行数据读写、文主要用来进行数据读写、文件拷贝和磁盘格式等操作时的工作进度提示情件拷贝和磁盘格式等操作时的工作进度提示情况,如安装程序等。况,如安装程序等。oMFCMFC的的CProgressCtrlCProgressCtrl类封装了进度条控件的各类封装了进度条控件的各种操作,种操作,CProgressCtrlCProgr
60、essCtrl类通常仅作为输出类类通常仅作为输出类控制。控制。 进度条的基本操作进度条的基本操作o(1 1)范围及位置的设置和获取)范围及位置的设置和获取 进度条的初始范围为进度条的初始范围为0-1000-100,可用成员函数,可用成员函数SetRangeSetRange或或SetRange32SetRange32来设置进度条控件的范围,成员函数来设置进度条控件的范围,成员函数SetPosSetPos用用来设置进度条控件的当前位置。与来设置进度条控件的当前位置。与SetPosSetPos函数相应的函数函数相应的函数是是GetPosGetPos。o(2 2)设置色块的填充速度)设置色块的填充速度
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- GB/T 45639-2025交换标头封装包技术规范
- 材料力学与智能材料性能研究拓展重点基础知识点
- 行政法学精英训练试题及答案
- 行政法学复习资料的使用与反馈:试题及答案
- 时空组学 数据集格式规范 征求意见稿
- 行政管理应用能力试题与答案
- 火灾人亡后续应急预案(3篇)
- 小学生遇到火灾应急预案(3篇)
- 法学概论考试的内容适应性研究试题及答案
- 2025年网络管理员考试心得及试题与答案
- 道德与法治教育资源整合与利用方案
- 《WEBGIS编程入门教程》课件
- 2024年合肥滨湖投资控股集团有限公司招聘真题
- 医保基金管理专项整治部署
- 2024年济南市工程咨询院招聘考试真题
- 小儿推拿培训合同协议
- 防尘防潮仓库管理制度
- 酒店房价体系管理制度
- 2025至2030年中国内脱模剂数据监测研究报告
- 金属壁板隔墙施工方案
- 销售商品收入
评论
0/150
提交评论