- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
VCCListCtrl控件的使用方法
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_REGIONALLVS_EX_INFOTIPLVS_EX_UNDERLINEHOTLVS_EX_UNDERLINECOLDLVS_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? //以下
文档评论(0)