马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
其实上面这个程序是用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里面。
MFCApplication30.rar
(1.58 MB, 下载次数: 67)
另外List Control非常复杂,希望大家能多多上机!
下节预告
更加复杂的控件——树形控件(CTreeCtrl)
近期更新
富文档编辑控件——脱离文本模式的编辑控件:
Rich Edit 2.0
|