由于接触VC时间不长,对VC中控件的用法也不是很了解,用到时在网上查了很多,现总结如下:
1、改变下拉框大小:先点向下的箭头,就可以调整下拉框大小
2、如果 ComboBox 的 Sorted 属性设置为 true,
则新添加项将按字母顺序插入到列表中。
否则,在列表的结尾处插入项。
3、要立即响应选择框的改变(即选择框一改变选项,就立刻将结果传递进去)!
响应他的哪个消息比较好?
如果是只能选择的响应ON_CBN_SELCHANGE
如果是可以编辑的,那么要立刻响应编辑就是ON_CBN_EDITCHANGE
4、CBN_SELENDOK是什么作用?
This notification message is sent when the user clicks a list item,
or selects an item and then closes the list.
It indicates the user's selection is to be processed
5、介绍一下列表框几种常用的消息映射宏:
ON_CBN_DBLCLK 鼠标双击
ON_CBN_DROPDOWN 列表框被弹出
ON_CBN_KILLFOCUS / ON_CBN_SETFOCUS 在输入框失去/得到输入焦点时产生
ON_CBN_SELCHANGE 列表框中选择的行发生改变
ON_CBN_EDITUPDATE 输入框中内容被更新
使用以上几种消息映射的方法为定义原型如:afx_msg void memberFxn( );的函数,
并且定义形式如ON_Notification( id, memberFxn )的消息映射。
如果在对话框中使用组合框,Class Wizard会自动列出相关的消息,并能自动产生消息映射代码。
6、改变ComboBox的下拉列表框宽度
一般情况下,列表框的宽度和选择框是一样宽的,为了让列表框变的更宽,可以用
m_Combobox.setdroppedwidth(int width); 来调整 他的宽度
7、如何使控键ComboBox不能输入只能在下拉菜单中选择?
VC6中style属性设为csDropDownList
VC2005中Type属性设为Drop List
8、设置当前项或得到当前是第几项
m_ComboBox1.SetCurSel(N); //SetCurSel函数可改变标签控件当前选定的项目
//这个N可以是-1,表示无选择,0表示{dy}项,1表示第二项。。
//这个函数一般在初始化的时候使用
m_ComboBox1.GetCurSel(); //得到当前是第几项.0是{dy}项,1是第二项
//这个函数相应的是ON_CBN_SELCHANGE 列表框中选择的行发生改变
消息