对话框和标准控件.ppt
《对话框和标准控件.ppt》由会员分享,可在线阅读,更多相关《对话框和标准控件.ppt(39页珍藏版)》请在三一办公上搜索。
1、1,第四章 对话框和标准控件,2,本章内容,对话框概述使用对话框标准控件通用对话框公共控件(略),3,一、对话框概述,对话框是Windows应用程序中常用的I/O界面,是实现人机交互的容器型窗口,对话框总会包含一些功能性控件。控件是嵌入在对话框或其他窗口内的子窗口,用于实际完成数据或信息的I/O。对话框的存在方式有两种:一是作为独立的程序主窗口出现和使用;二是作为普通窗口类程序的弹出式子窗口实现其人机交互功能。从状态上区分,对话框分为“模式对话框”和“非模式对话框”两种。,4,1、MFC的CDialog类CDialog类的成员函数有:CDialog()构造函数,创建对话框对象DoModal()
2、激活并显示模式对话框Create()创建非模式对话框OnOk()与OnCancel()确定与取消按钮的处理函数OnInitDialog()WM_INITDIALOG的消息处理函数EndDialog()关闭模式对话框的函数,5,对话框要实现人机交互,还必须使用CWnd类函数:ShowWindow()显/隐对话框;DestroyWindow()关闭销毁对话框;UpdateData()设置或获取对话框控件的数据GetWindowText()获取对话框窗口的标题SetWindowText()设定对话框窗口的标题GetDlgItemText()获取对话框中控件的文本内容SetDlgItemText()设
3、置对话框中控件的文本内容GetDlgItem()获取控件或子窗口的指针,返回IDEnableWindow()使能或禁用窗口,6,2、MFC为对话框提供了DDX机制以此来自动实现控件与应用程序之间的数据交换的,同时使用DDV机制实现数据合法性的自动验证。DDX全称Dialog Data Exchange;数据交换DDV全称Dialog Data Validation;数据检验,7,3、使用信息/消息对话框程序员在编程时可以直接调用,以下为函数原型:,三个函数依次为:MFC全局函数;API函数;CWnd类的成员函数。AfxMessageBox()和:MessageBox()可以在任何地方使用,而第
4、三种函数只能用于控件、对话框和窗口。lpText表示要在对话框内显示的信息字串;hWnd表示对话框父窗口的指针,可为NULL;lpCaption表示信息框的标题;nType表示对话框的图标与按钮风格;,8,9,二、使用对话框,编程时,对话框由资源模板和对话框类共同组成。1、创建和使用对话框的主要步骤创建对话框模板资源和相关控件;用类向导创建对话框类和与控件相关联的成员变量和消息处理函数;设计程序访问接口来显示对话框并获取与控件相关联的程序数据。,10,对话框在程序中的调用一般由菜单项来完成。由程序显示对话框就需要调用菜单命令的消息处理函数,加入如下通用型代码:CMyDialog myDlg;m
5、yDlg.DoModol();而要从对话框中获取相关控件数据的方法是:CMyDialog mydlg;/当对话框内控件接受输入并单击OK键后 If(myDlg.DoModol()=IDOK)appVariableX=dlg.m_nXControlDataMember;,11,对话框的基本工作流程,12,2、创建和使用对话框实例编制一个在客户区画圆的应用程序,要求用对话框来接受用户键盘输入的圆半径参数。步骤(1)为视图类声明成员变量:UINT m_nViewRadius;(2)创建对话框模板(标题:输入半径;ID缺省IDD_DIALOG1)(3)添加两个控件:Static Control:请输入
6、半径;EditBox:IDC_EDIT_RADIUS。(4)双击对话框空白处,为其创建新类CRadiusDlg,并为其核心控件IDC_EDIT_RADIUS创建m_nRadius的UINT类型变量。,13,(5)在程序的“编辑”菜单中添加“输入半径(I)”的菜单命令,并用类向导生成消息映射函数,加入如下定义代码:CRadiusDlg dlg;Dlg.m_nRadius=100;/设置控件初值If(dlg.DoModal()=IDOK)m_nViewRadius=dlg m_nRadius;/接受并存储编辑框内的数据Invalidate();/强制刷新视图(6)在视图类的OnDraw()函数中加
7、入画圆代码:pDC-Ellipse(90,90,m_nViewRadius,m_nViewRadius);(7)在视图类中加入包含语句:#include“RadiusDlg.h”,14,三、标准控件,1、控件概述Windows提供两种控件:标准控件和公共控件。标准控件有:静态控件、编辑框、按钮、列表框、组合框和滚动条。可满足多数UI设计的要求。各控件的功能:静态控件用于提示文字或美工图片;编辑框接受键盘输入信息;按钮中的单选钮提供排他型选择;复选框提供多项选择;列表框以列表方式显示各选项;组合框是编辑框与列表框之集成;滚动条控制文档的显示范围。,15,除标准控件之外,控件工具箱中列示的其他控件
8、基本上都属于公共控件。MFC对控件分别由不同的类来管理。,CStatic静态文本与图片CEdit编辑框CButton组框单选复选框CComboBox组合框CScrollBar滚动条CSpinButtonCtrl旋转钮CProgressCtrl进度条CSliderCtrl滑动条CListBox列表框CListCtrl列表视控件,CTreeCtrl树型列表CTabCtrl标签CAnimateCtrl动画控件CRichEditCtrl复合编辑CDateTimeCtrl日期时间CMonthCalCtrl日历CComboBoxEx扩展组合框CStatusBarCtrl状态条控件CToolBarCtrl工
9、具条控件CImageList图像列表,16,用户对控件的操作将会引发控件事件和消息,消息由其父窗口接收并处理。标准控件和公共控件都能发送WM_COMMANDO类型的消息,后者还可发送WM_NOTIFY通知消息。消息的参数中包含了控件ID和通知码,通知码前缀最后一个字母总为N。比如:BN_CLICKED为按钮单击;EN_UPDATE为编辑框刷新;CBN_SETFOCUS表示组合框获得焦点。,17,2、对话框内控件的组织(1)添加或删除控件添加:鼠标单击、拖放、画框均可;删除:选中后Del键.(2)设置控件属性属性决定外观及风格,通过右键快捷菜单中的属性项设置。常用属性:ID、Caption、Vi
10、sable、Group、Disabled 和Tab Stop;分别表示识别号、名称标题、是否可见、指定控件组之首控件、初始禁用、Tab键停留。其中,控件的Tab键次序由创建的先后顺序决定,但也可以人为设置,重设的命令为Ctrl+D,或菜单Layout|TabOrder。(3)调整控件大小通过控件周围的编辑句柄调整,选中控件后,其左上角坐标及长宽尺寸便自动显示于状态栏的右侧窗格。只有静态文本控件的尺寸由其Caption字符多少决定。,18,CTRL+D命令可以重置各个控件的Tab键次序,19,(4)控件的多选方法按住Ctrl/Shift键配合鼠标左键;用鼠标拖框圈定目标控件。(5)移动和复制控件
11、方向键及鼠标拖放可以移动控件;按住Ctrl键不放,鼠标拖放目标控件,可复制控件;(6)批量控件编排先多选目标控件,后使用窗底工具栏的工具(在状态栏之上),测试对话框,靠左对齐,靠右对齐,靠上对齐,靠下对齐,垂直居中,水平居中,水平等距离,垂直等距离,宽度相同,高度相等,大小相同,显示网格,显示标尺,20,3、静态控件静态控件用于显示提示字符串或图形信息。包括静态文本(Static Text)、图片控件(Picture Control)和组框(Group Control)三种类型。静态文本:一般只起文字提示作用,不发送任何消息,所以一般不需要特意相互区分,默认ID均为IDC_STATIC。但是,
12、如何有时需要动态改变某一控件的文字信息,就需要为其确立一个唯一的ID。该控件最多只能显示255个字符,且可以以n作用换行符。图片控件:用于显示边框、矩形、图标或位图,对其他相关控件起修饰作用。组框:通常仅用于作为一组控件的外围边界,起圈围和版面划分作用,外型由文本标题和矩形边框组成。,21,4、编辑框控件编辑框(Edit box),又称文本框,是接受用户键盘输入的最常用控件,具有数据消息的接收与输出功能。可接受的消息包括文本、数字或口令,输入时允许进行如文本编辑的一般操作。Edit box的常用属性:Multiline多行输入;Align Text对齐方式;Number只接收数字;PassWo
13、rd只接受密码口令;ReadOnly信息只读;Border周围边框;Upercase转为大写;Lowercase转为小写;Edit box可发送的常见消息:EN_CHANGE信息改变时;EN_UPDATE信息更新显示前;EN_KILLFOCUS失去焦点时;EN_SETFOCUS得到焦点时;EN_MAXTEXT输入字符超限时。,22,编辑框的应用实例:编写一个名为PassWord的SDI应用程序,要求程序启动后先弹出一用户登录对话框,只有当用户输入正确的口令后方可进入主界面。创建工程,从C盘向工程中任意导入两个图标资源;按图示创建对话框模板,并向其添加相关控件;用类向导创建CPasswordDl
14、g类,并分别为三个核心控件添加CString型的成员变量并限定输入位为6位:m_strUserName;m_strPassword和m_strShowPassword;用类向导为复选框IDC_CHECKSHOW声明Control类型的变量m_ButtonCheck.,23,IDC_EDITSHOWPASS的属性:Read-OnlyIDC_EDITPASS的属性:PasswordIDC_CHECKSHOW的变量为:Control类型,m_ButtonCheck,24,用类向导为口令控件添加EN_CHANGE的消息处理函数OnChangeEditpass(),并加入代码,实现将口令字符向“显示口令
15、”控件的传递和显示。if(m_ButtonCheck.GetCheck()/判断“显示口令”复选框是否选定UpdateData(true);/由控件向程序传递数据m_strShowPass=m_strPassword;/传递口令到显示变量UpdateData(FALSE);/将变量数据向控件传递并显示在程序应用类的初始化函数中显示对话框,并实现用户信息的验证。(代码见下页)编译运行程序。,25,#include“PasswordDlg.h”/本句加至应用类cpp文件的头部int nCount=0;/初始化口令输入次数/本句后加至初始化函数的前半部while(nCount=3)MessageBo
16、x(NULL,口令输入超过3次,请退出!,错误信息,MB_OK|MB_ICONERROR);return FALSE;/退出程序,26,5、按钮控件按钮(button)包括按键按钮(Push button)、单选钮(Radio button)和复选框(Check box)三种,均可激发单击、双击或命令消息。PushButton又称命令按钮,最常用。一个对话框内可以给惟一一个PushButton设定Defult属性;按钮具有的Owner Draw属性可以通过调用OnDrawItem()消息函数来重新定制其外观;Icon和Bitmap属性表示可以用指定图标或位图代替文本标题,从而实现所谓“图形按钮
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 对话框 标准 控件
链接地址:https://www.31ppt.com/p-6274284.html