VC CListCtrl控件的使用方法
更新时间:2023-10-25 09:54:01 阅读量: 综合文库 文档下载
- vc片的作用和功效推荐度:
- 相关推荐
VC CListCtrl控件的使用方法
在 VC中使用控件一直是件让我头痛的事件,从控件的创建到控件的操作管理,都得写一大堆代码,相比于Delphi/VB,实在是麻烦多了。其实在之前学习 SDK的时候,就有想过专门花点儿时间来学习VC中控件的使用,但一直没空。最近准备写一个小工具,要用到ListCtrl控件,所以又不得不好好的恶补一翻。 我是在MFC的对话框模式下使用CListCtrl控件的,其实不管在SDK或文档/视图模式下,VC控件的使用都差不多,下面来好好的写写CListCtrl控件的使用笔记。 一、CListCtrl控件的创建
由于我是在MFC的对话框模式下使用CListCtrl控件的,所以只需要在控件栏上选择CListCtrl的图形按钮,接着添加到对话框中就行了。 二、CListCtrl控件样式的设置
第一步:在使用CListCtrl控件之前,首先需要为该控件关联一个变量(只针对于对话框模式): CListCtrl m_BlogAccountList;
第二步:由于CListCtrl控件要做一些初始化操作,比如设置控件样式,设置控件的行列并填入一些数据。初始化操作的代码是在对话框的OnInitDialog事件中写入的。
默认情况下,CListCtrl控件的样式是非常简陋的,大多情况下我们都需要对CListCtrl控件的样式进行修改,比如设置为报表样式,可以进行整行选择等,如有需要还有调整CListCtrl控件的行高。诸如这些设置都需要用到CListCtrl控件的扩展样式,所以首先得了解这些扩展样式。
我在MSDN中没有找到CListCtrl控件的扩展样式资料,只好上百度百科找了找。
CListCtrl控件的扩展样式
LVS_EX_GRIDLINES //绘制表格线
LVS_EX_SUBITEMIMAGES//子项目图标列表 LVS_EX_CHECKBOXES //带复选框 LVS_EX_TRACKSELECT //自动换行
LVS_EX_HEADERDRAGDROP//报表头可以拖拽 LVS_EX_FULLROWSELECT //选择整行 LVS_EX_ONECLICKACTIVATE//单击激活 LVS_EX_TWOCLICKACTIVATE//双击激活 LVS_EX_FLATSB//扁平滚动条 LVS_EX_REGIONAL LVS_EX_INFOTIP LVS_EX_UNDERLINEHOT LVS_EX_UNDERLINECOLD
LVS_EX_MULTIWORKAREAS//多工作区
对话框模式下创建的CListCtrl控件样式只有一个,就是WS_BORDER,而我需要为CListCtrl设置为报表样式,并能选择整行,下面就可以开始写代码了 //通过GetWindowLong来获取CListCtrl已有的样式
DWORD dwStyle = GetWindowLong(m_BlogAccountList.m_hWnd, GWL_STYLE); //在原有样式的基本上,添加LVS_REPORT扩展样式
SetWindowLong(m_BlogAccountList.m_hWnd, GWL_STYLE, dwStyle|LVS_REPORT); //获取已有的扩展样式
DWORD dwStyles = m_BlogAccountList.GetExStyle();
//取消复选框样式
dwStyles &= ~LVS_EX_CHECKBOXES; //添加整行选择和表格线扩展样式
m_BlogAccountList.SetExtendedStyle(dwStyles|LVS_EX_FULLROWSELECT|LVS_EX_GRIDLINES);
通过以上四句代码,就已经能满足我的需求了 三、为CListCtrl控件添加列
列的添加只需要用到LVCOLUMN结构体,所以需要先行了解了解。在MSDN中查到的LVCOLUMN结构体的定义如下: typedef struct _LVCOLUMN { UINT mask; int fmt; int cx;
LPTSTR pszText; int cchTextMax; int iSubItem;
#if (_WIN32_IE >= 0x0300) int iImage; int iOrder; #endif
} LVCOLUMN, FAR *LPLVCOLUMN;
该结构体共有8个成员。
mask是用来设置LVCOLUMN结构体中哪些成员有效,其值可以为0。mask可设置的值如下:
LVCF_FMT fmt成员有效 LVCF_IMAGE iImage成员有效 LVCF_ORDER //以下略 LVCF_SUBITEM LVCF_TEXT LVCF_WIDTH
fmt成员是对CListCtrl控件列标题进行设置,比如列标题中文字的对齐方式,是否在列标题中显示图标等。
cx成员是设置列宽。
pszText成员是设置列标题文字
cchTextMax成员是设置标题文字的缓冲区大小 iSubItem成员是设置列索引
iImage成员是设置ImageList中的图像索引。
iOrder成员的作用未知。
下面进行添加列操作:
char *szColUmn[] = {\帐号\密码\int nColWidth[] = {100, 100}; LVCOLUMN lvc;
lvc.mask = LVCF_FMT | LVCF_SUBITEM | LVCF_TEXT | LVCF_WIDTH | LVCF_ORDER; lvc.fmt = LVCFMT_LEFT; //左对齐 for (int i = 0; i < 2; i++) {
lvc.pszText = szColUmn[i]; lvc.iSubItem = i; lvc.iOrder = i; lvc.cx = nColWidth[i];
m_BlogAccountList.InsertColumn(i, &lvc); }
四、为CListCtrl控件添加行
添加行的操作需要用到InsertItem和SetItemText属性,这个简单,就不详述了,看代码 m_BlogAccountList.InsertItem(0, \ m_BlogAccountList.SetItemText(0, 1, \m_BlogAccountList.SetItemText(1, 1, \
正在阅读:
VC CListCtrl控件的使用方法10-25
三级安全教育内容(可用作考题)及《危化品安全管理条例》gai03-14
南邮微型计算机原理期中考试 - 试卷07-04
8个穴位可治8种常见急慢性疾病 - 图文04-09
童年精彩片段02-10
公务员联考申论试题参考答案12-28
PLC 两部抽水机控制系统设计03-05
三下乡活动心得体会怎么写精选参考范本四篇09-12
中职学校教学考核评价模式改革创新方案03-10
- 多层物业服务方案
- (审判实务)习惯法与少数民族地区民间纠纷解决问题(孙 潋)
- 人教版新课标六年级下册语文全册教案
- 词语打卡
- photoshop实习报告
- 钢结构设计原理综合测试2
- 2014年期末练习题
- 高中数学中的逆向思维解题方法探讨
- 名师原创 全国通用2014-2015学年高二寒假作业 政治(一)Word版
- 北航《建筑结构检测鉴定与加固》在线作业三
- XX县卫生监督所工程建设项目可行性研究报告
- 小学四年级观察作文经典评语
- 浅谈110KV变电站电气一次设计-程泉焱(1)
- 安全员考试题库
- 国家电网公司变电运维管理规定(试行)
- 义务教育课程标准稿征求意见提纲
- 教学秘书面试技巧
- 钢结构工程施工组织设计
- 水利工程概论论文
- 09届九年级数学第四次模拟试卷
- 控件
- 使用方法
- CListCtrl
- VC
- 09虹口物理二模
- 新概念英语第一册语法
- 基于Verilog HDL的彩灯控制器 - 图文
- 气动电动阀门 - 图文
- 幼教实习生实习报告
- 最新2019九年级语文上册 第六单元 21智取生辰纲学案 新人教版
- 苏教版二年级数学思维训练1《周期问题》
- 狼为啥爱嚎叫
- 2016苏教最新版三年级数学下册期末试题
- 陕西省无纸化普法考试3单选题题库
- 深刻把握习主席治国理政思想的科学体系90分
- 读《我的马克思主义观》有感
- 范例3:环氧乙烷灭菌过程确认 - 图文
- “医养结合”现场会在商丘市颐寿苑老年公寓召开
- 详解基于移动GIS的GPS定位导航系统的设计与实现
- 工程管理本科专业人才培养方案 - 图文
- 水利发展“十二五”规划报告
- 除眼袋需要多少钱,祛眼袋有什么好方法
- 节水灌溉渠道工程施工阶段质量管理
- EXPMA八大妙用