--- /dev/null
+//////////////////////////////////////////////\r
+// Classes.cpp\r
+// Definitions for CViewClasses\r
+\r
+#include "stdafx.h"\r
+#include "TabDemoApp.h"\r
+#include "Classes.h"\r
+#include "resource.h"\r
+\r
+\r
+///////////////////////////////////////////////\r
+// CViewClasses functions\r
+CViewClasses::CViewClasses() : m_himlNormal(0)\r
+{\r
+}\r
+\r
+CViewClasses::~CViewClasses()\r
+{\r
+ if (IsWindow()) DeleteAllItems();\r
+ ImageList_Destroy(m_himlNormal);\r
+}\r
+\r
+void CViewClasses::OnInitialUpdate()\r
+{\r
+ //set the image lists\r
+ m_himlNormal = ImageList_Create(16, 15, ILC_COLOR32 | ILC_MASK, 1, 0);\r
+ HBITMAP hbm = LoadBitmap(MAKEINTRESOURCE(IDB_CLASSVIEW));\r
+ ImageList_AddMasked(m_himlNormal, hbm, RGB(255, 0, 0));\r
+ SetImageList(m_himlNormal, LVSIL_NORMAL);\r
+ ::DeleteObject(hbm);\r
+\r
+ // Adjust style to show lines and [+] button\r
+ DWORD dwStyle = (DWORD)GetWindowLongPtr(GWL_STYLE);\r
+ dwStyle |= TVS_HASBUTTONS | TVS_HASLINES | TVS_LINESATROOT;\r
+ SetWindowLongPtr(GWL_STYLE, dwStyle);\r
+\r
+ DeleteAllItems();\r
+\r
+ // Add some tree-view items\r
+ HTREEITEM htiRoot = AddItem(NULL, _T("TreeView"), 0);\r
+ HTREEITEM htiCTreeViewApp = AddItem(htiRoot, _T("CTreeViewApp"), 1);\r
+ AddItem(htiCTreeViewApp, _T("CTreeViewApp()"), 3);\r
+ AddItem(htiCTreeViewApp, _T("GetMainFrame()"), 3);\r
+ AddItem(htiCTreeViewApp, _T("InitInstance()"), 3);\r
+ HTREEITEM htiMainFrame = AddItem(htiRoot, _T("CMainFrame"), 1);\r
+ AddItem(htiMainFrame, _T("CMainFrame()"), 3);\r
+ AddItem(htiMainFrame, _T("OnCommand()"), 4);\r
+ AddItem(htiMainFrame, _T("OnInitialUpdate()"), 4);\r
+ AddItem(htiMainFrame, _T("WndProc()"), 4);\r
+ HTREEITEM htiView = AddItem(htiRoot, _T("CView"), 1);\r
+ AddItem(htiView, _T("CView()"), 3);\r
+ AddItem(htiView, _T("OnInitialUpdate()"), 4);\r
+ AddItem(htiView, _T("WndProc()"), 4);\r
+\r
+ // Expand some tree-view items\r
+ Expand(htiRoot, TVE_EXPAND);\r
+ Expand(htiCTreeViewApp, TVE_EXPAND);\r
+}\r
+\r
+HTREEITEM CViewClasses::AddItem(HTREEITEM hParent, LPCTSTR szText, int iImage)\r
+{\r
+ TVITEM tvi = {0};\r
+ tvi.mask = TVIF_TEXT | TVIF_IMAGE | TVIF_SELECTEDIMAGE;\r
+ tvi.iImage = iImage;\r
+ tvi.iSelectedImage = iImage;\r
+ tvi.pszText = (LPTSTR)szText;\r
+\r
+ TVINSERTSTRUCT tvis = {0};\r
+ tvis.hParent = hParent;\r
+ tvis.item = tvi;\r
+\r
+ return InsertItem(tvis);\r
+}\r
+\r
+\r