当前位置:首页 > 网络编程 > 软件语言 > 汇编 > 树型视图控件

树型视图控件

点击次数:44 次 发布日期:2008-11-10 08:13:16 作者:源代码网
源代码网推荐
广告载入中
树型视图控件:

源代码网整理以下  本课中,我们将学习如何使用树型视图控件。另外还要学习如何在树型视图中完成拖-拉动作,以及如何使用图象列表。
源代码网推荐理论:
源代码网推荐树型视图是一种特别的窗口,我们可以使用它一目了然地表示某种层次关系。譬如象在资源管理器中左边窗口中的就是树型视图。您可以调用CreateWindowEx来创建树型视图,传递一个类名“"SysTreeView32"”,或者您也可以把它放到一个对话框中去。不要忘了在您的代码中加入InitCommonControls函数。
源代码网推荐树型视图有几种特有的风格。下面是几种经常使用的。
源代码网推荐TVS_HASBUTTONS == 在父项目中显示( )或(-)。用户可以通过点击该符号来展开或收起该父项目下的子项目。如果想在根目录下也有这个符号必须指定TVS_LINESATROOT风格。
源代码网推荐TVS_HASLINES == 在层次中用线条来连接各个项目名称。
源代码网推荐TVS_LINESATROOT == 在根目录下的项目也用线连接。如果没有指定TVS_HASLINES风格,该风格也就会被忽略。
源代码网推荐像其它的通用控件一样,树型视图用消息来完成通信。父窗口发送一系列的消息给树型视图,而树型视图发送"notification"消息给它的父窗口。在这方面,树型视图和其它的通用控制没什么两样。
源代码网推荐当有事件发生时,树型视图发送一个WM_NOTIFY消息个父窗口,并在消息中附带传递一些附加信息。


源代码网推荐WM_NOTIFY
源代码网推荐wParam ==控件的ID。因为该值不是唯一的,故我们不用它。我们使用NMHDR结构体中的hwndFrom或IDFrom成员变量。
源代码网推荐lParam == 指向NMHDR结构体的指针。有一些控件可能传递一个指向更大一点的结构体的指针。但该结构体必须保证它的第一个成员变量是一个NMHDR型的变量。这样,您在处理lParam变量时,至少可以得到一个NMHDR型的变量。
源代码网推荐下面我们来看NMHDR:
源代码网推荐NMHDR struct DWORD
源代码网推荐hwndFrom DWORD ?
源代码网推荐idFrom DWORD ?
源代码网推荐code DWORD ?
源代码网推荐NMHDR ends
源代码网推荐hwndFrom是发送WM_NOTIFY消息的控件的窗口句柄。
源代码网推荐idFrom是发送WM_NOTIFY消息的控件的ID。
源代码网推荐code是控件发送给父窗口的数据。
源代码网推荐树型视图发送给父窗口的通知消息以TVN_打头。 树型视图接收到的消息以TVM_打头,譬如:TVM_CREATEDRAGIMAGE。 树型视图发送TVN_XXX消息时在code变量中放入NMHDR型变量。父窗口发送TVM_消息来控制树型视图。
源代码网推荐在树型视图中加入项目
源代码网推荐在创建完树型视图后可以通过发送TVM_INSERTITEM消息往其中加入项目了。
源代码网推荐TVM_INSERTITEM
源代码网推荐wParam = 0;
源代码网推荐lParam = 指向结构体TV_INSERTSTRUCT的指针;

源代码网整理以下您应当知道一些关于树型视图中的项目之间关系的一些术语。 一个项目可能是一个父亲、儿子或两者都是。父项目下含有子项目,而该父项目又有可能是其它项目的子项目。一个没有父项目的项目叫根项目。在树型视图中可能有多个根项目。现在我们来看看TV_INSERTSTRUCT结构体:

源代码网整理以下TV_INSERTSTRUCT STRUCT DWORD
源代码网推荐 hParent DWORD ?
源代码网推荐 hInsertAfter DWORD ?
源代码网推荐 ITEMTYPE <>
源代码网推荐 TV_INSERTSTRUCT ENDS
源代码网推荐 hParent = 父项目的句柄。如果该值为TVI_ROOT value或NULL,该项目插在树型视图的根部。
源代码网推荐 hInsertAfter = 应该插入在起后面的项目的句柄或下面的值:
源代码网推荐 TVI_FIRST ==> 插在列表的头部。
源代码网推荐 TVI_LAST ==> 插在列表的尾部。
源代码网推荐 TVI_SORT ==> 按字母顺序插入。
源代码网推荐 ITEMTYPE UNION
源代码网推荐 itemex TVITEMEX <>
源代码网推荐 item TVITEM <>
源代码网推荐 ITEMTYPE ENDS
源代码网推荐 我们仅使用TVITEM。
源代码网推荐 TV_ITEM STRUCT DWORD
源代码网推荐 imask DWORD ?
源代码网推荐 hItem DWORD ?
源代码网推荐 state DWORD ?
源代码网推荐 stateMask DWORD ?
源代码网推荐 pszText DWORD ?
源代码网推荐 cchTextMax DWORD ?
源代码网推荐 iImage DWORD ?
源代码网推荐 iSelectedImage DWORD ?
源代码网推荐 cChildren DWORD ?


源代码网推荐

源代码网供稿.
网友评论 (0)
会员中心
网络编程
本站推荐
网络编程之精华