我怎么能创build一个像微软应用程序的TreeView

嗨即时训练开发一个应用程序,但我想添加一个特定的外观,我成功做到这一点,但我的外观不是我的客户想要的应用程序开发使用MFC和C + +。

我的应用程序如下所示:

在这里输入图像说明

我希望它看起来像这样:

在这里输入图像说明

在这里输入图像说明

在这里输入图像说明

我正在使用的代码:

CRect rectDummy(0,0,200,600); //rectDummy.SetRectEmpty(); CTreeCtrl m_wndClassView; const DWORD dwViewStyle = WS_CHILD | WS_VISIBLE | TVS_HASLINES | TVS_LINESATROOT | TVS_HASBUTTONS | WS_CLIPSIBLINGS | WS_CLIPCHILDREN; if (!m_wndClassView.Create(dwViewStyle, rectDummy, &m_wndView, 2)) { TRACE0("Failed to create Class View\n"); return -1; // fail to create } HTREEITEM hRoot = m_wndClassView.InsertItem(_T("System Summary"), 0, 0); m_wndClassView.SetItemState(hRoot, TVIS_BOLD, TVIS_BOLD); HTREEITEM hClass = m_wndClassView.InsertItem(_T("Hardwre Resources"), 1, 1, hRoot); hClass = m_wndClassView.InsertItem(_T("Components"), 1, 1, hRoot); hClass = m_wndClassView.InsertItem(_T("Software Enviroment"), 1, 1, hRoot); 

如果可能,我更喜欢使用MFC / C ++的解决scheme,而不是使用第三方库。

添加依赖到uxtheme.lib库,包括<Uxtheme.h>标题,创建控件后调用SetWindowTheme()函数:

 SetWindowTheme(hYourTreeviewHandle, L"Explorer", NULL); 

这将使您的树视图控件具有Windows资源管理器的外观和感觉。 由于需要提供自己的图像列表,并且还利用TreeView_SetImageList()宏将图像列表附加到树视图,所以事情更为复杂:

 TreeView_SetImageList(hYourTreeviewHandle, hYourImagesHandle, TVSIL_NORMAL); 

你需要一些东西来看看这个样子:

  1. 确保您的应用程序清单指定comctl32 v6。
  2. 在创建树视图后SetWindowTheme(hTreeView, L"explorer", NULL)添加一个对SetWindowTheme(hTreeView, L"explorer", NULL)的调用。 这里hTreeView是树视图的窗口句柄。