鱼C论坛

 找回密码
 立即注册
查看: 6646|回复: 4

[技术交流] 【MFC入门文字教程】20-ListBox升级版——List Control(CListCtrl)

[复制链接]
发表于 2016-11-25 19:47:07 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
500强.JPG
其实上面这个程序是用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为要删除标签的索引。

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

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

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

  15.         m_ListCtrl.SetItemText(nItem, 1, TEXT("482,130"));//设置列表项在索引为1的字符,如果看不懂的话请自己调试哦~
  16.         m_ListCtrl.SetItemText(nItem, 2, TEXT("14, 694"));
  17.         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里面。
MFCApplication30.rar (1.58 MB, 下载次数: 59)

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

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


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

评分

参与人数 1荣誉 +8 鱼币 +8 贡献 +5 收起 理由
拈花小仙 + 8 + 8 + 5 感谢楼主无私奉献!

查看全部评分

本帖被以下淘专辑推荐:

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2016-11-25 22:14:54 | 显示全部楼层
MFC才是王道`不懂映射就不能深入理解反射机制` 不懂win内核,也难懂l内核`
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-11-25 22:15:28 | 显示全部楼层
不懂古老的C++标准,就不懂现代的C++17小版本`
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-11-25 22:16:02 | 显示全部楼层
不懂MFC的程序员不是好程序员`
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-11-26 11:52:27 | 显示全部楼层
.......
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-4-26 11:37

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表