ARGH
[matches/honours.git] / research / transmission_spectroscopy / TOF / Win32++ / samples / MDIFrameDemo / src / MDIChildTreeView.cpp
1 //////////////////////////////////////////////\r
2 // MDIChildTreeView.cpp\r
3 //  Definitions for the CViewTree and CMDIChildTreeView classes\r
4 \r
5 #include "stdafx.h"\r
6 #include "MDIChildTreeView.h"\r
7 #include "resource.h"\r
8 \r
9 \r
10 ///////////////////////////////////////////////\r
11 // CViewTree functions\r
12 CViewTree::CViewTree() : m_himlNormal(0)\r
13 {\r
14 }\r
15 \r
16 CViewTree::~CViewTree()\r
17 {\r
18         if (IsWindow()) DeleteAllItems();\r
19         ImageList_Destroy(m_himlNormal);\r
20 }\r
21 \r
22 void CViewTree::OnInitialUpdate()\r
23 {\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
30 \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
35 \r
36         DeleteAllItems();\r
37 \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
53 \r
54         // Expand some tree-view items\r
55         Expand(htiRoot, TVE_EXPAND);\r
56         Expand(htiCTreeViewApp, TVE_EXPAND);\r
57 }\r
58 \r
59 HTREEITEM CViewTree::AddItem(HTREEITEM hParent, LPCTSTR szText, int iImage)\r
60 {\r
61         TVITEM tvi = {0};\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
66 \r
67         TVINSERTSTRUCT tvis = {0};\r
68         tvis.hParent = hParent;\r
69         tvis.item = tvi;\r
70 \r
71         return InsertItem(tvis);\r
72 }\r
73 \r
74 LRESULT CViewTree::WndProc(UINT uMsg, WPARAM wParam, LPARAM lParam)\r
75 {\r
76         switch(uMsg)\r
77         {\r
78         case WM_DESTROY:\r
79                 {\r
80                         SetImageList(NULL, LVSIL_SMALL);\r
81                         break;\r
82                 }\r
83         }\r
84 \r
85         return WndProcDefault(uMsg, wParam, lParam);\r
86 }\r
87 \r
88 \r
89 ///////////////////////////////////////////////\r
90 // CMDIChildTreeView functions\r
91 CMDIChildTreeView::CMDIChildTreeView()\r
92 {\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
97 }\r
98 \r
99 CMDIChildTreeView::~CMDIChildTreeView()\r
100 {\r
101 }\r
102 \r
103 void CMDIChildTreeView::OnCreate()\r
104 {\r
105         m_TreeView.Create(this);\r
106 }\r
107 \r
108 void CMDIChildTreeView::OnInitialUpdate()\r
109 {\r
110         SetWindowText(_T("Tree-View Window"));\r
111         SetIconLarge(IDI_CLASSES);\r
112         SetIconSmall(IDI_CLASSES);\r
113 }\r
114 \r

UCC git Repository :: git.ucc.asn.au