文档详情

VS2010和MFC编程入门之25(常用控件:组合框控件Combo Box).docx

发布:2017-05-03约6.93千字共10页下载文档
文本预览下载声明
VS2010MFC编程入门之二十五(常用控件:组合框控件Combo Box)理解了列表框控件ListBox的使用,这里主要讲解组合框控件Combo Box。组合框同样相当常见,例如,在Windows系统的控制面板上设置语言或位置时,有很多选项,用来进行选择的控件就是组合框控件。它为我们的日常操作提供了很多方便。组合框控件简介组合框其实就是把一个编辑框和一个列表框组合到了一起,分为三种:简易(Simple)组合框、下拉式(Dropdown)组合框和下拉列表式(Drop List)组合框。下面讲讲它们的区别。简易组合框中的列表框是一直显示的,效果如下图:下拉式组合框默认不显示列表框,只有在点击了编辑框右侧的下拉箭头才会弹出列表框,列表框弹出后如下图:下拉列表式组合框的编辑框是不能编辑的,只能由用户在下拉列表框中选择了某项后,在编辑框中显示其文本。下拉列表式组合框如下图:经过上面的介绍,大家应该知道,最常用的当属下拉式组合框和下拉列表式组合框了,它们在很多时候能使程序看起来更专业,更简洁,让用户在进行选择操作时更方便。组合框被操作时会向父窗口发送通知消息,这些通知消息及其含义如下: CBN_CLOSEUP:组合框的列表框组件被关闭,简易组合框不会发送该通知消息 CBN_DBLCLK:用户在某列表项上双击鼠标,只有简易组合框才会发送该通知消息 CBN_DROPDOWN:组合框的列表框组件下拉,简易式组合框不会发送该通知消息 CBN_EDITUPDATE:在编辑框准备显示改变了的正文时发送该消息,下拉列表式组合框不会发送该消息 CBN_EDITCHANGE:编辑框的内容被用户改变了,与CBN_EDITUPDATE不同,该消息是在编辑框显示的正文被刷新后才发出的,下拉列表式组合框不会发送该消息 CBN_ERRSPACE:组合框无法申请足够的内存来容纳列表项 CBN_SELENDCANCEL:表明用户的选择应该取消,当用户在列表框中选择了一项,然后又在组合框控件外单击鼠标时就会导致该消息的发送 CBN_SELENDOK:用户选择了一项,然后按了回车键或单击了下滚箭头,该消息表明用户确认了自己所作的选择 CBN_KILLFOCUS:组合框失去了输入焦点 CBN_SELCHANGE:用户通过单击或移动箭头键改变了列表的选择 CBN_SETFOCUS:组合框获得了输入焦点组合框控件的创建 MFC将组合框控件的所有操作都封装到了CComboBox类中。我们在对话框中加入组合框时,可以往对话框模板中拖入Combo Box控件,而后添加CComboBox类型的控件变量使用,但如果我们想在程序中动态创建的话,就要使用CComboBox类的成员函数Create了。Create函数的原型如下:virtual BOOL Create( DWORD dwStyle,const RECT rect,CWnd* pParentWnd, UINT nID);大家可以看出,CComboBox类的Create成员函数同前面几个控件类的Create成员函数非常类似,dwStyle指定组合框控件的风格,rect为列表框弹出后组合框的位置和尺寸,pParentWnd是指向父窗口的指针,不能为NULL,nID指定组合框控件的ID。最后还是重点讲讲dwStyle参数。组合框控件的风格包括以下几种,并给出了相应说明: CBS_AUTOHSCROLL:使编辑框组件具有水平滚动的风格 CBS_DISABLENOSCROLL:使列表框在不需要滚动时显示一个禁止的垂直滚动条 CBS_DROPDOWN:指定一个下拉式组合框 CBS_DROPDOWNLIST:指定一个下拉列表式组合框 CBS_HASSTRINGS:指定一个含有字符串的自绘式组合框 CBS_LOWERCASE:将编辑框和列表框中的所有文本都自动转换为小写字符 CBS_NOINTEGRALHEIGHT:组合框的尺寸由应用程序而不是Windows 指定,通常,由Windows指定尺寸会使列表项的某些部分隐藏起来 CBS_OEMCONVERT:使编辑框组件中的正文可以在ANSI 字符集和OEM字符集之间相互转换。这在编辑框中包含文件名时是很有用的 CBS_OWNERDRAWFIXED:指定自绘式组合框,即由父窗口负责绘制列表框的内容,并且列表项有相同的高度 CBS_OWNERDRAWVARIABLE:指定自绘式组合框,并且列表项有不同的高度 CBS_SIIMP
显示全部
相似文档