资源预览内容
第1页 / 共22页
第2页 / 共22页
第3页 / 共22页
第4页 / 共22页
第5页 / 共22页
第6页 / 共22页
第7页 / 共22页
第8页 / 共22页
第9页 / 共22页
第10页 / 共22页
亲,该文档总共22页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
第五 常用控件,Windows提供的控件分为两类:标准控件和公共控件。 标准控件包括静态控件、编辑控件、按钮、列表框、组合框和滚动条等。利用标准控件可满足大部分用户界面程序设计的要求。 Windows还提供了一些通用的公共控件,如滑块、进度条、列表控件、树控件和标签控件等,以实现应用程序用户界面风格的多样性。,5.1 控件概述,所谓控件,实际上是一个现成的程序组件,可以独立运行以完成一定的功能,它使应用程序对话功能的设计更容易完成。 控件对应一个CWnd派生类的对象,它实际上也是一个窗口。可以通过调用窗口类的成员函数实现控件的移动、显示或隐藏、禁用或可用等操作。 控件在程序中可作为对话框控件或独立的窗口两种形式存在,因此控件的创建方法也有两种。一种方法是在对话框模板资源中指定控件。另一种方法是通过调用MFC控件类的成员函数Create()创建控件。,控件通知消息,用户对控件的操作将引发控件事件,Windows产生对应的控件通知消息并由其父窗口(如对话框)接收并处理。 标准控件发送WM_COMMAND控件通知消息,公共控件一般发送WM_NOTIFY控件通知消息,有时也发送WM_COMMAND消息。 通过WM_COMMAND消息参数标识可识别发出消息的控件和具体的事件,消息参数中包含了控件的ID标识和通知码。 利用类向导可以很容易地为控件通知消息加入消息映射和消息处理函数。传统控件的消息映射宏是ON_XXXX,其中XXXX表示消息通知码,它有两个参数,一个是控件的ID,一个是消息处理函数名。,5.2控件的组织操作,添加或删除控件 移动和复制控件 设定控件属性 调整控件的大小 同时选取多个控件 编排控件,5.3 静态控件,静态控件(static control)是用来显示一个文本串或图形信息的控件,包括静态文本控件(Static Text)、图片控件(Picture)和组框。 静态文本控件和图片控件的MFC类是CStatic类,而管理组框的MFC类是CButton类。 所有静态控件默认的ID标识都为IDC_STATIC,如果要为一个静态控件添加成员变量或消息处理函数,必须重新为它指定一个唯一的ID标识。 如果想使静态控件响应输入而发送消息,需要设置它的Notify风格属性。,5.4 编辑类控件,编辑类控件是一种可以用来接受用户键盘字符输入的矩形区域,可以在其内进行编辑操作。该类控件是程序接受用户字符输入的一种主要手段。 可以通过使用CWnd类成员函数SetWindowText()和GetWindowText()来设定和获取一个编辑类控件中的文本。,编辑框控件 (CEdit类),编辑框(Edit Box)又称文本框或编辑控件。编辑框一般与静态文本控件一起使用,用于数据的输入和输出。MFC的CEdit类提供了有关编辑类控件的功能函数。 编辑框控件实际上是一个简易的文本编辑器,用户可以在编辑框中输入或插入文本。还有复制、粘贴、剪切、删除等编辑功能。 编辑框既可以是单行的,也可以是多行的,多行编辑框从零开始编行号。在一个多行编辑框中,除了最后一行外,每一行的结尾处都有一对回车换行符(用“rn”表示)。这对回车换行符是正文换行的标志,在屏幕上是不可见的。,CEdit类的主要成员函数,BOOL Create( DWORD dwStyle, const RECT,编辑框控件向父窗口发出的控件通知消息,EN_CHANGE 编辑框的内容被用户改变了。与EN_UPDATE不同,该消息是在编辑框显示的文本被刷新后才发出的。 EN_ERRSPACE 编辑控件无法申请足够的动态内存来满足需要。 EN_HSCROLL 用户在水平滚动条上单击鼠标。 EN_KILLFOCUS 编辑框失去输入焦点。 EN_MAXTEXT 输入的字符超过了规定的最大字符数。在没有ES_AUTOHSCROLL或ES_AUTOVSCROLL的编辑框中,当文本超出了编辑框的边框时也会发出该消息。 EN_SETFOCUS 编辑框获得输入焦点。 EN_UPDATE 在编辑框准备显示改变了的文本时发送该消息。 EN_VSCROLL 用户在垂直滚动条上单击鼠标。,Rich Edit控件 (CRichEditCtrl 类),Rich Edit控件是用户可以输入编辑文本的控件,与编辑控件不同的是,该控件中文本可以是文本、段落和嵌入的OLE对象。 Rich Edit控件为格式化文本提供了一个编程接口,而且可以像Word那样指定字符中字体、大小等属性。Rich Edit控件支持更改选定段落属性(包括对齐、页边距和制表位)和一些字符属性(包括粗体、斜体、字体系列和磅值)。 CRichEditCtrl类中提供了设置段落或字符格式、获取当前段落或字符格式的成员函数。 Rich Edit控件支持几乎所有用于编辑框控件的操作函数和通知消息。 要使用RichEdit控件,必须在程序中调用AfxInitRichEdit函数一次,用于初始化RichEdit控件. BOOL AFXAPI AfxInitRichEdit( );,IP地址控件 (CIPAddressCtrl类),IP地址控件类似于编辑框控件,允许进入并操作一个Internet Protocol(IP)格式的数字地址。 CIPAddressCtrl类的主要成员函数: GetAddress 获得一个IP地址 SetAddress 设置一个IP地址 ClearAddress 将IP地址清空 IsBlank 测试IP地址是否为空 向父窗口发出的控件通知消息有: IPN_FIELDCHANGED IP地址的任意一个域发生了变化,5.5按钮控件,按钮类控件是被系统预定义为Button的一类控件,该类控件具有十余种不同的窗口风格,包含了普通的下压按钮、单选按钮、检查按钮和分组框等多种常用的按钮形式。 下压按钮的作用是对用户的鼠标单击作出反应并触发相应的事件,在按钮中既可以显示正文,也可以显示位图。 检查按钮可作为一种选择标记,可以有选中、不选中和不确定三种状态。 单选按钮一般都是成组出现的,具有互斥的性质,即同组单选按钮中只能有一个是被选中的。 检查按钮、单选按钮和下压按钮只能发送通知码为BN_CLICKEN(单击按钮)和BN_DOUBLECLICKED(双击按钮)的WM_COMMAND消息,下压按钮,下压按钮又称按钮或命令按钮,用于响应用户的鼠标按键等操作,触发相应的事件。 通过控件Properties属性对话框可设置按钮的不同风格,Default button属性来设置一个默认按钮,一个对话框只能有一个Default button默认按钮,通常情况下将OK按钮设置为默认按钮。Owner draw使得可以利用对话框的WM_DRAWITEM消息处理函数OnDrawItem()定制按钮的外观;Icon表示用一个BS_ICON图标代替原来的文本标题;Bitmap表示用一个BS_BITMAP位图代替原来的文本标题;Notify表示当单击或双击按钮时将通知父窗口;Flat使按钮不具有立体风格;Client edge、Static edge、Model frame设置按钮的外观;Accept files表示当用户利用鼠标将一个文件拖拽到按钮上时,将发送消息WM_DROPFILES。,检查按钮,检查按钮又称检查框或复选框,检查按钮是由一个空心方框和紧随其后的文本组成,当它被选中时,空心方框中就加上一个“”或“”标记。 不同于单选按钮,在一组检查按钮中每次可以同时选择多项。此外,检查按钮还有一种不确定状态,这时检查框呈灰色显示,不能接受用户的输入,以表明控件是无效的或无意义的,可以通过设置Tri-state属性得到。,单选按钮,单选按钮是由一个圆圈和紧随其后的文本标题组成,当它被选中时,圆圈中就标上一个黑点。单选按钮设置Auto自动属性为默认属性,Auto属性表示用户若选中同组中的某个单选按钮,则自动清除其余按钮的选中状态,保证一组单选按钮始终只有一项被选中。 通常单选按钮总是成组使用,在一组单选按钮中,第一个(Tab键顺序)按钮最为重要,其ID可用于在对话框类中为控件建立关联的成员变量。必须为同组中第一个单选按钮设置Group属性,而同组的其他单选按钮不可再设置Group属性。,SpinButton控件,数值调节钮控件(Spin Control)又称为微调控件(Up-Down控件)或旋转按钮,其主要功能是利用一对标有相反方向箭头的小按钮,通过单击它可以在一定范围内改变当前的数值。当用户单击上箭头键,该位置移向最大值;当用户单击下箭头键,该位置移向最小值。 数值调节钮控件(Spin Control)在MFC中由类CSpinButtonCtrl表示。一般情况下,数值调节钮控件经常和一个关联控件绑在一起使用,关联控件称为“伙伴窗口”。 对数值调节钮控件的操作主要是获取和设置微调按钮的变化范围、当前数值、伙伴窗口、伙伴窗口显示当前数据的数值是基于十进制还是十六进制和用户按住按钮时数值变化速度的加速度等。,若设置auto buddy属性,则该控件的伙伴窗口是前一个(Tab键顺序)控件。若设置Set buddy integer属性,则伙伴窗口中的数据将随着微调控件的动作自动更改。 数值调节钮控件的类属性包括设置加速键SetAccel、取得加速键GetAccel、设置基数SetBase、取得基数GetBase、设置伙伴窗口SetBuddy、取得伙伴窗口GetBuddy、设置当前位置SetPos、取得当前位置GetPos、设置上限下限值SetRange和取得上限下限值GetRange等。,SpinButton控件的属性与方法,ScrollBar滚动条按钮,滚动条(Scroll Bar)主要用来从某一预定义值范围内快速有效地进行选择。滚动条分垂直滚动条和水平滚动条两种。在滚动条内有一个滚动框,用来表示当前的值。用鼠标单击滚动条,可以使滚动框移动一页或一行,也可以直接拖动滚动框。滚动条既可以作为一个独立控件存在,也可以作为窗口、列表框和组合框的一部分。 当用户移动滚动条时,滚动条就会向父窗口发送水平滚动消息WM_HSCROLL或垂直滚动消息WM_WSCROLL。滚动消息含有通知码,表示用户对滚动条的操作方式。,CScrollBar滚动条按钮使用,滚动条编程的主要步骤是:(1)向对话框模板资源添加滚动条控件;(2)为滚动条映射成员变量;(3)在对话框的OnInitDialog()函数中通过滚动条控件成员变量调用MFC类ScrollBar的成员函数,设置滚动条的滚动范围和滚动块位置;(4)利用ClassWizard类向导添加滚动消息处理函数,根据传递给函数的消息通知码参数、滚动块位置参数和其他参数进行相应的处理,实现具体的程序功能。 CScrollBar类主要成员函数 BOOL Create( DWORD dwStyle, const RECT,Slider滑块控件,滑块控件也叫滑动控件,是Windows中最常用的控件之一。滑块条既可以是水平方式的,也可以是垂直方式的。 滑块条的刻度条在每一个数值位置显示一个刻度标记,如果在滑块条上显示某一数值选择区间,则应使用风格TBS_ENABLESELRANGE,此时选择区间不再是刻度标记,而是一个小的三角形符号。另外,使用风格TBS_NOTHUMB会使滑标消隐起来。 滑块控件在MFC类库中被封装为CSliderCtrl类,其主要操作是设置刻度范围、绘制刻度标记、设置选择范围和当前滑标位置等。当用户进行交互操作时,滑块控件将向父窗口发送消息WM_HSCROLL。,CSlider滑块控件类成员函数,BOOL Create( DWORD dwStyle, const RECT,ProgressCtrl进度控件,进度控件(Progress Control)主要用来进行数据读写、文件拷贝和磁盘格式化等操作时的工作进度提示,如安装程序等,伴随工作进度的进展,进度的矩形区域从左到右利用当前活动窗口标题条的颜色来不断填充。 进度控件在MFC类库中的封装
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号