要创建树视图控件,请使用CreateWindowEx函数,为窗口类指定WC_TREEVIEW值。当加载公共控制动态链接库(DLL)时,树视窗类被注册在应用程序的地址空间中。要确保加载DLL,请使用InitCommonControls功能。
以下示例创建一个大小适合父窗口的客户端区域的树视图控件。它还使用应用程序定义的函数将图像列表与控件相关联并将项目添加到控件。
// CreateATreeView - 创建树视图控件。
//如果成功或返回NULL,则返回新控件的句柄
// 除此以外。
// hwndParent - 控件的父窗口的句柄
// lpszFileName - 要解析树视图项目的文件的名称
HWND CreateATreeView(HWND hwndParent,LPSTR lpszFileName)
{
RECT rcClient; //客户区域的维度
HWND hwndTV; //处理树视图控件
//确保加载公共控制DLL。
InitCommonControls();
//获取父窗口的客户区域的维度,然后创建
//树视图控件。
GetClientRect(hwndParent, &rcClient);
hwndTV = CreateWindowEx(0, WC_TREEVIEW, "Tree View",
WS_VISIBLE | WS_CHILD | WS_BORDER | TVS_HASLINES,
0,0,rcClient.right,rcClient.bottom,
hwndParent, (HMENU) ID_TREEVIEW, g_hinst, NULL);
//初始化图像列表,并将项添加到控件。
// InitTreeViewImageLists和InitTreeViewItems是application-
//定义的函数。
if(!InitTreeViewImageLists(hwndTV)||
!InitTreeViewItems(hwndTV,lpszFileName)){
DestroyWindow(hwndTV);
return FALSE;
}
return hwndTV;
}