MFC控件(4):List Box
2013-04-03 17:30
281 查看
List Box应该是同时具有Edit Control和Combo Box的一些特性.说它像前者因为它可以把所有的内容分行显示出来(但不可编辑),所以一般起显示信息的作用.而Edit Control主要是让用户输入信息,它也可以让用户输入多行信息,要是把它设成Read Only的话初看起来跟List Box样子还真像的.
另外嘛List Box有类似Combo Box的一些操作,比如AddString添加一行内容,然后删除,选择某一行(与combo不同,它可以设置成选项多行),然后点击某一行时还可以进行一些消息处理啊.
Vertical Scrollbar:垂直方向有滚动条.
Selection:是否可选多行.Single只能选单行.Extended表示按住Ctrl时可选多行,Multipe表示可选多行.
Sort:是否按每行的字母排序.
CListBox m_comboShow;
m_comboShow.AddString("boy");
m_comboShow.AddString("girl"); //插入一行数据
m_comboShow.InsertString(0,"human"); //在指定的索引插入数据,索引从0计数
m_comboShow.DeleteString(1); //删除指定索引所在行的数据
m_comboShow.ResetContent(); //删除所有数据
m_comboShow.SelectString(0, _T("boy")); //选中字符串为boy的那一行.
int ind = m_comboShow.FindString(0, "girl"); //从索引0开始查找内容为girl的数据,如找到则返回索引号.
int index = m_comboShow.GetCurSel(); //返回当前被选行索引
CString szInfo;
m_comboShow.GetText(index, szInfo); //获取指定索引行的内容
首先我们想到的自然是要获得所以被选行的行的索引号.
int selRows = m_comboShow.GetSelCount(); //共选择了多少行.
CArray<int> arrSel; //定义个动态数组来保存选择的索引号
arrSel.SetSize( selRows);
m_comboShow.GetSelItems(selRows, arrSel.GetData()); //获得了所有被选索引
只要有了这些索引信息就不管是得到具体的值,或者是删除所有选中的项就都比较好办了.
只要遍历下数据arrSel,然后通过GetText获取值,或者通过DeleteString删除值
如果是处理鼠标双击某项则是ON_LBN_DBLCLK
另外嘛List Box有类似Combo Box的一些操作,比如AddString添加一行内容,然后删除,选择某一行(与combo不同,它可以设置成选项多行),然后点击某一行时还可以进行一些消息处理啊.
List Box使用简介
常用属性:
Horizontal Scroll:内容过多时水平方向有滚动条Vertical Scrollbar:垂直方向有滚动条.
Selection:是否可选多行.Single只能选单行.Extended表示按住Ctrl时可选多行,Multipe表示可选多行.
Sort:是否按每行的字母排序.
常用方法:
先给控件绑定一个变量CListBox m_comboShow;
m_comboShow.AddString("boy");
m_comboShow.AddString("girl"); //插入一行数据
m_comboShow.InsertString(0,"human"); //在指定的索引插入数据,索引从0计数
m_comboShow.DeleteString(1); //删除指定索引所在行的数据
m_comboShow.ResetContent(); //删除所有数据
m_comboShow.SelectString(0, _T("boy")); //选中字符串为boy的那一行.
int ind = m_comboShow.FindString(0, "girl"); //从索引0开始查找内容为girl的数据,如找到则返回索引号.
int index = m_comboShow.GetCurSel(); //返回当前被选行索引
CString szInfo;
m_comboShow.GetText(index, szInfo); //获取指定索引行的内容
获取多行数据
假如设置成Multipe,可以选项多行,怎么得到选择的结果呢?首先我们想到的自然是要获得所以被选行的行的索引号.
int selRows = m_comboShow.GetSelCount(); //共选择了多少行.
CArray<int> arrSel; //定义个动态数组来保存选择的索引号
arrSel.SetSize( selRows);
m_comboShow.GetSelItems(selRows, arrSel.GetData()); //获得了所有被选索引
只要有了这些索引信息就不管是得到具体的值,或者是删除所有选中的项就都比较好办了.
只要遍历下数据arrSel,然后通过GetText获取值,或者通过DeleteString删除值
消息处理
选择不同的项通过ON_LBN_SELCHANGE(...)就行了,当有选不同的选项时,可判断选了哪一行,然后实现不同的操作.如果是处理鼠标双击某项则是ON_LBN_DBLCLK
相关文章推荐
- MFC控件使用说明(combo box Button Check Box Radio Button List Control Edit Box Hot Key IP Address....)
- MFC控件使用说明(combo box Button Check Box Radio Button List Control Edit Box Hot Key IP Address....)
- MFC控件使用说明(combo box Button Check Box Radio Button List Control Edit Box Hot Key IP Address....)
- MFC控件使用说明(combo box Button Check Box Radio Button List Control Edit Box Hot Key IP Address....)
- MFC控件使用说明(combo box Button Check Box Radio Button List Control Edit Box Hot Key IP Address)
- VC++之List Box/Check List Box控件
- 【mfc】学生信息管理,实现List控件节点的增删改查
- MFC ListControl控件用法
- MFC控件(5):List Control
- VC++之List Box/Check List Box控件
- MFC 列表视图控件List Control 使用一
- MFC控件List Control的样式LVS_与扩展样式LVS_EX_
- MFC中ListControl控件的使用
- 【MFC-12】VS2010/MFC之列表框控件动态编辑(List Control Edit)
- MFC列表控件(ListControl)
- MFC 的List Control控件实现可编辑
- MFC中ListControl控件的使用
- mfc listcontrol控件改变字体大小
- MFC中ListControl控件的使用 .
- MFC 的List Control控件实现可编辑