无符号整形 发表于 2016-11-25 19:47:07

【MFC入门文字教程】20-ListBox升级版——List Control(CListCtrl)


其实上面这个程序是用List Control做的。
List Control虽然很复杂,但是,这是一个        MFC很重要的控件!(始于Windows 95)


List Control很多常用成员函数是重载的,就不要一一举例了。
比如
int GetCurSel( ) const;
获取标签控件中当前选择标签的索引。如果成功则返回选择标签的索引,否则返回-1。

int SetCurSel(int nItem);
在标签控件中选择某标签。参数nItem为要选择的标签的索引。如果成功则返回之前选择标签的索引,否则返回-1。

BOOL DeleteAllItems( );
删除标签控件中所有标签。

BOOL DeleteItem(int nItem);
删除标签控件中的某个标签。参数nItem为要删除标签的索引。

下面代码是上面那个程序的一个片段。
LVCOLUMN lvColumn;
        LVITEM lvItem;
        int nItem;

        lvColumn.mask = LVCF_FMT | LVCF_TEXT | LVCF_WIDTH; //填写结构体 每一个字段的作用请自己尝试
        lvColumn.fmt = LVCFMT_LEFT;
        lvColumn.cx = 275;
        lvColumn.pszText = TEXT("名称");
        m_ListCtrl.InsertColumn(0, &lvColumn); //插入标签
        //省略N多内容……

        lvItem.mask = LVIF_TEXT;
        lvItem.iItem = 0;
        lvItem.iSubItem = 0;
        lvItem.pszText = TEXT("沃尔玛(WAL - MART STORES)");
        nItem = m_ListCtrl.InsertItem(&lvItem);//插入首项

        m_ListCtrl.SetItemText(nItem, 1, TEXT("482,130"));//设置列表项在索引为1的字符,如果看不懂的话请自己调试哦~
        m_ListCtrl.SetItemText(nItem, 2, TEXT("14, 694"));
        m_ListCtrl.SetItemText(nItem, 3, TEXT("美国"));
大家可以看到3个成员函数:
InsertColumn和InsertItem和SetItemText。
InsertColumn可以插入新的标签(参数nItem为新标签的索引,lpszItem为标签文本字符串。如果插入成功则返回新标签的索引,否则返回-1)。
InsertItem向列表控件中插入新的列表项(参数nItem为要插入项的索引,参数lpszItem为要插入项的标签字符串。如果插入成功则返回新列表项的索引,否则返回-1。)
SetItemText设置指定列表项或列表子项的显示文本(参数nItem和nSubItem同GetItemText。参数lpszText为要设置的显示文本字符串。如果设置成功则返回TRUE,否则返回FALSE。)

List Control有4种风格:

名称 作用
Icon 列表项的图标通常为32×32像素,在图标的下面显示标签
Small Icon 列表项的图标通常为16×16像素,在图标的右面显示标签
List 与小图标风格类似,图标和文字的对齐方式不同
Report 上面图片的风格


MSDN文档:https://msdn.microsoft.com/zh-cn/library/hfshke78(v=vs.120).aspx

实践时间
这个就是500强那个,主要代码在OnInitDialog里面。


另外List Control非常复杂,希望大家能多多上机!

下节预告
更加复杂的控件——树形控件(CTreeCtrl)

近期更新
富文档编辑控件——脱离文本模式的编辑控件:
Rich Edit 2.0

拈花小仙 发表于 2016-11-25 22:14:54

MFC才是王道`不懂映射就不能深入理解反射机制` 不懂win内核,也难懂l内核`

拈花小仙 发表于 2016-11-25 22:15:28

不懂古老的C++标准,就不懂现代的C++17小版本`

拈花小仙 发表于 2016-11-25 22:16:02

{:7_139:}不懂MFC的程序员不是好程序员`

浮生物语 发表于 2016-11-26 11:52:27

.......
页: [1]
查看完整版本: 【MFC入门文字教程】20-ListBox升级版——List Control(CListCtrl)