windows sdk编程系列文章24 ---- 列表视图控件

windows sdk编程系列文章24 ---- 列表视图控件

ID:41037424

大小:77.00 KB

页数:30页

时间:2019-08-14

windows sdk编程系列文章24 ---- 列表视图控件_第1页
windows sdk编程系列文章24 ---- 列表视图控件_第2页
windows sdk编程系列文章24 ---- 列表视图控件_第3页
windows sdk编程系列文章24 ---- 列表视图控件_第4页
windows sdk编程系列文章24 ---- 列表视图控件_第5页
资源描述:

《windows sdk编程系列文章24 ---- 列表视图控件》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、windowssdk编程系列文章----列表视图控件2008-04-2912:14本课中我们将学习如何创建和使用列表视图控件。理论:列表视图控件和树型视图、丰富文本编辑控件一样是通用控件的一种。可能您都已经知道了列表视图控件,只不过是不知道它的确切名字而已。列表视图控件可以用来很好地显示项目。在这方面它和列表框相同,只不过它的性能更强。有两种方法创建一个列表视图控件。第一种也是最简单的方法是:用资源编辑器来创建它。用该种方法只是不要忘记在您的代码(的任何位置处)加入对InitCommonControls函数的调用(

2、记得吗,调用该函数只是为了隐式地加载包含通用控件的DLL)。另一种方法是调用CreateWindowEx函数,这里您必须指定合适的类名,譬如:SysListView32,WC_LISTVIEW不是正确的类名在列表视图种有四种方法来显示数据:大图标,小图标,列表和报告方式。这些方法和在资源管理器种选择View->LargeIcons,SmallIcons,List和Details相对应。各种不同的显示方式只是显示了不同的外观而已。譬如,您可能有许多的数据,只是并不想全部显示。报告方式提供的消息最完全,其它的方式则要少

3、得多。在刚创建一个列表视图时您可以选择一种初始显示方法,随后您可以调用SetWinodwLong函数并设置GWL_STYLE标志位来改变显示方式既然我们已经知道了如何创建列表控件,接下来我们学习如何使用它们。我们将主要集中在报告方式的显示上,因为该种方式演示了最多的列表控制的特性。使用列表控制的步骤如下:1.调用CreateWindowEx函数来创建一个列表控件,指定它的类名为SysListView32。您还可以在此处指定控件初次显示时的方式。2.创建和初始化用在列表控件中显示项目的图象列表(如果存在)。3.向列表

4、控件中插入列,如果显示的方式是报告方式这一步是必须的。4.向控件中插入项目和自项目。列:在报告方式中,有不止一个列。您可以把放入到列表控件中的数据看作是一张表单:这时数据是按行列排列的。在控件中至少有一列。在其它的显示方式中则无所谓,因为这些显示方式有仅有一列。加入列要通过向列表控件发送LVM_INSERTCOLUMN消息来实现。LVM_INSERTCOLUMNwParam=iCollParam=指向LV_COLUMN型结构体变量的指针iCol列数,从0开始编号。LV_COLUMN包含了将插入的列的信息。它的定义如

5、下:typedefstruct_LVCOLUMN{UINTmask;intfmt;intcx;LPTSTRpszText;intcchTextMax;intiSubItem;#if(_WIN32_IE>=0x0300)intiImage;intiOrder;#endif}LVCOLUMN,*LPLVCOLUMN;FieldnameMeaningsmask一组标志位,它指示了该结构体中的那些成员变量是有效的。该结构体中的成员变量并不是同时有效的。在某些时候,可能只有某些成员变量是有效的。结构体可以用来输入和输出。这样

6、让WINDOWS知道那些成员变量是有效的是非常重要的。可能的标志有:LVCF_FMT=fmt有效LVCF_SUBITEM=iSubItem有效LVCF_TEXT=pszText有效.LVCF_WIDTH=cx有效您可以一次使用几个标志。譬如,如果您向指定列的文本标签(列名),您必须在pszText成员变量中提供列名,然后指定标志LVCF_TEXT告诉WINDOWS成员变量pszText中的值是有效的,否则WINDOWS将忽略掉pszText中的值。fmt指定了项目/子项目的对齐方式。可能的值有:LVCFMT_CEN

7、TER=文本居中LVCFMT_LEFT=文本左对齐LVCFMT_RIGHT=文本右对齐cxcx是列的宽度(以像素点为单位)。以后您可以发送消息LVM_SETCOLUMNWIDTH来改变列的宽度。pszText如果用来设定列的属性时,该成员变量为指向列名的指针。如果是查询列名,该成员变量指向一个足够大的缓冲区,用来接收返回的列名,这是您必须在成员cchTextMax中指定缓冲区的大小。如果是设定列名时,可以忽略该变量,因为该指针指向的是一个ASCII码的字符串,而WINDOWS可以解析出ASCII串的长度。cchTe

8、xtMaxcchTextMax以字节计的上面一个成员变量指向的缓冲区的小。该成员变量只在您查询列的属性时使用。如果是设定列的属性,那该变量将被忽略。iSubItem指定和该列相连的子项目的索引号。该成员变量的值用来标识和列相连系的子项目。该列的使用最好地说明了如何把列号和子项目相连。要查询列的属性时可以发送LVM_GETCOLUMN消息,并在成员变量mask

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。