windows sdk编程系列文章16 ---- 树型视图控件

windows sdk编程系列文章16 ---- 树型视图控件

ID:41033454

大小:72.50 KB

页数:14页

时间:2019-08-14

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

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

1、windowssdk编程系列文章----树型视图控件12008-04-1622:21本课中,我们将学习如何使用树型视图控件。另外还要学习如何在树型视图中完成拖-拉动作,以及如何使用图象列表。理论:树型视图是一种特别的窗口,我们可以使用它一目了然地表示某种层次关系。譬如象在资源管理器中左边窗口中的就是树型视图。您可以调用CreateWindowEx来创建树型视图,传递一个类名“"SysTreeView32"”,或者您也可以把它放到一个对话框中去。不要忘了在您的代码中加入InitCommonControls函数。树型视图有几种特有的风格。下面是几种经常使用的。TVS_HASBUTTONS=

2、=在父项目中显示(+)或(-)。用户可以通过点击该符号来展开或收起该父项目下的子项目。如果想在根目录下也有这个符号必须指定TVS_LINESATROOT风格。TVS_HASLINES==在层次中用线条来连接各个项目名称。TVS_LINESATROOT==在根目录下的项目也用线连接。如果没有指定TVS_HASLINES风格,该风格也就会被忽略。像其它的通用控件一样,树型视图用消息来完成通信。父窗口发送一系列的消息给树型视图,而树型视图发送"notification"消息给它的父窗口。在这方面,树型视图和其它的通用控制没什么两样。当有事件发生时,树型视图发送一个WM_NOTIFY消息个父窗

3、口,并在消息中附带传递一些附加信息。WM_NOTIFYwParam==控件的ID。因为该值不是唯一的,故我们不用它。我们使用NMHDR结构体中的hwndFrom或IDFrom成员变量。lParam==指向NMHDR结构体的指针。有一些控件可能传递一个指向更大一点的结构体的指针。但该结构体必须保证它的第一个成员变量是一个NMHDR型的变量。这样,您在处理lParam变量时,至少可以得到一个NMHDR型的变量。下面我们来看NMHDR:typedefstructtagNMHDR{     HWNDhwndFrom;     UINTidFrom;     UINTcode;}NMHDR;hw

4、ndFrom是发送WM_NOTIFY消息的控件的窗口句柄。idFrom是发送WM_NOTIFY消息的控件的ID。code是控件发送给父窗口的数据。树型视图发送给父窗口的通知消息以TVN_打头。树型视图接收到的消息以TVM_打头,譬如:TVM_CREATEDRAGIMAGE。树型视图发送TVN_XXX消息时在code变量中放入NMHDR型变量。父窗口发送TVM_消息来控制树型视图。在树型视图中加入项目在创建完树型视图后可以通过发送TVM_INSERTITEM消息往其中加入项目了。TVM_INSERTITEMwParam=0;lParam=指向结构体TV_INSERTSTRUCT的指针;您

5、应当知道一些关于树型视图中的项目之间关系的一些术语。一个项目可能是一个父亲、儿子或两者都是。父项目下含有子项目,而该父项目又有可能是其它项目的子项目。一个没有父项目的项目叫根项目。在树型视图中可能有多个根项目。现在我们来看看TV_INSERTSTRUCT结构体:typedefstructtagTVINSERTSTRUCT{HTREEITEMhParent;HTREEITEMhInsertAfter;#if(_WIN32_IE>=0x0400)union{TVITEMEXitemex;TVITEMitem;}DUMMYUNIONNAME;#elseTVITEMitem;#endif}TV

6、INSERTSTRUCT,*LPTVINSERTSTRUCT;hParent=父项目的句柄。如果该值为TVI_ROOTvalue或NULL,该项目插在树型视图的根部。hInsertAfter=应该插入在起后面的项目的句柄或下面的值:·TVI_FIRST==>插在列表的头部。·TVI_LAST==>插在列表的尾部。·TVI_SORT==>按字母顺序插入。union{TVITEMEXitemex;TVITEMitem;}DUMMYUNIONNAME;我们仅使用TVITEM。typedefstructtagTVITEM{                  UINTmask;         

7、         HTREEITEMhItem;                  UINTstate;                  UINTstateMask;                  LPTSTRpszText;                  intcchTextMax;                  intiImage;                  intiSelectedImage;            

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

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

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