Win32字控件-组合框

来源:互联网 发布:淘宝网ie8不能使用 编辑:程序博客网 时间:2024/04/30 02:37

[样式]


#define CBS_SIMPLE //输入框和列表框同时被显示
#define CBS_DROPDOWN  下拉式组合框,但是输入框内可以进行输入
#define CBS_DROPDOWNLIST 下拉式组合框,但是输入框内不能进行输入
#define CBS_OWNERDRAWFIXED  列表项是固定高度,在自绘中
#define CBS_OWNERDRAWVARIABLE 列表项是可变高度,在自绘中
#define CBS_AUTOHSCROLL 当样式为CBS_SIMPLE或CBS_DROPDOWN,且输入文本超过可显示范围时,自动向右滚动文本。
#define CBS_OEMCONVERT 使编辑框组件中的正文可以在ANSI 字符集和OEM字符集之间相互转换。这在编辑框中包含文件名时是很有用的
#define CBS_SORT 自动排序输入的字符串到列表框中
#define CBS_HASSTRINGS 指定一个含有字符串的自绘式组合框
#define CBS_NOINTEGRALHEIGHT  组合框的尺寸由应用程序而不是Windows 指定,通常,由Windows指定尺寸会使列表项的某些部分隐藏起来
#define CBS_DISABLENOSCROLL 使列表框在不需要滚动时显示一个禁止的垂直滚动条
#define CBS_UPPERCASE   将编辑框和列表框中的所有文本都自动转换为大写字符
#define CBS_LOWERCASE  将编辑框和列表框中的所有文本都自动转换为小写字符

[通知码]


CBN_CLOSEUP:组合框的列表框组件被关闭,简易组合框不会发送该通知消息

CBN_DBLCLK:用户在某列表项上双击鼠标,只有简易组合框才会发送该通知消息

CBN_DROPDOWN:组合框的列表框组件下拉,简易式组合框不会发送该通知消息
CBN_EDITUPDATE:在编辑框准备显示改变了的正文时发送该消息,下拉列表式组合框不会发送该消息

CBN_EDITCHANGE:编辑框的内容被用户改变了,与CBN_EDITUPDATE不同,该消息是在编辑框显示的正文被刷新后才发出的,下拉列表式组合框不会发送该消息

CBN_ERRSPACE:组合框无法申请足够的内存来容纳列表项
 
CBN_SELENDCANCEL:表明用户的选择应该取消,当用户在列表框中选择了一项,然后又在组合框控件外单击鼠标时就会导致该消息的发送
 
CBN_SELENDOK:用户选择了一项,然后按了回车键或单击了下滚箭头,该消息表明用户确认了自己所作的选择
 
CBN_KILLFOCUS:组合框失去了输入焦点
 
CBN_SELCHANGE:用户通过单击或移动箭头键改变了列表的选择
 
CBN_SETFOCUS:组合框获得了输入焦点 

[消息]

CB_GETEDITSEL  当样式为CBS_SMIPLE或CBS_DROPDOWN时获取输入框中被选文本的开始-结束位置。

int a=SendMessage(combobox1,CB_GETEDITSEL,NULL,NULL); //LOWORD(a)起始,HIWORD(a)结束
CB_LIMITTEXT 当样式为CBS_SMIPLE或CBS_DROPDOWN时限制输入框文本的长度。SendMessage(combobox1,CB_GETEDITSEL,16,NULL);
CB_SETEDITSEL 当样式为CBS_SMIPLE或CBS_DROPDOWN时设置一段选中字符。SendMessage(combobox1,CB_GETEDITSEL,0,5);
CB_ADDSTRING 添加字符串项目
CB_DELETESTRING 删除字符串项目
CB_DIR 应用程序发送LB_DIR消息向列表框添加(驱动器或文件夹或文件)列表,wParam应设置为文件属性,lParam设置为过滤器

文件属性:
wParam参数指定文件的属性被添加到列表框中这个参数可以是下列值的组合:值描述
DDL_ARCHIVE包括归档文件
DDL_DIRECTORY包括子目录子目录名括在方括号([])
DDL_DRIVES包括驱动驱动形式列出[-X]其中x是驱动器盘符
DDL_EXCLUSIVE只包括具有指定属性的文件默认情况下,读写文件列出,即使没有指定DDL_READWRITE
DDL_HIDDEN包括隐藏文件。
DDL_READONLY包括只读文件
DDL_READWRITE包括读写文件没有附加属性
DDL_SYSTEM包括系统文件

例:

