1 //////////////////////////////////////////////
\r
2 // MDIChildTreeView.cpp
\r
3 // Definitions for the CViewTree and CMDIChildTreeView classes
\r
6 #include "MDIChildTreeView.h"
\r
7 #include "resource.h"
\r
10 ///////////////////////////////////////////////
\r
11 // CViewTree functions
\r
12 CViewTree::CViewTree() : m_himlNormal(0)
\r
16 CViewTree::~CViewTree()
\r
18 if (IsWindow()) DeleteAllItems();
\r
19 ImageList_Destroy(m_himlNormal);
\r
22 void CViewTree::OnInitialUpdate()
\r
24 //set the image lists
\r
25 m_himlNormal = ImageList_Create(16, 15, ILC_COLOR32 | ILC_MASK, 1, 0);
\r
26 HBITMAP hbm = LoadBitmap(MAKEINTRESOURCE(IDB_CLASSVIEW));
\r
27 ImageList_AddMasked(m_himlNormal, hbm, RGB(255, 0, 0));
\r
28 SetImageList(m_himlNormal, LVSIL_NORMAL);
\r
29 ::DeleteObject(hbm);
\r
31 // Adjust style to show lines and [+] button
\r
32 DWORD dwStyle = (DWORD)GetWindowLongPtr(GWL_STYLE);
\r
33 dwStyle |= TVS_HASBUTTONS | TVS_HASLINES | TVS_LINESATROOT;
\r
34 SetWindowLongPtr(GWL_STYLE, dwStyle);
\r
38 // Add some tree-view items
\r
39 HTREEITEM htiRoot = AddItem(NULL, _T("TreeView"), 0);
\r
40 HTREEITEM htiCTreeViewApp = AddItem(htiRoot, _T("CTreeViewApp"), 1);
\r
41 AddItem(htiCTreeViewApp, _T("CTreeViewApp()"), 3);
\r
42 AddItem(htiCTreeViewApp, _T("GetMainFrame()"), 3);
\r
43 AddItem(htiCTreeViewApp, _T("InitInstance()"), 3);
\r
44 HTREEITEM htiMainFrame = AddItem(htiRoot, _T("CMainFrame"), 1);
\r
45 AddItem(htiMainFrame, _T("CMainFrame()"), 3);
\r
46 AddItem(htiMainFrame, _T("OnCommand()"), 4);
\r
47 AddItem(htiMainFrame, _T("OnInitialUpdate()"), 4);
\r
48 AddItem(htiMainFrame, _T("WndProc()"), 4);
\r
49 HTREEITEM htiView = AddItem(htiRoot, _T("CView"), 1);
\r
50 AddItem(htiView, _T("CView()"), 3);
\r
51 AddItem(htiView, _T("OnInitialUpdate()"), 4);
\r
52 AddItem(htiView, _T("WndProc()"), 4);
\r
54 // Expand some tree-view items
\r
55 Expand(htiRoot, TVE_EXPAND);
\r
56 Expand(htiCTreeViewApp, TVE_EXPAND);
\r
59 HTREEITEM CViewTree::AddItem(HTREEITEM hParent, LPCTSTR szText, int iImage)
\r
62 tvi.mask = TVIF_TEXT | TVIF_IMAGE | TVIF_SELECTEDIMAGE;
\r
63 tvi.iImage = iImage;
\r
64 tvi.iSelectedImage = iImage;
\r
65 tvi.pszText = (LPTSTR)szText;
\r
67 TVINSERTSTRUCT tvis = {0};
\r
68 tvis.hParent = hParent;
\r
71 return InsertItem(tvis);
\r
74 LRESULT CViewTree::WndProc(UINT uMsg, WPARAM wParam, LPARAM lParam)
\r
80 SetImageList(NULL, LVSIL_SMALL);
\r
85 return WndProcDefault(uMsg, wParam, lParam);
\r
89 ///////////////////////////////////////////////
\r
90 // CMDIChildTreeView functions
\r
91 CMDIChildTreeView::CMDIChildTreeView()
\r
93 HINSTANCE hResource = GetApp()->GetResourceHandle();
\r
94 HMENU hChildMenu = LoadMenu(hResource, _T("MdiMenuTree"));
\r
95 SetHandles(hChildMenu, NULL);
\r
96 SetView(m_TreeView);
\r
99 CMDIChildTreeView::~CMDIChildTreeView()
\r
103 void CMDIChildTreeView::OnCreate()
\r
105 m_TreeView.Create(this);
\r
108 void CMDIChildTreeView::OnInitialUpdate()
\r
110 SetWindowText(_T("Tree-View Window"));
\r
111 SetIconLarge(IDI_CLASSES);
\r
112 SetIconSmall(IDI_CLASSES);
\r