提示:在用Create函数创建组合框时,参数rect说明的是包括列表框组件在内的组合框的位置和尺寸,而不是列表框组件隐藏时的编辑框组件尺寸.要设置编辑框组件的高度,可以调用成员函数SetItemHeight(-1,cyItemHeight),其中参数cyItemHeight指定了编辑框的高度(以像素为单位).
表6.13 组合框的风格
控件风格
含义
CBS_AUTOHSCROLL
使编辑框组件具有水平滚动的风格.
CBS_DROPDOWN
指定一个下拉式组合框.
CBS_DROPDOWNLIST
指定一个下拉列表式组合框.
CBS_HASSTRINGS
指定一个含有字符串的自绘式组合框.
CBS_OEMCONVERT
使编辑框组件中的正文可以在ANSI字符集和OEM字符集之间相互转换。这在编辑框中包含文件名时是很有用的。
CBS_OWNERDRAWFIXED
指定自绘式组合框,即由父窗口负责绘制列表框的内容,并且列表项有相同的高度.
CBS_OWNERDRAWVARIABLE
指定自绘式组合框,并且列表项有不同的高度.
CBS_SIIMPLE
指定一个简易式组合框.
CBS_SORT
自动对列表框组件中的项进行排序.
CBS_DISABLENOSCROLL
使列表框在不需要滚动时显示一个禁止的垂直滚动条.
CBS_NOINTEGRALHEIGHT
组合框的尺寸由应用程序而不是Windows指定.通常,由Windows指定尺寸会使列表项的某些部分隐藏起来.
CBS_SIMPLE、CBS_DROPDOWN和CBS_DROPDOWNLIST分别用来将组合框指定为简易式、下拉式和下拉列表式.一般还要为组合框指定WS_CHILD、WS_VISIBLE、WS_TABSTOP、WS_VSCROLL和CBS_AUTOHSCROLL风格.如果要求自动排序,还应指定CBS_SORT风格.
对于用对话框模板编辑器创建的组合框控件,可以在控件的属性对话框中指定上表中列出的控件风格。例如,在属性对话框中选择Dropdown,相当于指定了CBS_DROPDOWN.
CComboBox类的成员函数较多.其中常用的函数可粗分为两类,分别针对编辑框组件和列表框组件.可以想象,这些函数与CEdit类和CListBox类的成员函数肯定有很多类似之处,但它们也会有一些不同的特点.如果读者能从"组合框是由编辑框和列表框组成"这一概念出发,就能够很快的掌握CComboBox的主要成员函数.
事实上,绝大部分CComboBox的成员函数都可以看成是CEdit或CListBox成员函数的翻版.函数的功能,函数名,甚至函数的参数都是类似的.为了方便学习,在下面列出CComboBox类的成员函数时,采用了与对应的CEdit或CListBox成员函数相比较的做法.在成员函数的列表中,分别列出了成员函数名,对应的CEdit或CListBox成员函数,以及二者之间的不同之处.不同之处是指函数的功能、参数以及返回值有什么差别.
针对编辑框组件的主要成员函数如表6.14所示.该表的前三个函数实际上是CWnd类的成员函数,可用来查询和设置编辑框组件.
表6.14 针对编辑框组件的CComboBox成员函数
成员函数名
对应的CEdit成员函数
与CEdit成员函数的不同之处
CWnd::GetWindowText
CWnd::GetWindowText
无.
CWnd::SetWindowText
CWnd::SetWindowText
无.
CWnd::GetWindowTextLength
CWnd::GetWindowTextLength
GetEditSel
GetSel的第一个版本
仅函数名不同.
SetEditSel
SetSel的第二个版本
函数名不同,且无bNoScroll参数.
Clear
Clear
无.
Copy
Copy
无.
Cut
Cut
无.
Paste