//列出C盘所有子目录和文件(包括隐藏文件和系统文件),返回值为最末项的索引号
INT n=SendMessage(listbox1,CB_DIR,DDL_ARCHIVE|DDL_DIRECTORY|DDL_HIDDEN|DDL_SYSTEM,TEXT("c:\\*.*"));
//列出硬盘所有分区,返回值为最末项的索引号
INT n=SendMessage(listbox1,CB_DIR,DDL_ARCHIVE|DDL_DRIVES,TEXT(""));

CB_GETCOUNT 返回列表框所有项目数。SendMessage( listHwnd,CB_GETCOUNT,0,0 );
CB_GETCURSEL返回从0开始的选中项索引值 ,没有选中项返回-1
CB_GETLBTEXT 将第n项中的文本放入缓存区并返回该项上的字符串长度。int iLength=SendMessage(combobox1,CB_GETLBTEXT,n,szTemp);
CB_GETLBTEXTLEN 得到第n项的文本长度int n=SendMessage(combobox1,CB_GETLBTEXTLEN,n,NULL);
CB_INSERTSTRING 插入字符串项,SendMessage( combobox1,CB_INSERTSTRING,1,TEXT("e") );//在索引位置1处插入
CB_RESETCONTENT 删除所有项,SendMessage( combobox1,CB_RESETCONTENT,0,0 );
CB_FINDSTRING 从起始位置n开始查找匹配项,并返回匹配成功的索引号。int iLength=SendMessage(combobox1,CB_FINDSTRING,n,TEXT("关键字") );
CB_SELECTSTRING 应用程序发送LB_SELECTSTRING的信息搜索单选列表框中指定的字符串中的字符开头的项目。如果找到匹配的项目,该项目被选中。wParam开始搜索的项索引号,lParam要搜索字符串。如果搜索成功,则返回值是所选项目的索引。如果搜索不成功,则返回值是LB_ERR并不会改变当前选择。
CB_SETCURSEL 选中单选组合框中某项,SendMessage( cbHwnd,CB_SETCURSEL,2,0 );//选中第2项
CB_SHOWDROPDOWN 显示或隐藏组合框,SendMessage(  cbHwnd,CB_SHOWDROPDOWN,TRUE,0 )
CB_GETITEMDATA 得到组合框中某项的值,而非文本
CB_SETITEMDATA 设置组合框中某项的值,而非文本
CB_GETDROPPEDCONTROLRECT 返回组合框下拉列表的屏幕坐标到一个矩形中,SendMessage( cbHwnd,CB_GETDROPPEDCONTROLRECT,0,&rect )
CB_SETITEMHEIGHT 当组合框为CBS_OWNERDRAWVARIABLE风格时,设置列表项的高度,以像素为单位
CB_GETITEMHEIGHT 当组合框为CBS_OWNERDRAWVARIABLE风格时,返回列表项的高度,以像素为单位
CB_SETEXTENDEDUI 设置组合框是否用扩展用户界面,设置为TRUE时用↓键打开下拉列表框,为FALSE时用F4键打开下拉列表框,SendMessage(combobox1,CB_SETEXTENDEDUI,TRUE,0);
CB_GETDROPPEDSTATE 得到组合框是否用扩展用户界面,返回TRUE或FALSE
CB_FINDSTRINGEXACT 返回索引号,该项精确匹配要查找的字符串,不区分大小写。例如查找所有列表项中是否有"abc"
INT nIndex=SendMessage(combobox1,CB_FINDSTRINGEXACT,-1,TEXT("abc"));

CB_SETLOCALE 此消息设置列表框中的当前地区。高位字包含国家代码,低位字包含的语言标识符使用MAKELCID地区构造标识符和MAKELANGID来构造语言识别
CB_GETLOCALE 消息检索列表框中的当前地区。返回值:高位字包含国家代码,低位字包含的语言标识符PRIMARYLANGID获得的主要语言标识符和SUBLANGID获得子语言标识符
CB_GETTOPINDEX 得到列表框中第一个可见项目的索引
CB_SETTOPINDEX 设置列表框中第一个可见项目的索引
CB_GETHORIZONTALEXTENT 返回列表框水平滚动宽度以像素为单位
CB_SETHORIZONTALEXTENT 设置列表框水平滚动宽度以像素为单位
CB_GETDROPPEDWIDTH 检索允许的最小宽度,以像素为单位。当组合框风格为CBS_DROPDOWN或CBS_DROPDOWNLIST时。默认情况下最小宽度为0
CB_SETDROPPEDWIDTH 设置允许的最小宽度,以像素为单位。当组合框风格为CBS_DROPDOWN或CBS_DROPDOWNLIST时。默认情况下最小宽度为0
CB_INITSTORAGE 当添加大量的项目时,此消息先初始化项目的数量和分配内存,然后再添加列表框。能提高性能。
wParam:要添加的项目数量
lParam:分配的内存量,以字节为单位

原创粉丝点击