1 //////////////////////////////////////////////////////////////
\r
2 // Views.cpp - Definitions for the CViewSimple, CViewList,
\r
3 // CViewTree and CViewText classes
\r
6 #include "SplitterApp.h"
\r
8 #include "resource.h"
\r
11 ///////////////////////////////////////////////
\r
12 // CViewSimple functions
\r
13 void CViewSimple::OnDraw(CDC* pDC)
\r
15 //Centre some text in the window
\r
16 CRect rc = GetClientRect();
\r
17 pDC->DrawText(_T("Simple View"), -1, rc, DT_CENTER|DT_VCENTER|DT_SINGLELINE);
\r
20 LRESULT CViewSimple::WndProc(UINT uMsg, WPARAM wParam, LPARAM lParam)
\r
29 return WndProcDefault(uMsg, wParam, lParam);
\r
33 ///////////////////////////////////////////////
\r
34 // CViewList functions
\r
35 CViewList::CViewList() : m_himlSmall(0)
\r
39 CViewList::~CViewList()
\r
41 if (IsWindow()) DeleteAllItems();
\r
44 void CViewList::OnInitialUpdate()
\r
46 // Set the image lists
\r
47 m_himlSmall = ImageList_Create(16, 15, ILC_COLOR32 | ILC_MASK, 1, 0);
\r
48 HBITMAP hbm = LoadBitmap(MAKEINTRESOURCE(IDB_FILEVIEW));
\r
49 ImageList_AddMasked(m_himlSmall, hbm, RGB(255, 0, 255));
\r
50 SetImageList(m_himlSmall, LVSIL_SMALL);
\r
52 // Set the report style
\r
53 DWORD dwStyle = (DWORD)GetWindowLongPtr(GWL_STYLE);
\r
54 SetWindowLongPtr(GWL_STYLE, (dwStyle & ~LVS_TYPEMASK) | LVS_REPORT);
\r
60 int CViewList::AddItem(LPCTSTR szText, int nImage)
\r
63 lvi.mask = LVIF_TEXT|LVIF_IMAGE;
\r
64 lvi.iImage = nImage;
\r
65 lvi.pszText = (LPTSTR)szText;
\r
67 return InsertItem(lvi);
\r
70 void CViewList::SetColumns()
\r
75 //initialise the columns
\r
76 LV_COLUMN lvColumn = {0};
\r
77 lvColumn.mask = LVCF_FMT | LVCF_WIDTH | LVCF_TEXT | LVCF_SUBITEM;
\r
78 lvColumn.fmt = LVCFMT_LEFT;
\r
80 TCHAR szString[3][20] = {TEXT("Name"), TEXT("Size"), TEXT("Type")};
\r
81 for(int i = 0; i < 3; ++i)
\r
83 lvColumn.pszText = szString[i];
\r
84 InsertColumn(i, lvColumn);
\r
88 BOOL CViewList::SetSubItem(int nItem, int nSubItem, LPCTSTR szText)
\r
91 lvi1.mask = LVIF_TEXT;
\r
93 lvi1.iSubItem = nSubItem;
\r
94 lvi1.pszText = (LPTSTR)szText;
\r
95 return (BOOL)SendMessage(LVM_SETITEM, 0, (LPARAM)&lvi1);
\r
98 void CViewList::InsertItems()
\r
101 int item = AddItem(_T("ListViewApp.h"), 2);
\r
102 SetSubItem(item, 1, _T("1 KB"));
\r
103 SetSubItem(item, 2, _T("C Header file"));
\r
106 item = AddItem(_T("ListViewApp.cpp"), 1);
\r
107 SetSubItem(item, 1, _T("3 KB"));
\r
108 SetSubItem(item, 2, _T("C++ Source file"));
\r
111 item = AddItem(_T("main.cpp"), 1);
\r
112 SetSubItem(item, 1, _T("1 KB"));
\r
113 SetSubItem(item, 2, _T("C++ Source file"));
\r
116 item = AddItem(_T("ListView"), 0);
\r
117 SetSubItem(item, 2, _T("Folder"));
\r
121 ///////////////////////////////////////////////
\r
122 // CViewTree functions
\r
123 CViewTree::CViewTree() : m_himlNormal(0)
\r
127 CViewTree::~CViewTree()
\r
129 if (IsWindow()) DeleteAllItems();
\r
132 void CViewTree::OnInitialUpdate()
\r
134 //set the image lists
\r
135 m_himlNormal = ImageList_Create(16, 15, ILC_COLOR32 | ILC_MASK, 1, 0);
\r
136 HBITMAP hbm = LoadBitmap(MAKEINTRESOURCE(IDB_CLASSVIEW));
\r
137 ImageList_AddMasked(m_himlNormal, hbm, RGB(255, 0, 0));
\r
138 SetImageList(m_himlNormal, LVSIL_NORMAL);
\r
140 // Adjust style to show lines and [+] button
\r
141 DWORD dwStyle = (DWORD)GetWindowLongPtr(GWL_STYLE);
\r
142 dwStyle |= TVS_HASBUTTONS | TVS_HASLINES | TVS_LINESATROOT;
\r
143 SetWindowLongPtr(GWL_STYLE, dwStyle);
\r
147 // Add some tree-view items
\r
148 HTREEITEM htiRoot = AddItem(NULL, _T("TreeView"), 0);
\r
149 HTREEITEM htiCTreeViewApp = AddItem(htiRoot, _T("CTreeViewApp"), 1);
\r
150 AddItem(htiCTreeViewApp, _T("CTreeViewApp()"), 3);
\r
151 AddItem(htiCTreeViewApp, _T("GetMainFrame()"), 3);
\r
152 AddItem(htiCTreeViewApp, _T("InitInstance()"), 3);
\r
153 HTREEITEM htiMainFrame = AddItem(htiRoot, _T("CMainFrame"), 1);
\r
154 AddItem(htiMainFrame, _T("CMainFrame()"), 3);
\r
155 AddItem(htiMainFrame, _T("OnCommand()"), 4);
\r
156 AddItem(htiMainFrame, _T("OnInitialUpdate()"), 4);
\r
157 AddItem(htiMainFrame, _T("WndProc()"), 4);
\r
158 HTREEITEM htiView = AddItem(htiRoot, _T("CView"), 1);
\r
159 AddItem(htiView, _T("CView()"), 3);
\r
160 AddItem(htiView, _T("OnInitialUpdate()"), 4);
\r
161 AddItem(htiView, _T("WndProc()"), 4);
\r
163 // Expand some tree-view items
\r
164 Expand(htiRoot, TVE_EXPAND);
\r
165 Expand(htiCTreeViewApp, TVE_EXPAND);
\r
168 HTREEITEM CViewTree::AddItem(HTREEITEM hParent, LPCTSTR szText, int iImage)
\r
171 tvi.mask = TVIF_TEXT | TVIF_IMAGE | TVIF_SELECTEDIMAGE;
\r
172 tvi.iImage = iImage;
\r
173 tvi.iSelectedImage = iImage;
\r
174 tvi.pszText = (LPTSTR)szText;
\r
176 TVINSERTSTRUCT tvis = {0};
\r
177 tvis.hParent = hParent;
\r
180 return InsertItem(tvis);
\r
184 ///////////////////////////////////////////////
\r
185 // CViewText functions
\r
186 void CViewText::OnInitialUpdate()
\r
188 SetWindowText(_T("Text Edit Window\r\n\r\n\r\n\r\n You can type some text here ..."));
\r
191 void CViewText::PreCreate(CREATESTRUCT &cs)
\r
193 cs.lpszClass = _T("EDIT");
\r
194 cs.style = ES_MULTILINE|WS_CHILD;
\r