CComboBox控件详解
CComboBox控件,是一种常用的Windows控件,用于提供用户选择多个选项的功能。其有三种形态可供选择:简单组合框(Simple)、下拉组合框(Drop-down)和下拉列表式组合框(Drop-down list)。
常用设置属性说明:
* type属性:有三个选项,分别对应三种形态的CComboBox控件。我们常用的是后两种形态,其区别是Dropdown的编辑区为可编辑控件,而droplist为静态控件。
* Data属性:当程序初始化的时候,下拉列表将显示其属性里面的内容,内容用分号分隔。其属性只支持后两种形式。
* Sort属性:对添加到下拉列表框中的数据自动进行排序,如果你不想它改变你的显示序列,把它设置成False。
CComboBox控件的常用函数:
1. GetCount()函数:用于获得列表框中的选项数目。
```c
int GetCount() const;
```
示例程序:
```c
int i;
CString str;
i = m_cbox.GetCount();
str.Format("%d", i);
m_end = "一共有 " + str + " 个数据 ";
UpdateData(FALSE);
```
2. GetCurSel()函数:用于得到用户选中下拉列表框中数据的索引值。返回的值是从0开始的,如果没有选择任何选项将会返回-1。
```c
int GetCurSel() const;
```
示例程序:
```c
int i;
CString str;
i = m_cbox.GetCurSel();
str.Format("%d", i + 1);
if (i == -1) m_end = "你什么都没有选 ";
else m_end = "你选的是第 " + str + " 项 ";
UpdateData(FALSE);
```
3. SetCurSel函数:选取列表框中的一个选项,索引从0开始,-1为什么都不选。当你需要把列表框中已经选取的内容清空时就可以使用这个函数。
```c
void SetCurSel(int nIndex);
```
示例程序:
```c
if (m_i < 3) m_cbox.SetCurSel(m_i++);
else {
m_cbox.SetCurSel(-1);
m_i = 0;
}
```
4. SetEditSel函数:设置编辑区中蓝色选中字段的长度。
```c
BOOL SetEditSel(int nStartChar, int nEndChar);
```
示例程序:
```c
m_cbox.SetEditSel(3, 5); // 在编辑框中打入一串数字在按此按钮就能看到效果
```
5. Clear()、Cut()、Paste()和Copy()函数:这四个函数都是针对编辑框中选定的文字进行编辑的函数。
```c
void Clear();
void Cut();
void Paste();
void Copy();
```
这些函数对编辑框中的内容不进行处理,他真正处理的是你用鼠标选中的内容,对于Clear()函数,很多书中解释都是有误的,真正的解释是把你刚选中的文本释放掉,也就是不选,而不是把选中的删除,真正的删除选中的文本的函数是Cut(),Copy()是复制选中的文本,Paste()是粘贴到光标处。
6. LimitText()函数:其作用是限制在编辑框中键入的文本长度。
```c
BOOL LimitText(int nMaxChars);
```
当nMaxChars为0时,不是不能输入,而是长度最大化为65535字节。
7. GetLBText()函数:其原型为:
```c
void GetLBText(int nIndex, CString&rString);
```
这些函数都是CComboBox控件的常用函数,大家可以根据自己的需要选择使用哪些函数来实现自己的需求。