组合框的风格取值定义了组合框的具体属性,包括是否自动排序,是否有滚动条。
基本介绍
- 中文名:组合框
- 包括:是否自动排序
- 类别:对话框
- 属于:应用程式
风格取描述
组合框的风格,取值如表所示。
组合框

CBS_AUTOHSCROLL 当用户在编辑区域键入字元时,列表框自动滚动,使当前项的名称与键入的字元排序相同
CBS_DROPDOWN 创建一个下拉式组合框
CBS_DROPDOWNLIST 创建一个下拉式列表框
CBS_HASSTRINGS 让应用程式能够使用GetText取得组合框里的文本
CBS_OEMCONVERT 把输入的文本将从ANSI码转换成OEM码,然后又转换成ANSI码;这样的目的是保证函式AnsiToOem的正确调用
CBS_OWNERDRAWFIXED 父视窗负责重画组合框里的各项,并使各项的高度一致
CBS_OWNERDRAWVARIABLE 父视窗负责重画组合框里的各项,各项的高度不一致
CBS_SIMPLE 组合框显示所有的项,当前的选项在编辑区域中显示
CBS_SORT 自动排序
CBS_DISABLENOSCROLL 组合框有垂直滚动条,当组合框的项不足时,滚动条激活;没有该风格,则滚动条隐藏
CBS_NOINTEGRALHEIGHT 指定组合框的大小由程式精确控制,通常组合框的大小由组合框里项的数目决定
创建一个组合框只需把CreateWindow的第一个参数设定为ComboBox,然后取表中的值即可。组合框创建后,需要初始化,即通过向组合框传送CB_ADDSTRING增加最初的项,这类似于列表框。如果没有定义CBS_SORT风格,新增的项将被增加到组合框的末尾。
应用程式的父视窗主要通过 WM_COMMAND讯息与组合框通信,应用程式可以用CB_FINDSTRINGEXACT搜寻指定的项,还可以传送CB_DELETESTRING删除指定的项,当需要删除所有的项时,传送讯息CB_RESETCONTENT即可。
组合框的编辑区域用来显示当前选中的项或者编辑组合框里没有的项。可以用CB_LIMITTEXT来限制输入文本的大小;为了获得编辑区域的文本,可传送CB_GETLBTEXT或者WM_GETTEXT讯息,这样就把文本複製到指定的字元串中,当需要设定编辑区域的文本时,只需要传送WM_SETTEXT讯息。
Windows API为组合框提供了档案显示和搜寻的功能,它们主要通过函式DlgDirListComboBox和DlgDirSelectComboBox来实现。
视窗取值描述
本节的应用程式中将用到这些函式,并把档案的内容显示在视窗里。
CB_ADDSTRlNG 增加一项
CB_DELETESTRING 删除指定的项
CB_DIR 传送搜寻目录的讯息
CB_FINDSTRING 搜寻指定的项
CB_FINDSTRINGEXACT 精确搜寻指定的项
CB_GETCOUNT 得到组合框中项的数目
CB_GETCURSEL 得到当前选中项的序号
CB_GETEDITSEL 得到编辑区域选中的文本
CB_GETLBTEXT 得到编辑区域的文本
CB_GETLBTEXTLEN 得到编辑区域中文本的长度
CB_LIMITTEXT 传送限制编辑区域文本的讯息
CB_RESETCONTENT 删除所有的项
CB_SELECTSTRING 选中指定的字元串
CB_SETCURSEL 将游标设定在指定的位置
CB_SETDROPPEDWIDTH 设定下拉的宽度
CB_SETEDITSEL 选取编辑区域的文本
CBN_CLOSEUP 关闭组合框
CBN_DBLCLK 传送用户双击组合框中项的讯息
CBN_DROPDOWN 下拉时传送讯息
CBN_EDITCHANGE 传送编辑区域改变的讯息
CBN_EDITUPDATE 传送编辑区域改变的讯息,但在更新之前传送
CBN_ERRSPACE 传送记忆体不够的讯息
CBN_KILLFOCUS 当组合框失去输入焦点时传送该讯息
CBN_SETFOCUS 设定输入焦点