annotate foosdk/wtl/Include/atlctrls.h @ 1:20d02a178406 default tip

*: check in everything else yay
author Paper <paper@tflc.us>
date Mon, 05 Jan 2026 02:15:46 -0500
parents
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
1
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1 // Windows Template Library - WTL version 10.0
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2 // Copyright (C) Microsoft Corporation, WTL Team. All rights reserved.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3 //
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4 // This file is a part of the Windows Template Library.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5 // The use and distribution terms for this software are covered by the
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6 // Microsoft Public License (http://opensource.org/licenses/MS-PL)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7 // which can be found in the file MS-PL.txt at the root folder.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9 #ifndef __ATLCTRLS_H__
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
10 #define __ATLCTRLS_H__
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
11
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
12 #pragma once
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
13
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
14 #ifndef __ATLAPP_H__
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
15 #error atlctrls.h requires atlapp.h to be included first
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
16 #endif
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
17
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
18 #ifndef __ATLWIN_H__
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
19 #error atlctrls.h requires atlwin.h to be included first
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
20 #endif
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
21
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
22 #include <richedit.h>
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
23 #include <richole.h>
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
24
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
25 #if (_RICHEDIT_VER < 0x0300)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
26 #error WTL10 requires RichEdit version 3 or higher
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
27 #endif
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
28
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
29 // protect template members from windowsx.h macros
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
30 #ifdef _INC_WINDOWSX
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
31 #undef GetNextSibling
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
32 #undef GetPrevSibling
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
33 #endif // _INC_WINDOWSX
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
34
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
35
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
36 ///////////////////////////////////////////////////////////////////////////////
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
37 // Classes in this file:
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
38 //
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
39 // CStaticT<TBase> - CStatic
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
40 // CButtonT<TBase> - CButton
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
41 // CListBoxT<TBase> - CListBox
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
42 // CComboBoxT<TBase> - CComboBox
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
43 // CEditT<TBase> - CEdit
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
44 // CEditCommands<T>
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
45 // CScrollBarT<TBase> - CScrollBar
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
46 //
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
47 // CImageListT<t_bManaged> - CImageList, CImageListManaged
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
48 // CListViewCtrlT<TBase> - CListViewCtrl
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
49 // CTreeViewCtrlT<TBase> - CTreeViewCtrl
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
50 // CTreeItemT<TBase> - CTreeItem
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
51 // CTreeViewCtrlExT<TBase> - CTreeViewCtrlEx
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
52 // CHeaderCtrlT<TBase> - CHeaderCtrl
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
53 // CToolBarCtrlT<TBase> - CToolBarCtrl
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
54 // CStatusBarCtrlT<TBase> - CStatusBarCtrl
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
55 // CTabCtrlT<TBase> - CTabCtrl
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
56 // CToolInfo
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
57 // CToolTipCtrlT<TBase> - CToolTipCtrl
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
58 // CTrackBarCtrlT<TBase> - CTrackBarCtrl
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
59 // CUpDownCtrlT<TBase> - CUpDownCtrl
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
60 // CProgressBarCtrlT<TBase> - CProgressBarCtrl
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
61 // CHotKeyCtrlT<TBase> - CHotKeyCtrl
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
62 // CAnimateCtrlT<TBase> - CAnimateCtrl
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
63 // CRichEditCtrlT<TBase> - CRichEditCtrl
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
64 // CRichEditCommands<T>
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
65 // CDragListBoxT<TBase> - CDragListBox
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
66 // CDragListNotifyImpl<T>
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
67 // CReBarCtrlT<TBase> - CReBarCtrl
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
68 // CComboBoxExT<TBase> - CComboBoxEx
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
69 // CDateTimePickerCtrlT<TBase> - CDateTimePickerCtrl
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
70 // CMonthCalendarCtrlT<TBase> - CMonthCalendarCtrl
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
71 // CFlatScrollBarImpl<T>
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
72 // CFlatScrollBarT<TBase> - CFlatScrollBar
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
73 // CIPAddressCtrlT<TBase> - CIPAddressCtrl
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
74 // CPagerCtrlT<TBase> - CPagerCtrl
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
75 // CLinkCtrlT<TBase> - CLinkCtrl
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
76 //
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
77 // CCustomDraw<T>
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
78
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
79
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
80 namespace WTL
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
81 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
82
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
83 // These are wrapper classes for Windows standard and common controls.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
84 // To implement a window based on a control, use following:
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
85 // Example: Implementing a window based on a list box
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
86 //
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
87 // class CMyListBox : CWindowImpl<CMyListBox, CListBox>
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
88 // {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
89 // public:
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
90 // BEGIN_MSG_MAP(CMyListBox)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
91 // // put your message handler entries here
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
92 // END_MSG_MAP()
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
93 // };
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
94
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
95
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
96
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
97 // --- Standard Windows controls ---
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
98
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
99 ///////////////////////////////////////////////////////////////////////////////
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
100 // CStatic - client side for a Windows STATIC control
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
101
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
102 template <class TBase>
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
103 class CStaticT : public TBase
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
104 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
105 public:
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
106 // Constructors
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
107 CStaticT(HWND hWnd = NULL) : TBase(hWnd)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
108 { }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
109
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
110 CStaticT< TBase >& operator =(HWND hWnd)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
111 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
112 this->m_hWnd = hWnd;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
113 return *this;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
114 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
115
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
116 HWND Create(HWND hWndParent, ATL::_U_RECT rect = NULL, LPCTSTR szWindowName = NULL,
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
117 DWORD dwStyle = 0, DWORD dwExStyle = 0,
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
118 ATL::_U_MENUorID MenuOrID = 0U, LPVOID lpCreateParam = NULL)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
119 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
120 return TBase::Create(GetWndClassName(), hWndParent, rect.m_lpRect, szWindowName, dwStyle, dwExStyle, MenuOrID.m_hMenu, lpCreateParam);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
121 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
122
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
123 // Attributes
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
124 static LPCTSTR GetWndClassName()
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
125 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
126 return _T("STATIC");
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
127 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
128
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
129 HICON GetIcon() const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
130 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
131 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
132 return (HICON)::SendMessage(this->m_hWnd, STM_GETICON, 0, 0L);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
133 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
134
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
135 HICON SetIcon(HICON hIcon)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
136 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
137 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
138 return (HICON)::SendMessage(this->m_hWnd, STM_SETICON, (WPARAM)hIcon, 0L);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
139 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
140
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
141 HENHMETAFILE GetEnhMetaFile() const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
142 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
143 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
144 return (HENHMETAFILE)::SendMessage(this->m_hWnd, STM_GETIMAGE, IMAGE_ENHMETAFILE, 0L);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
145 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
146
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
147 HENHMETAFILE SetEnhMetaFile(HENHMETAFILE hMetaFile)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
148 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
149 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
150 return (HENHMETAFILE)::SendMessage(this->m_hWnd, STM_SETIMAGE, IMAGE_ENHMETAFILE, (LPARAM)hMetaFile);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
151 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
152
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
153 CBitmapHandle GetBitmap() const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
154 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
155 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
156 return CBitmapHandle((HBITMAP)::SendMessage(this->m_hWnd, STM_GETIMAGE, IMAGE_BITMAP, 0L));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
157 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
158
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
159 CBitmapHandle SetBitmap(HBITMAP hBitmap)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
160 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
161 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
162 return CBitmapHandle((HBITMAP)::SendMessage(this->m_hWnd, STM_SETIMAGE, IMAGE_BITMAP, (LPARAM)hBitmap));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
163 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
164
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
165 HCURSOR GetCursor() const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
166 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
167 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
168 return (HCURSOR)::SendMessage(this->m_hWnd, STM_GETIMAGE, IMAGE_CURSOR, 0L);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
169 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
170
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
171 HCURSOR SetCursor(HCURSOR hCursor)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
172 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
173 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
174 return (HCURSOR)::SendMessage(this->m_hWnd, STM_SETIMAGE, IMAGE_CURSOR, (LPARAM)hCursor);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
175 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
176 };
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
177
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
178 typedef CStaticT<ATL::CWindow> CStatic;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
179
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
180
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
181 ///////////////////////////////////////////////////////////////////////////////
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
182 // CButton - client side for a Windows BUTTON control
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
183
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
184 template <class TBase>
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
185 class CButtonT : public TBase
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
186 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
187 public:
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
188 // Constructors
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
189 CButtonT(HWND hWnd = NULL) : TBase(hWnd)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
190 { }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
191
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
192 CButtonT< TBase >& operator =(HWND hWnd)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
193 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
194 this->m_hWnd = hWnd;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
195 return *this;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
196 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
197
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
198 HWND Create(HWND hWndParent, ATL::_U_RECT rect = NULL, LPCTSTR szWindowName = NULL,
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
199 DWORD dwStyle = 0, DWORD dwExStyle = 0,
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
200 ATL::_U_MENUorID MenuOrID = 0U, LPVOID lpCreateParam = NULL)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
201 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
202 return TBase::Create(GetWndClassName(), hWndParent, rect.m_lpRect, szWindowName, dwStyle, dwExStyle, MenuOrID.m_hMenu, lpCreateParam);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
203 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
204
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
205 // Attributes
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
206 static LPCTSTR GetWndClassName()
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
207 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
208 return _T("BUTTON");
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
209 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
210
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
211 UINT GetState() const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
212 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
213 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
214 return (UINT)::SendMessage(this->m_hWnd, BM_GETSTATE, 0, 0L);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
215 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
216
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
217 void SetState(BOOL bHighlight)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
218 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
219 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
220 ::SendMessage(this->m_hWnd, BM_SETSTATE, bHighlight, 0L);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
221 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
222
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
223 int GetCheck() const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
224 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
225 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
226 return (int)::SendMessage(this->m_hWnd, BM_GETCHECK, 0, 0L);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
227 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
228
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
229 void SetCheck(int nCheck)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
230 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
231 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
232 ::SendMessage(this->m_hWnd, BM_SETCHECK, nCheck, 0L);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
233 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
234
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
235 UINT GetButtonStyle() const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
236 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
237 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
238 return (UINT)::GetWindowLong(this->m_hWnd, GWL_STYLE) & 0xFFFF;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
239 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
240
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
241 void SetButtonStyle(UINT nStyle, BOOL bRedraw = TRUE)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
242 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
243 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
244 ::SendMessage(this->m_hWnd, BM_SETSTYLE, nStyle, (LPARAM)bRedraw);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
245 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
246
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
247 HICON GetIcon() const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
248 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
249 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
250 return (HICON)::SendMessage(this->m_hWnd, BM_GETIMAGE, IMAGE_ICON, 0L);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
251 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
252
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
253 HICON SetIcon(HICON hIcon)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
254 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
255 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
256 return (HICON)::SendMessage(this->m_hWnd, BM_SETIMAGE, IMAGE_ICON, (LPARAM)hIcon);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
257 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
258
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
259 CBitmapHandle GetBitmap() const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
260 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
261 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
262 return CBitmapHandle((HBITMAP)::SendMessage(this->m_hWnd, BM_GETIMAGE, IMAGE_BITMAP, 0L));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
263 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
264
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
265 CBitmapHandle SetBitmap(HBITMAP hBitmap)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
266 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
267 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
268 return CBitmapHandle((HBITMAP)::SendMessage(this->m_hWnd, BM_SETIMAGE, IMAGE_BITMAP, (LPARAM)hBitmap));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
269 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
270
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
271 BOOL GetIdealSize(LPSIZE lpSize) const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
272 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
273 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
274 return (BOOL)::SendMessage(this->m_hWnd, BCM_GETIDEALSIZE, 0, (LPARAM)lpSize);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
275 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
276
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
277 BOOL GetImageList(PBUTTON_IMAGELIST pButtonImagelist) const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
278 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
279 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
280 return (BOOL)::SendMessage(this->m_hWnd, BCM_GETIMAGELIST, 0, (LPARAM)pButtonImagelist);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
281 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
282
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
283 BOOL SetImageList(PBUTTON_IMAGELIST pButtonImagelist)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
284 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
285 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
286 return (BOOL)::SendMessage(this->m_hWnd, BCM_SETIMAGELIST, 0, (LPARAM)pButtonImagelist);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
287 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
288
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
289 BOOL GetTextMargin(LPRECT lpRect) const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
290 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
291 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
292 return (BOOL)::SendMessage(this->m_hWnd, BCM_GETTEXTMARGIN, 0, (LPARAM)lpRect);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
293 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
294
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
295 BOOL SetTextMargin(LPRECT lpRect)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
296 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
297 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
298 return (BOOL)::SendMessage(this->m_hWnd, BCM_SETTEXTMARGIN, 0, (LPARAM)lpRect);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
299 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
300
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
301 #if (WINVER >= 0x0600)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
302 void SetDontClick(BOOL bDontClick)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
303 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
304 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
305 ::SendMessage(this->m_hWnd, BM_SETDONTCLICK, (WPARAM)bDontClick, 0L);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
306 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
307 #endif // (WINVER >= 0x0600)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
308
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
309 #if (_WIN32_WINNT >= 0x0600)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
310 BOOL SetDropDownState(BOOL bDropDown)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
311 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
312 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
313 ATLASSERT((this->GetStyle() & (BS_SPLITBUTTON | BS_DEFSPLITBUTTON)) != 0);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
314 return (BOOL)::SendMessage(this->m_hWnd, BCM_SETDROPDOWNSTATE, (WPARAM)bDropDown, 0L);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
315 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
316
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
317 BOOL GetSplitInfo(PBUTTON_SPLITINFO pSplitInfo) const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
318 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
319 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
320 ATLASSERT((this->GetStyle() & (BS_SPLITBUTTON | BS_DEFSPLITBUTTON)) != 0);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
321 return (BOOL)::SendMessage(this->m_hWnd, BCM_GETSPLITINFO, 0, (LPARAM)pSplitInfo);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
322 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
323
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
324 BOOL SetSplitInfo(PBUTTON_SPLITINFO pSplitInfo)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
325 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
326 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
327 ATLASSERT((this->GetStyle() & (BS_SPLITBUTTON | BS_DEFSPLITBUTTON)) != 0);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
328 return (BOOL)::SendMessage(this->m_hWnd, BCM_SETSPLITINFO, 0, (LPARAM)pSplitInfo);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
329 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
330
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
331 int GetNoteLength() const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
332 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
333 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
334 ATLASSERT((this->GetStyle() & (BS_COMMANDLINK | BS_DEFCOMMANDLINK)) != 0);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
335 return (int)::SendMessage(this->m_hWnd, BCM_GETNOTELENGTH, 0, 0L);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
336 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
337
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
338 BOOL GetNote(LPWSTR lpstrNoteText, int cchNoteText) const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
339 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
340 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
341 ATLASSERT((this->GetStyle() & (BS_COMMANDLINK | BS_DEFCOMMANDLINK)) != 0);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
342 return (BOOL)::SendMessage(this->m_hWnd, BCM_GETNOTE, cchNoteText, (LPARAM)lpstrNoteText);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
343 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
344
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
345 BOOL SetNote(LPCWSTR lpstrNoteText)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
346 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
347 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
348 ATLASSERT((this->GetStyle() & (BS_COMMANDLINK | BS_DEFCOMMANDLINK)) != 0);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
349 return (BOOL)::SendMessage(this->m_hWnd, BCM_SETNOTE, 0, (LPARAM)lpstrNoteText);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
350 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
351
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
352 LRESULT SetElevationRequiredState(BOOL bSet)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
353 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
354 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
355 return ::SendMessage(this->m_hWnd, BCM_SETSHIELD, 0, (LPARAM)bSet);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
356 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
357 #endif // (_WIN32_WINNT >= 0x0600)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
358
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
359 // Operations
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
360 void Click()
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
361 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
362 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
363 ::SendMessage(this->m_hWnd, BM_CLICK, 0, 0L);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
364 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
365 };
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
366
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
367 typedef CButtonT<ATL::CWindow> CButton;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
368
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
369
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
370 ///////////////////////////////////////////////////////////////////////////////
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
371 // CListBox - client side for a Windows LISTBOX control
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
372
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
373 template <class TBase>
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
374 class CListBoxT : public TBase
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
375 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
376 public:
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
377 // Constructors
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
378 CListBoxT(HWND hWnd = NULL) : TBase(hWnd)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
379 { }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
380
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
381 CListBoxT< TBase >& operator =(HWND hWnd)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
382 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
383 this->m_hWnd = hWnd;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
384 return *this;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
385 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
386
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
387 HWND Create(HWND hWndParent, ATL::_U_RECT rect = NULL, LPCTSTR szWindowName = NULL,
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
388 DWORD dwStyle = 0, DWORD dwExStyle = 0,
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
389 ATL::_U_MENUorID MenuOrID = 0U, LPVOID lpCreateParam = NULL)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
390 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
391 return TBase::Create(GetWndClassName(), hWndParent, rect.m_lpRect, szWindowName, dwStyle, dwExStyle, MenuOrID.m_hMenu, lpCreateParam);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
392 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
393
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
394 // Attributes
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
395 static LPCTSTR GetWndClassName()
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
396 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
397 return _T("LISTBOX");
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
398 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
399
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
400 // for entire listbox
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
401 int GetCount() const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
402 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
403 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
404 return (int)::SendMessage(this->m_hWnd, LB_GETCOUNT, 0, 0L);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
405 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
406
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
407 int SetCount(int cItems)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
408 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
409 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
410 ATLASSERT(((this->GetStyle() & LBS_NODATA) != 0) && ((this->GetStyle() & LBS_HASSTRINGS) == 0));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
411 return (int)::SendMessage(this->m_hWnd, LB_SETCOUNT, cItems, 0L);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
412 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
413
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
414 int GetHorizontalExtent() const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
415 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
416 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
417 return (int)::SendMessage(this->m_hWnd, LB_GETHORIZONTALEXTENT, 0, 0L);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
418 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
419
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
420 void SetHorizontalExtent(int cxExtent)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
421 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
422 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
423 ::SendMessage(this->m_hWnd, LB_SETHORIZONTALEXTENT, cxExtent, 0L);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
424 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
425
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
426 int GetTopIndex() const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
427 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
428 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
429 return (int)::SendMessage(this->m_hWnd, LB_GETTOPINDEX, 0, 0L);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
430 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
431
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
432 int SetTopIndex(int nIndex)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
433 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
434 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
435 return (int)::SendMessage(this->m_hWnd, LB_SETTOPINDEX, nIndex, 0L);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
436 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
437
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
438 LCID GetLocale() const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
439 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
440 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
441 return (LCID)::SendMessage(this->m_hWnd, LB_GETLOCALE, 0, 0L);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
442 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
443
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
444 LCID SetLocale(LCID nNewLocale)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
445 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
446 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
447 return (LCID)::SendMessage(this->m_hWnd, LB_SETLOCALE, (WPARAM)nNewLocale, 0L);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
448 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
449
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
450 DWORD GetListBoxInfo() const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
451 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
452 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
453 return (DWORD)::SendMessage(this->m_hWnd, LB_GETLISTBOXINFO, 0, 0L);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
454 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
455
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
456 // for single-selection listboxes
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
457 int GetCurSel() const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
458 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
459 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
460 ATLASSERT((this->GetStyle() & (LBS_MULTIPLESEL | LBS_EXTENDEDSEL)) == 0);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
461 return (int)::SendMessage(this->m_hWnd, LB_GETCURSEL, 0, 0L);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
462 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
463
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
464 int SetCurSel(int nSelect)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
465 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
466 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
467 ATLASSERT((this->GetStyle() & (LBS_MULTIPLESEL | LBS_EXTENDEDSEL)) == 0);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
468 return (int)::SendMessage(this->m_hWnd, LB_SETCURSEL, nSelect, 0L);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
469 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
470
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
471 // for multiple-selection listboxes
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
472 int GetSel(int nIndex) const // also works for single-selection
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
473 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
474 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
475 return (int)::SendMessage(this->m_hWnd, LB_GETSEL, nIndex, 0L);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
476 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
477
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
478 int SetSel(int nIndex, BOOL bSelect = TRUE)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
479 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
480 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
481 ATLASSERT((this->GetStyle() & (LBS_MULTIPLESEL | LBS_EXTENDEDSEL)) != 0);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
482 return (int)::SendMessage(this->m_hWnd, LB_SETSEL, bSelect, nIndex);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
483 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
484
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
485 int GetSelCount() const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
486 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
487 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
488 ATLASSERT((this->GetStyle() & (LBS_MULTIPLESEL | LBS_EXTENDEDSEL)) != 0);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
489 return (int)::SendMessage(this->m_hWnd, LB_GETSELCOUNT, 0, 0L);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
490 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
491
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
492 int GetSelItems(int nMaxItems, LPINT rgIndex) const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
493 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
494 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
495 ATLASSERT((this->GetStyle() & (LBS_MULTIPLESEL | LBS_EXTENDEDSEL)) != 0);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
496 return (int)::SendMessage(this->m_hWnd, LB_GETSELITEMS, nMaxItems, (LPARAM)rgIndex);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
497 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
498
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
499 int GetAnchorIndex() const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
500 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
501 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
502 ATLASSERT((this->GetStyle() & (LBS_MULTIPLESEL | LBS_EXTENDEDSEL)) != 0);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
503 return (int)::SendMessage(this->m_hWnd, LB_GETANCHORINDEX, 0, 0L);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
504 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
505
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
506 void SetAnchorIndex(int nIndex)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
507 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
508 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
509 ATLASSERT((this->GetStyle() & (LBS_MULTIPLESEL | LBS_EXTENDEDSEL)) != 0);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
510 ::SendMessage(this->m_hWnd, LB_SETANCHORINDEX, nIndex, 0L);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
511 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
512
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
513 int GetCaretIndex() const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
514 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
515 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
516 return (int)::SendMessage(this->m_hWnd, LB_GETCARETINDEX, 0, 0);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
517 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
518
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
519 int SetCaretIndex(int nIndex, BOOL bScroll = TRUE)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
520 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
521 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
522 return (int)::SendMessage(this->m_hWnd, LB_SETCARETINDEX, nIndex, MAKELONG(bScroll, 0));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
523 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
524
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
525 // for listbox items
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
526 DWORD_PTR GetItemData(int nIndex) const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
527 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
528 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
529 return (DWORD_PTR)::SendMessage(this->m_hWnd, LB_GETITEMDATA, nIndex, 0L);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
530 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
531
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
532 int SetItemData(int nIndex, DWORD_PTR dwItemData)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
533 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
534 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
535 return (int)::SendMessage(this->m_hWnd, LB_SETITEMDATA, nIndex, (LPARAM)dwItemData);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
536 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
537
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
538 void* GetItemDataPtr(int nIndex) const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
539 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
540 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
541 return (void*)::SendMessage(this->m_hWnd, LB_GETITEMDATA, nIndex, 0L);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
542 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
543
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
544 int SetItemDataPtr(int nIndex, void* pData)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
545 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
546 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
547 return SetItemData(nIndex, (DWORD_PTR)pData);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
548 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
549
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
550 int GetItemRect(int nIndex, LPRECT lpRect) const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
551 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
552 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
553 return (int)::SendMessage(this->m_hWnd, LB_GETITEMRECT, nIndex, (LPARAM)lpRect);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
554 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
555
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
556 int GetText(int nIndex, LPTSTR lpszBuffer) const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
557 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
558 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
559 return (int)::SendMessage(this->m_hWnd, LB_GETTEXT, nIndex, (LPARAM)lpszBuffer);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
560 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
561
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
562 #ifdef _OLEAUTO_H_
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
563 BOOL GetTextBSTR(int nIndex, BSTR& bstrText) const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
564 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
565 USES_CONVERSION;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
566 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
567 ATLASSERT(bstrText == NULL);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
568
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
569 int nLen = GetTextLen(nIndex);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
570 if(nLen == LB_ERR)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
571 return FALSE;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
572
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
573 ATL::CTempBuffer<TCHAR, _WTL_STACK_ALLOC_THRESHOLD> buff;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
574 LPTSTR lpstrText = buff.Allocate(nLen + 1);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
575 if(lpstrText == NULL)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
576 return FALSE;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
577
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
578 if(GetText(nIndex, lpstrText) == LB_ERR)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
579 return FALSE;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
580
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
581 bstrText = ::SysAllocString(T2OLE(lpstrText));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
582 return (bstrText != NULL) ? TRUE : FALSE;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
583 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
584 #endif // _OLEAUTO_H_
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
585
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
586 #ifdef __ATLSTR_H__
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
587 int GetText(int nIndex, ATL::CString& strText) const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
588 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
589 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
590 int cchLen = GetTextLen(nIndex);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
591 if(cchLen == LB_ERR)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
592 return LB_ERR;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
593 int nRet = LB_ERR;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
594 LPTSTR lpstr = strText.GetBufferSetLength(cchLen);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
595 if(lpstr != NULL)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
596 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
597 nRet = GetText(nIndex, lpstr);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
598 strText.ReleaseBuffer();
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
599 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
600 return nRet;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
601 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
602 #endif // __ATLSTR_H__
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
603
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
604 int GetTextLen(int nIndex) const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
605 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
606 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
607 return (int)::SendMessage(this->m_hWnd, LB_GETTEXTLEN, nIndex, 0L);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
608 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
609
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
610 int GetItemHeight(int nIndex) const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
611 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
612 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
613 return (int)::SendMessage(this->m_hWnd, LB_GETITEMHEIGHT, nIndex, 0L);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
614 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
615
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
616 int SetItemHeight(int nIndex, UINT cyItemHeight)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
617 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
618 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
619 return (int)::SendMessage(this->m_hWnd, LB_SETITEMHEIGHT, nIndex, MAKELONG(cyItemHeight, 0));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
620 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
621
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
622 // Settable only attributes
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
623 void SetColumnWidth(int cxWidth)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
624 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
625 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
626 ::SendMessage(this->m_hWnd, LB_SETCOLUMNWIDTH, cxWidth, 0L);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
627 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
628
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
629 BOOL SetTabStops(int nTabStops, LPINT rgTabStops)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
630 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
631 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
632 ATLASSERT((this->GetStyle() & LBS_USETABSTOPS) != 0);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
633 return (BOOL)::SendMessage(this->m_hWnd, LB_SETTABSTOPS, nTabStops, (LPARAM)rgTabStops);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
634 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
635
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
636 BOOL SetTabStops()
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
637 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
638 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
639 ATLASSERT((this->GetStyle() & LBS_USETABSTOPS) != 0);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
640 return (BOOL)::SendMessage(this->m_hWnd, LB_SETTABSTOPS, 0, 0L);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
641 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
642
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
643 BOOL SetTabStops(const int& cxEachStop) // takes an 'int'
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
644 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
645 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
646 ATLASSERT((this->GetStyle() & LBS_USETABSTOPS) != 0);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
647 return (BOOL)::SendMessage(this->m_hWnd, LB_SETTABSTOPS, 1, (LPARAM)(LPINT)&cxEachStop);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
648 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
649
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
650 // Operations
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
651 int InitStorage(int nItems, UINT nBytes)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
652 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
653 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
654 return (int)::SendMessage(this->m_hWnd, LB_INITSTORAGE, (WPARAM)nItems, nBytes);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
655 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
656
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
657 void ResetContent()
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
658 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
659 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
660 ::SendMessage(this->m_hWnd, LB_RESETCONTENT, 0, 0L);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
661 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
662
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
663 UINT ItemFromPoint(POINT pt, BOOL& bOutside) const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
664 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
665 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
666 DWORD dw = (DWORD)::SendMessage(this->m_hWnd, LB_ITEMFROMPOINT, 0, MAKELPARAM(pt.x, pt.y));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
667 bOutside = (BOOL)HIWORD(dw);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
668 return (UINT)LOWORD(dw);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
669 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
670
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
671 // manipulating listbox items
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
672 int AddString(LPCTSTR lpszItem)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
673 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
674 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
675 return (int)::SendMessage(this->m_hWnd, LB_ADDSTRING, 0, (LPARAM)lpszItem);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
676 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
677
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
678 int DeleteString(UINT nIndex)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
679 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
680 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
681 return (int)::SendMessage(this->m_hWnd, LB_DELETESTRING, nIndex, 0L);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
682 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
683
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
684 int InsertString(int nIndex, LPCTSTR lpszItem)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
685 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
686 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
687 return (int)::SendMessage(this->m_hWnd, LB_INSERTSTRING, nIndex, (LPARAM)lpszItem);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
688 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
689
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
690 int Dir(UINT attr, LPCTSTR lpszWildCard)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
691 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
692 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
693 return (int)::SendMessage(this->m_hWnd, LB_DIR, attr, (LPARAM)lpszWildCard);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
694 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
695
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
696 int AddFile(LPCTSTR lpstrFileName)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
697 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
698 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
699 return (int)::SendMessage(this->m_hWnd, LB_ADDFILE, 0, (LPARAM)lpstrFileName);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
700 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
701
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
702 // selection helpers
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
703 int FindString(int nStartAfter, LPCTSTR lpszItem) const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
704 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
705 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
706 return (int)::SendMessage(this->m_hWnd, LB_FINDSTRING, nStartAfter, (LPARAM)lpszItem);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
707 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
708
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
709 int FindStringExact(int nIndexStart, LPCTSTR lpszFind) const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
710 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
711 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
712 return (int)::SendMessage(this->m_hWnd, LB_FINDSTRINGEXACT, nIndexStart, (LPARAM)lpszFind);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
713 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
714
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
715 int SelectString(int nStartAfter, LPCTSTR lpszItem)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
716 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
717 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
718 return (int)::SendMessage(this->m_hWnd, LB_SELECTSTRING, nStartAfter, (LPARAM)lpszItem);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
719 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
720
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
721 int SelItemRange(BOOL bSelect, int nFirstItem, int nLastItem)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
722 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
723 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
724 ATLASSERT((this->GetStyle() & (LBS_MULTIPLESEL | LBS_EXTENDEDSEL)) != 0);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
725 ATLASSERT(nFirstItem <= nLastItem);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
726 return bSelect ? (int)::SendMessage(this->m_hWnd, LB_SELITEMRANGEEX, nFirstItem, nLastItem) : (int)::SendMessage(this->m_hWnd, LB_SELITEMRANGEEX, nLastItem, nFirstItem);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
727 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
728 };
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
729
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
730 typedef CListBoxT<ATL::CWindow> CListBox;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
731
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
732
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
733 ///////////////////////////////////////////////////////////////////////////////
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
734 // CComboBox - client side for a Windows COMBOBOX control
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
735
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
736 template <class TBase>
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
737 class CComboBoxT : public TBase
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
738 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
739 public:
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
740 // Constructors
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
741 CComboBoxT(HWND hWnd = NULL) : TBase(hWnd)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
742 { }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
743
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
744 CComboBoxT< TBase >& operator =(HWND hWnd)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
745 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
746 this->m_hWnd = hWnd;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
747 return *this;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
748 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
749
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
750 HWND Create(HWND hWndParent, ATL::_U_RECT rect = NULL, LPCTSTR szWindowName = NULL,
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
751 DWORD dwStyle = 0, DWORD dwExStyle = 0,
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
752 ATL::_U_MENUorID MenuOrID = 0U, LPVOID lpCreateParam = NULL)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
753 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
754 return TBase::Create(GetWndClassName(), hWndParent, rect.m_lpRect, szWindowName, dwStyle, dwExStyle, MenuOrID.m_hMenu, lpCreateParam);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
755 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
756
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
757 // Attributes
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
758 static LPCTSTR GetWndClassName()
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
759 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
760 return _T("COMBOBOX");
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
761 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
762
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
763 // for entire combo box
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
764 int GetCount() const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
765 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
766 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
767 return (int)::SendMessage(this->m_hWnd, CB_GETCOUNT, 0, 0L);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
768 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
769
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
770 int GetCurSel() const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
771 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
772 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
773 return (int)::SendMessage(this->m_hWnd, CB_GETCURSEL, 0, 0L);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
774 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
775
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
776 int SetCurSel(int nSelect)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
777 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
778 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
779 return (int)::SendMessage(this->m_hWnd, CB_SETCURSEL, nSelect, 0L);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
780 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
781
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
782 LCID GetLocale() const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
783 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
784 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
785 return (LCID)::SendMessage(this->m_hWnd, CB_GETLOCALE, 0, 0L);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
786 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
787
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
788 LCID SetLocale(LCID nNewLocale)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
789 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
790 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
791 return (LCID)::SendMessage(this->m_hWnd, CB_SETLOCALE, (WPARAM)nNewLocale, 0L);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
792 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
793
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
794 int GetTopIndex() const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
795 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
796 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
797 return (int)::SendMessage(this->m_hWnd, CB_GETTOPINDEX, 0, 0L);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
798 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
799
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
800 int SetTopIndex(int nIndex)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
801 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
802 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
803 return (int)::SendMessage(this->m_hWnd, CB_SETTOPINDEX, nIndex, 0L);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
804 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
805
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
806 UINT GetHorizontalExtent() const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
807 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
808 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
809 return (UINT)::SendMessage(this->m_hWnd, CB_GETHORIZONTALEXTENT, 0, 0L);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
810 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
811
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
812 void SetHorizontalExtent(UINT nExtent)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
813 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
814 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
815 ::SendMessage(this->m_hWnd, CB_SETHORIZONTALEXTENT, nExtent, 0L);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
816 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
817
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
818 int GetDroppedWidth() const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
819 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
820 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
821 return (int)::SendMessage(this->m_hWnd, CB_GETDROPPEDWIDTH, 0, 0L);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
822 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
823
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
824 int SetDroppedWidth(UINT nWidth)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
825 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
826 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
827 return (int)::SendMessage(this->m_hWnd, CB_SETDROPPEDWIDTH, nWidth, 0L);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
828 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
829
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
830 BOOL GetComboBoxInfo(PCOMBOBOXINFO pComboBoxInfo) const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
831 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
832 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
833 return (BOOL)::SendMessage(this->m_hWnd, CB_GETCOMBOBOXINFO, 0, (LPARAM)pComboBoxInfo);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
834 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
835
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
836 // for edit control
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
837 DWORD GetEditSel() const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
838 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
839 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
840 return (DWORD)::SendMessage(this->m_hWnd, CB_GETEDITSEL, 0, 0L);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
841 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
842
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
843 BOOL SetEditSel(int nStartChar, int nEndChar)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
844 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
845 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
846 return (BOOL)::SendMessage(this->m_hWnd, CB_SETEDITSEL, 0, MAKELONG(nStartChar, nEndChar));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
847 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
848
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
849 // for combobox item
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
850 DWORD_PTR GetItemData(int nIndex) const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
851 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
852 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
853 return (DWORD_PTR)::SendMessage(this->m_hWnd, CB_GETITEMDATA, nIndex, 0L);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
854 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
855
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
856 int SetItemData(int nIndex, DWORD_PTR dwItemData)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
857 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
858 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
859 return (int)::SendMessage(this->m_hWnd, CB_SETITEMDATA, nIndex, (LPARAM)dwItemData);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
860 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
861
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
862 void* GetItemDataPtr(int nIndex) const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
863 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
864 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
865 return (void*)GetItemData(nIndex);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
866 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
867
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
868 int SetItemDataPtr(int nIndex, void* pData)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
869 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
870 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
871 return SetItemData(nIndex, (DWORD_PTR)pData);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
872 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
873
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
874 int GetLBText(int nIndex, LPTSTR lpszText) const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
875 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
876 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
877 return (int)::SendMessage(this->m_hWnd, CB_GETLBTEXT, nIndex, (LPARAM)lpszText);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
878 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
879
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
880 BOOL GetLBTextBSTR(int nIndex, BSTR& bstrText) const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
881 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
882 USES_CONVERSION;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
883 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
884 ATLASSERT(bstrText == NULL);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
885
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
886 int nLen = GetLBTextLen(nIndex);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
887 if(nLen == CB_ERR)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
888 return FALSE;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
889
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
890 ATL::CTempBuffer<TCHAR, _WTL_STACK_ALLOC_THRESHOLD> buff;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
891 LPTSTR lpstrText = buff.Allocate(nLen + 1);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
892 if(lpstrText == NULL)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
893 return FALSE;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
894
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
895 if(GetLBText(nIndex, lpstrText) == CB_ERR)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
896 return FALSE;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
897
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
898 bstrText = ::SysAllocString(T2OLE(lpstrText));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
899 return (bstrText != NULL) ? TRUE : FALSE;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
900 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
901
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
902 #ifdef __ATLSTR_H__
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
903 int GetLBText(int nIndex, ATL::CString& strText) const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
904 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
905 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
906 int cchLen = GetLBTextLen(nIndex);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
907 if(cchLen == CB_ERR)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
908 return CB_ERR;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
909 int nRet = CB_ERR;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
910 LPTSTR lpstr = strText.GetBufferSetLength(cchLen);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
911 if(lpstr != NULL)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
912 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
913 nRet = GetLBText(nIndex, lpstr);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
914 strText.ReleaseBuffer();
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
915 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
916 return nRet;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
917 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
918 #endif // __ATLSTR_H__
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
919
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
920 int GetLBTextLen(int nIndex) const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
921 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
922 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
923 return (int)::SendMessage(this->m_hWnd, CB_GETLBTEXTLEN, nIndex, 0L);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
924 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
925
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
926 int GetItemHeight(int nIndex) const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
927 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
928 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
929 return (int)::SendMessage(this->m_hWnd, CB_GETITEMHEIGHT, nIndex, 0L);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
930 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
931
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
932 int SetItemHeight(int nIndex, UINT cyItemHeight)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
933 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
934 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
935 return (int)::SendMessage(this->m_hWnd, CB_SETITEMHEIGHT, nIndex, MAKELONG(cyItemHeight, 0));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
936 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
937
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
938 BOOL GetExtendedUI() const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
939 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
940 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
941 return (BOOL)::SendMessage(this->m_hWnd, CB_GETEXTENDEDUI, 0, 0L);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
942 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
943
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
944 int SetExtendedUI(BOOL bExtended = TRUE)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
945 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
946 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
947 return (int)::SendMessage(this->m_hWnd, CB_SETEXTENDEDUI, bExtended, 0L);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
948 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
949
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
950 void GetDroppedControlRect(LPRECT lprect) const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
951 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
952 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
953 ::SendMessage(this->m_hWnd, CB_GETDROPPEDCONTROLRECT, 0, (LPARAM)lprect);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
954 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
955
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
956 BOOL GetDroppedState() const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
957 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
958 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
959 return (BOOL)::SendMessage(this->m_hWnd, CB_GETDROPPEDSTATE, 0, 0L);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
960 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
961
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
962 int GetMinVisible() const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
963 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
964 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
965 return (int)::SendMessage(this->m_hWnd, CB_GETMINVISIBLE, 0, 0L);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
966 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
967
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
968 BOOL SetMinVisible(int nMinVisible)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
969 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
970 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
971 return (BOOL)::SendMessage(this->m_hWnd, CB_SETMINVISIBLE, nMinVisible, 0L);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
972 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
973
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
974 // Vista only
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
975 BOOL GetCueBannerText(LPWSTR lpwText, int cchText) const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
976 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
977 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
978 return (BOOL)::SendMessage(this->m_hWnd, CB_GETCUEBANNER, (WPARAM)lpwText, cchText);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
979 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
980
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
981 // Vista only
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
982 BOOL SetCueBannerText(LPCWSTR lpcwText)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
983 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
984 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
985 return (BOOL)::SendMessage(this->m_hWnd, CB_SETCUEBANNER, 0, (LPARAM)lpcwText);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
986 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
987
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
988 // Operations
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
989 int InitStorage(int nItems, UINT nBytes)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
990 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
991 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
992 return (int)::SendMessage(this->m_hWnd, CB_INITSTORAGE, (WPARAM)nItems, nBytes);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
993 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
994
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
995 void ResetContent()
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
996 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
997 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
998 ::SendMessage(this->m_hWnd, CB_RESETCONTENT, 0, 0L);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
999 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1000
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1001 // for edit control
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1002 BOOL LimitText(int nMaxChars)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1003 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1004 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1005 return (BOOL)::SendMessage(this->m_hWnd, CB_LIMITTEXT, nMaxChars, 0L);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1006 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1007
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1008 // for drop-down combo boxes
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1009 void ShowDropDown(BOOL bShowIt = TRUE)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1010 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1011 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1012 ::SendMessage(this->m_hWnd, CB_SHOWDROPDOWN, bShowIt, 0L);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1013 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1014
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1015 // manipulating listbox items
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1016 int AddString(LPCTSTR lpszString)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1017 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1018 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1019 return (int)::SendMessage(this->m_hWnd, CB_ADDSTRING, 0, (LPARAM)lpszString);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1020 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1021
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1022 int DeleteString(UINT nIndex)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1023 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1024 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1025 return (int)::SendMessage(this->m_hWnd, CB_DELETESTRING, nIndex, 0L);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1026 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1027
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1028 int InsertString(int nIndex, LPCTSTR lpszString)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1029 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1030 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1031 return (int)::SendMessage(this->m_hWnd, CB_INSERTSTRING, nIndex, (LPARAM)lpszString);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1032 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1033
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1034 int Dir(UINT attr, LPCTSTR lpszWildCard)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1035 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1036 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1037 return (int)::SendMessage(this->m_hWnd, CB_DIR, attr, (LPARAM)lpszWildCard);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1038 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1039
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1040 // selection helpers
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1041 int FindString(int nStartAfter, LPCTSTR lpszString) const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1042 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1043 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1044 return (int)::SendMessage(this->m_hWnd, CB_FINDSTRING, nStartAfter, (LPARAM)lpszString);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1045 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1046
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1047 int FindStringExact(int nIndexStart, LPCTSTR lpszFind) const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1048 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1049 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1050 return (int)::SendMessage(this->m_hWnd, CB_FINDSTRINGEXACT, nIndexStart, (LPARAM)lpszFind);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1051 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1052
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1053 int SelectString(int nStartAfter, LPCTSTR lpszString)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1054 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1055 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1056 return (int)::SendMessage(this->m_hWnd, CB_SELECTSTRING, nStartAfter, (LPARAM)lpszString);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1057 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1058
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1059 // Clipboard operations
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1060 void Clear()
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1061 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1062 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1063 ::SendMessage(this->m_hWnd, WM_CLEAR, 0, 0L);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1064 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1065
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1066 void Copy()
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1067 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1068 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1069 ::SendMessage(this->m_hWnd, WM_COPY, 0, 0L);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1070 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1071
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1072 void Cut()
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1073 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1074 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1075 ::SendMessage(this->m_hWnd, WM_CUT, 0, 0L);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1076 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1077
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1078 void Paste()
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1079 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1080 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1081 ::SendMessage(this->m_hWnd, WM_PASTE, 0, 0L);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1082 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1083 };
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1084
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1085 typedef CComboBoxT<ATL::CWindow> CComboBox;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1086
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1087
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1088 ///////////////////////////////////////////////////////////////////////////////
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1089 // CEdit - client side for a Windows EDIT control
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1090
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1091 template <class TBase>
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1092 class CEditT : public TBase
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1093 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1094 public:
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1095 // Constructors
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1096 CEditT(HWND hWnd = NULL) : TBase(hWnd)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1097 { }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1098
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1099 CEditT< TBase >& operator =(HWND hWnd)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1100 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1101 this->m_hWnd = hWnd;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1102 return *this;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1103 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1104
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1105 HWND Create(HWND hWndParent, ATL::_U_RECT rect = NULL, LPCTSTR szWindowName = NULL,
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1106 DWORD dwStyle = 0, DWORD dwExStyle = 0,
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1107 ATL::_U_MENUorID MenuOrID = 0U, LPVOID lpCreateParam = NULL)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1108 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1109 return TBase::Create(GetWndClassName(), hWndParent, rect.m_lpRect, szWindowName, dwStyle, dwExStyle, MenuOrID.m_hMenu, lpCreateParam);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1110 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1111
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1112 // Attributes
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1113 static LPCTSTR GetWndClassName()
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1114 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1115 return _T("EDIT");
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1116 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1117
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1118 BOOL CanUndo() const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1119 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1120 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1121 return (BOOL)::SendMessage(this->m_hWnd, EM_CANUNDO, 0, 0L);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1122 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1123
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1124 int GetLineCount() const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1125 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1126 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1127 return (int)::SendMessage(this->m_hWnd, EM_GETLINECOUNT, 0, 0L);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1128 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1129
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1130 BOOL GetModify() const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1131 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1132 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1133 return (BOOL)::SendMessage(this->m_hWnd, EM_GETMODIFY, 0, 0L);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1134 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1135
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1136 void SetModify(BOOL bModified = TRUE)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1137 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1138 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1139 ::SendMessage(this->m_hWnd, EM_SETMODIFY, bModified, 0L);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1140 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1141
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1142 void GetRect(LPRECT lpRect) const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1143 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1144 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1145 ::SendMessage(this->m_hWnd, EM_GETRECT, 0, (LPARAM)lpRect);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1146 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1147
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1148 DWORD GetSel() const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1149 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1150 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1151 return (DWORD)::SendMessage(this->m_hWnd, EM_GETSEL, 0, 0L);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1152 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1153
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1154 void GetSel(int& nStartChar, int& nEndChar) const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1155 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1156 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1157 ::SendMessage(this->m_hWnd, EM_GETSEL, (WPARAM)&nStartChar, (LPARAM)&nEndChar);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1158 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1159
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1160 HLOCAL GetHandle() const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1161 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1162 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1163 return (HLOCAL)::SendMessage(this->m_hWnd, EM_GETHANDLE, 0, 0L);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1164 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1165
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1166 void SetHandle(HLOCAL hBuffer)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1167 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1168 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1169 ::SendMessage(this->m_hWnd, EM_SETHANDLE, (WPARAM)hBuffer, 0L);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1170 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1171
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1172 DWORD GetMargins() const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1173 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1174 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1175 return (DWORD)::SendMessage(this->m_hWnd, EM_GETMARGINS, 0, 0L);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1176 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1177
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1178 void GetMargins(UINT& nLeft, UINT& nRight) const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1179 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1180 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1181 DWORD dwRet = (DWORD)::SendMessage(this->m_hWnd, EM_GETMARGINS, 0, 0L);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1182 nLeft = LOWORD(dwRet);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1183 nRight = HIWORD(dwRet);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1184 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1185
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1186 void SetMargins(UINT nLeft, UINT nRight, WORD wFlags = EC_LEFTMARGIN | EC_RIGHTMARGIN)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1187 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1188 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1189 ::SendMessage(this->m_hWnd, EM_SETMARGINS, wFlags, MAKELONG(nLeft, nRight));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1190 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1191
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1192 UINT GetLimitText() const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1193 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1194 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1195 return (UINT)::SendMessage(this->m_hWnd, EM_GETLIMITTEXT, 0, 0L);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1196 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1197
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1198 void SetLimitText(UINT nMax)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1199 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1200 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1201 ::SendMessage(this->m_hWnd, EM_SETLIMITTEXT, nMax, 0L);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1202 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1203
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1204 POINT PosFromChar(UINT nChar) const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1205 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1206 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1207 DWORD dwRet = (DWORD)::SendMessage(this->m_hWnd, EM_POSFROMCHAR, nChar, 0);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1208 POINT point = { GET_X_LPARAM(dwRet), GET_Y_LPARAM(dwRet) };
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1209 return point;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1210 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1211
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1212 int CharFromPos(POINT pt, int* pLine = NULL) const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1213 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1214 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1215 DWORD dwRet = (DWORD)::SendMessage(this->m_hWnd, EM_CHARFROMPOS, 0, MAKELPARAM(pt.x, pt.y));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1216 if(pLine != NULL)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1217 *pLine = (int)(short)HIWORD(dwRet);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1218 return (int)(short)LOWORD(dwRet);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1219 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1220
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1221 // NOTE: first word in lpszBuffer must contain the size of the buffer!
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1222 int GetLine(int nIndex, LPTSTR lpszBuffer) const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1223 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1224 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1225 return (int)::SendMessage(this->m_hWnd, EM_GETLINE, nIndex, (LPARAM)lpszBuffer);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1226 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1227
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1228 int GetLine(int nIndex, LPTSTR lpszBuffer, int nMaxLength) const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1229 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1230 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1231 *(LPWORD)lpszBuffer = (WORD)nMaxLength;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1232 return (int)::SendMessage(this->m_hWnd, EM_GETLINE, nIndex, (LPARAM)lpszBuffer);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1233 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1234
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1235 TCHAR GetPasswordChar() const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1236 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1237 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1238 return (TCHAR)::SendMessage(this->m_hWnd, EM_GETPASSWORDCHAR, 0, 0L);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1239 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1240
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1241 void SetPasswordChar(TCHAR ch)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1242 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1243 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1244 ::SendMessage(this->m_hWnd, EM_SETPASSWORDCHAR, ch, 0L);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1245 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1246
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1247 EDITWORDBREAKPROC GetWordBreakProc() const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1248 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1249 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1250 return (EDITWORDBREAKPROC)::SendMessage(this->m_hWnd, EM_GETWORDBREAKPROC, 0, 0L);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1251 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1252
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1253 void SetWordBreakProc(EDITWORDBREAKPROC ewbprc)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1254 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1255 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1256 ::SendMessage(this->m_hWnd, EM_SETWORDBREAKPROC, 0, (LPARAM)ewbprc);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1257 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1258
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1259 int GetFirstVisibleLine() const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1260 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1261 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1262 return (int)::SendMessage(this->m_hWnd, EM_GETFIRSTVISIBLELINE, 0, 0L);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1263 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1264
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1265 int GetThumb() const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1266 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1267 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1268 ATLASSERT((this->GetStyle() & ES_MULTILINE) != 0);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1269 return (int)::SendMessage(this->m_hWnd, EM_GETTHUMB, 0, 0L);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1270 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1271
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1272 BOOL SetReadOnly(BOOL bReadOnly = TRUE)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1273 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1274 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1275 return (BOOL)::SendMessage(this->m_hWnd, EM_SETREADONLY, bReadOnly, 0L);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1276 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1277
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1278 UINT GetImeStatus(UINT uStatus) const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1279 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1280 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1281 return (UINT)::SendMessage(this->m_hWnd, EM_GETIMESTATUS, uStatus, 0L);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1282 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1283
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1284 UINT SetImeStatus(UINT uStatus, UINT uData)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1285 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1286 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1287 return (UINT)::SendMessage(this->m_hWnd, EM_SETIMESTATUS, uStatus, uData);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1288 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1289
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1290 BOOL GetCueBannerText(LPCWSTR lpstrText, int cchText) const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1291 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1292 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1293 return (BOOL)::SendMessage(this->m_hWnd, EM_GETCUEBANNER, (WPARAM)lpstrText, cchText);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1294 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1295
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1296 // bKeepWithFocus - Vista only
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1297 BOOL SetCueBannerText(LPCWSTR lpstrText, BOOL bKeepWithFocus = FALSE)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1298 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1299 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1300 return (BOOL)::SendMessage(this->m_hWnd, EM_SETCUEBANNER, (WPARAM)bKeepWithFocus, (LPARAM)(lpstrText));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1301 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1302
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1303 // Operations
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1304 void EmptyUndoBuffer()
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1305 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1306 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1307 ::SendMessage(this->m_hWnd, EM_EMPTYUNDOBUFFER, 0, 0L);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1308 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1309
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1310 BOOL FmtLines(BOOL bAddEOL)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1311 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1312 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1313 return (BOOL)::SendMessage(this->m_hWnd, EM_FMTLINES, bAddEOL, 0L);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1314 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1315
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1316 void LimitText(int nChars = 0)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1317 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1318 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1319 ::SendMessage(this->m_hWnd, EM_LIMITTEXT, nChars, 0L);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1320 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1321
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1322 int LineFromChar(int nIndex = -1) const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1323 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1324 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1325 return (int)::SendMessage(this->m_hWnd, EM_LINEFROMCHAR, nIndex, 0L);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1326 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1327
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1328 int LineIndex(int nLine = -1) const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1329 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1330 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1331 return (int)::SendMessage(this->m_hWnd, EM_LINEINDEX, nLine, 0L);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1332 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1333
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1334 int LineLength(int nLine = -1) const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1335 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1336 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1337 return (int)::SendMessage(this->m_hWnd, EM_LINELENGTH, nLine, 0L);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1338 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1339
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1340 void LineScroll(int nLines, int nChars = 0)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1341 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1342 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1343 ::SendMessage(this->m_hWnd, EM_LINESCROLL, nChars, nLines);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1344 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1345
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1346 void ReplaceSel(LPCTSTR lpszNewText, BOOL bCanUndo = FALSE)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1347 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1348 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1349 ::SendMessage(this->m_hWnd, EM_REPLACESEL, (WPARAM) bCanUndo, (LPARAM)lpszNewText);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1350 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1351
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1352 void SetRect(LPCRECT lpRect)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1353 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1354 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1355 ::SendMessage(this->m_hWnd, EM_SETRECT, 0, (LPARAM)lpRect);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1356 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1357
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1358 void SetRectNP(LPCRECT lpRect)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1359 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1360 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1361 ::SendMessage(this->m_hWnd, EM_SETRECTNP, 0, (LPARAM)lpRect);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1362 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1363
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1364 void SetSel(DWORD dwSelection, BOOL bNoScroll = FALSE)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1365 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1366 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1367 ::SendMessage(this->m_hWnd, EM_SETSEL, LOWORD(dwSelection), HIWORD(dwSelection));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1368 if(!bNoScroll)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1369 ::SendMessage(this->m_hWnd, EM_SCROLLCARET, 0, 0L);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1370 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1371
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1372 void SetSel(int nStartChar, int nEndChar, BOOL bNoScroll = FALSE)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1373 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1374 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1375 ::SendMessage(this->m_hWnd, EM_SETSEL, nStartChar, nEndChar);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1376 if(!bNoScroll)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1377 ::SendMessage(this->m_hWnd, EM_SCROLLCARET, 0, 0L);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1378 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1379
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1380 void SetSelAll(BOOL bNoScroll = FALSE)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1381 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1382 SetSel(0, -1, bNoScroll);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1383 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1384
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1385 void SetSelNone(BOOL bNoScroll = FALSE)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1386 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1387 SetSel(-1, 0, bNoScroll);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1388 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1389
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1390 BOOL SetTabStops(int nTabStops, LPINT rgTabStops)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1391 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1392 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1393 return (BOOL)::SendMessage(this->m_hWnd, EM_SETTABSTOPS, nTabStops, (LPARAM)rgTabStops);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1394 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1395
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1396 BOOL SetTabStops()
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1397 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1398 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1399 return (BOOL)::SendMessage(this->m_hWnd, EM_SETTABSTOPS, 0, 0L);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1400 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1401
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1402 BOOL SetTabStops(const int& cxEachStop) // takes an 'int'
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1403 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1404 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1405 return (BOOL)::SendMessage(this->m_hWnd, EM_SETTABSTOPS, 1, (LPARAM)(LPINT)&cxEachStop);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1406 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1407
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1408 void ScrollCaret()
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1409 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1410 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1411 ::SendMessage(this->m_hWnd, EM_SCROLLCARET, 0, 0L);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1412 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1413
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1414 int Scroll(int nScrollAction)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1415 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1416 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1417 ATLASSERT((this->GetStyle() & ES_MULTILINE) != 0);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1418 LRESULT lRet = ::SendMessage(this->m_hWnd, EM_SCROLL, nScrollAction, 0L);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1419 if(!(BOOL)HIWORD(lRet))
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1420 return -1; // failed
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1421 return (int)(short)LOWORD(lRet);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1422
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1423 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1424
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1425 void InsertText(int nInsertAfterChar, LPCTSTR lpstrText, BOOL bNoScroll = FALSE, BOOL bCanUndo = FALSE)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1426 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1427 SetSel(nInsertAfterChar, nInsertAfterChar, bNoScroll);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1428 ReplaceSel(lpstrText, bCanUndo);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1429 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1430
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1431 void AppendText(LPCTSTR lpstrText, BOOL bNoScroll = FALSE, BOOL bCanUndo = FALSE)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1432 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1433 InsertText(this->GetWindowTextLength(), lpstrText, bNoScroll, bCanUndo);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1434 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1435
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1436 BOOL ShowBalloonTip(PEDITBALLOONTIP pEditBaloonTip)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1437 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1438 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1439 return (BOOL)::SendMessage(this->m_hWnd, EM_SHOWBALLOONTIP, 0, (LPARAM)pEditBaloonTip);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1440 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1441
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1442 BOOL HideBalloonTip()
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1443 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1444 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1445 return (BOOL)::SendMessage(this->m_hWnd, EM_HIDEBALLOONTIP, 0, 0L);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1446 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1447
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1448 #if (_WIN32_WINNT >= 0x0600)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1449 DWORD GetHilite() const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1450 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1451 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1452 return (DWORD)::SendMessage(this->m_hWnd, EM_GETHILITE, 0, 0L);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1453 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1454
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1455 void GetHilite(int& nStartChar, int& nEndChar) const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1456 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1457 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1458 DWORD dwRet = (DWORD)::SendMessage(this->m_hWnd, EM_GETHILITE, 0, 0L);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1459 nStartChar = (int)(short)LOWORD(dwRet);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1460 nEndChar = (int)(short)HIWORD(dwRet);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1461 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1462
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1463 void SetHilite(int nStartChar, int nEndChar)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1464 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1465 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1466 ::SendMessage(this->m_hWnd, EM_SETHILITE, nStartChar, nEndChar);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1467 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1468 #endif // (_WIN32_WINNT >= 0x0600)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1469
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1470 // Clipboard operations
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1471 BOOL Undo()
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1472 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1473 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1474 return (BOOL)::SendMessage(this->m_hWnd, EM_UNDO, 0, 0L);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1475 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1476
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1477 void Clear()
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1478 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1479 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1480 ::SendMessage(this->m_hWnd, WM_CLEAR, 0, 0L);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1481 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1482
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1483 void Copy()
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1484 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1485 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1486 ::SendMessage(this->m_hWnd, WM_COPY, 0, 0L);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1487 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1488
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1489 void Cut()
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1490 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1491 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1492 ::SendMessage(this->m_hWnd, WM_CUT, 0, 0L);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1493 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1494
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1495 void Paste()
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1496 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1497 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1498 ::SendMessage(this->m_hWnd, WM_PASTE, 0, 0L);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1499 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1500
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1501 // New messages added in Windows 10.0.17763
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1502 #if defined(NTDDI_VERSION) && defined(NTDDI_WIN10_RS5) && (NTDDI_VERSION >= NTDDI_WIN10_RS5)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1503 DWORD SetExtendedStyle(DWORD dwStyle, DWORD dwMask)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1504 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1505 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1506 return ::SendMessage(this->m_hWnd, EM_SETEXTENDEDSTYLE, dwMask, dwStyle);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1507 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1508
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1509 DWORD GetExtendedStyle() const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1510 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1511 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1512 return ::SendMessage(this->m_hWnd, EM_GETEXTENDEDSTYLE, 0, 0L);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1513 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1514
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1515 BOOL SetEndOfLine(EC_ENDOFLINE eolType)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1516 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1517 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1518 return (BOOL)::SendMessage(this->m_hWnd, EM_SETENDOFLINE, eolType, 0L);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1519 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1520
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1521 EC_ENDOFLINE GetEndOfLine() const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1522 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1523 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1524 return (EC_ENDOFLINE)::SendMessage(this->m_hWnd, EM_GETENDOFLINE, 0, 0L);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1525 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1526
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1527 BOOL EnableSearchWeb(BOOL bEnable)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1528 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1529 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1530 return (BOOL)::SendMessage(this->m_hWnd, EM_ENABLESEARCHWEB, (WPARAM)bEnable, 0L);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1531 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1532
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1533 void SearchWeb()
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1534 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1535 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1536 ::SendMessage(this->m_hWnd, EM_SEARCHWEB, 0, 0L);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1537 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1538
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1539 BOOL SetCaretIndex(DWORD dwCaretIndex)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1540 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1541 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1542 return (BOOL)::SendMessage(this->m_hWnd, EM_SETCARETINDEX, dwCaretIndex, 0L);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1543 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1544
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1545 DWORD GetCaretIndex() const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1546 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1547 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1548 return ::SendMessage(this->m_hWnd, EM_GETCARETINDEX, 0, 0L);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1549 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1550
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1551 BOOL GetZoom(int& nNum, int& nDen) const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1552 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1553 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1554 return (BOOL)::SendMessage(this->m_hWnd, EM_GETZOOM, (WPARAM)&nNum, (LPARAM)&nDen);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1555 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1556
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1557 BOOL SetZoom(int nNum, int nDen)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1558 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1559 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1560 ATLASSERT((nNum >= 0) && (nNum <= 64));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1561 ATLASSERT((nDen >= 0) && (nDen <= 64));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1562 return (BOOL)::SendMessage(this->m_hWnd, EM_SETZOOM, nNum, nDen);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1563 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1564
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1565 DWORD GetFileLineFromChar(DWORD dwCharIndex) const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1566 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1567 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1568 return ::SendMessage(this->m_hWnd, EM_FILELINEFROMCHAR, dwCharIndex, 0L);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1569 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1570
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1571 DWORD GetFileLineIndex(DWORD dwLineNum) const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1572 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1573 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1574 return ::SendMessage(this->m_hWnd, EM_FILELINEINDEX, dwLineNum, 0L);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1575 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1576
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1577 DWORD GetFileLineLength(DWORD dwCharIndex) const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1578 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1579 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1580 return ::SendMessage(this->m_hWnd, EM_FILELINELENGTH, dwCharIndex, 0L);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1581 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1582
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1583 DWORD GetFileLine(DWORD dwLineNum, LPTSTR lpstrLine, WORD wLen) const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1584 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1585 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1586 WORD* pw = (WORD*)lpstrLine;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1587 *pw = wLen;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1588 return ::SendMessage(this->m_hWnd, EM_GETFILELINE, dwLineNum, (LPARAM)lpstrLine);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1589 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1590
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1591 #ifdef __ATLSTR_H__
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1592 ATL::CString GetFileLine(DWORD dwLineNum) const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1593 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1594 ATL::CString strLine;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1595 DWORD dwCharIndex = GetFileLineIndex(dwLineNum);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1596 if(dwCharIndex != (DWORD)-1)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1597 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1598 DWORD dwLen = GetFileLineLength(dwCharIndex);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1599 if(dwLen > 0)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1600 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1601 LPTSTR lpstrLine = strLine.GetBufferSetLength(dwLen);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1602 ATLVERIFY(GetFileLine(dwLineNum, lpstrLine, (WORD)dwLen) == dwLen);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1603 strLine.ReleaseBuffer();
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1604 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1605 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1606
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1607 return strLine;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1608 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1609 #endif // __ATLSTR_H__
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1610
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1611 DWORD GetFileLineCount() const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1612 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1613 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1614 return ::SendMessage(this->m_hWnd, EM_GETFILELINECOUNT, 0, 0L);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1615 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1616 #endif // defined(NTDDI_VERSION) && defined(NTDDI_WIN10_RS5) && (NTDDI_VERSION >= NTDDI_WIN10_RS5)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1617 };
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1618
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1619 typedef CEditT<ATL::CWindow> CEdit;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1620
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1621
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1622 ///////////////////////////////////////////////////////////////////////////////
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1623 // CEditCommands - message handlers for standard EDIT commands
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1624
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1625 // Chain to CEditCommands message map. Your class must also derive from CEdit.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1626 // Example:
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1627 // class CMyEdit : public CWindowImpl<CMyEdit, CEdit>,
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1628 // public CEditCommands<CMyEdit>
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1629 // {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1630 // public:
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1631 // BEGIN_MSG_MAP(CMyEdit)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1632 // // your handlers...
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1633 // CHAIN_MSG_MAP_ALT(CEditCommands<CMyEdit>, 1)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1634 // END_MSG_MAP()
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1635 // // other stuff...
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1636 // };
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1637
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1638 template <class T>
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1639 class CEditCommands
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1640 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1641 public:
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1642 BEGIN_MSG_MAP(CEditCommands< T >)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1643 ALT_MSG_MAP(1)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1644 COMMAND_ID_HANDLER(ID_EDIT_CLEAR, OnEditClear)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1645 COMMAND_ID_HANDLER(ID_EDIT_CLEAR_ALL, OnEditClearAll)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1646 COMMAND_ID_HANDLER(ID_EDIT_COPY, OnEditCopy)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1647 COMMAND_ID_HANDLER(ID_EDIT_CUT, OnEditCut)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1648 COMMAND_ID_HANDLER(ID_EDIT_PASTE, OnEditPaste)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1649 COMMAND_ID_HANDLER(ID_EDIT_SELECT_ALL, OnEditSelectAll)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1650 COMMAND_ID_HANDLER(ID_EDIT_UNDO, OnEditUndo)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1651 END_MSG_MAP()
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1652
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1653 LRESULT OnEditClear(WORD /*wNotifyCode*/, WORD /*wID*/, HWND /*hWndCtl*/, BOOL& /*bHandled*/)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1654 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1655 T* pT = static_cast<T*>(this);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1656 pT->Clear();
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1657 return 0;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1658 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1659
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1660 LRESULT OnEditClearAll(WORD /*wNotifyCode*/, WORD /*wID*/, HWND /*hWndCtl*/, BOOL& /*bHandled*/)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1661 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1662 T* pT = static_cast<T*>(this);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1663 pT->SetSel(0, -1);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1664 pT->Clear();
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1665 return 0;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1666 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1667
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1668 LRESULT OnEditCopy(WORD /*wNotifyCode*/, WORD /*wID*/, HWND /*hWndCtl*/, BOOL& /*bHandled*/)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1669 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1670 T* pT = static_cast<T*>(this);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1671 pT->Copy();
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1672 return 0;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1673 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1674
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1675 LRESULT OnEditCut(WORD /*wNotifyCode*/, WORD /*wID*/, HWND /*hWndCtl*/, BOOL& /*bHandled*/)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1676 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1677 T* pT = static_cast<T*>(this);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1678 pT->Cut();
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1679 return 0;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1680 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1681
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1682 LRESULT OnEditPaste(WORD /*wNotifyCode*/, WORD /*wID*/, HWND /*hWndCtl*/, BOOL& /*bHandled*/)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1683 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1684 T* pT = static_cast<T*>(this);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1685 pT->Paste();
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1686 return 0;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1687 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1688
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1689 LRESULT OnEditSelectAll(WORD /*wNotifyCode*/, WORD /*wID*/, HWND /*hWndCtl*/, BOOL& /*bHandled*/)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1690 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1691 T* pT = static_cast<T*>(this);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1692 pT->SetSel(0, -1);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1693 return 0;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1694 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1695
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1696 LRESULT OnEditUndo(WORD /*wNotifyCode*/, WORD /*wID*/, HWND /*hWndCtl*/, BOOL& /*bHandled*/)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1697 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1698 T* pT = static_cast<T*>(this);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1699 pT->Undo();
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1700 return 0;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1701 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1702
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1703 // State (update UI) helpers
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1704 BOOL CanCut() const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1705 { return HasSelection(); }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1706
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1707 BOOL CanCopy() const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1708 { return HasSelection(); }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1709
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1710 BOOL CanClear() const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1711 { return HasSelection(); }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1712
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1713 BOOL CanSelectAll() const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1714 { return HasText(); }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1715
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1716 BOOL CanFind() const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1717 { return HasText(); }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1718
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1719 BOOL CanRepeat() const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1720 { return HasText(); }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1721
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1722 BOOL CanReplace() const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1723 { return HasText(); }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1724
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1725 BOOL CanClearAll() const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1726 { return HasText(); }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1727
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1728 // Implementation
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1729 BOOL HasSelection() const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1730 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1731 const T* pT = static_cast<const T*>(this);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1732 int nMin = 0, nMax = 0;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1733 ::SendMessage(pT->m_hWnd, EM_GETSEL, (WPARAM)&nMin, (LPARAM)&nMax);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1734 return (nMin != nMax);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1735 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1736
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1737 BOOL HasText() const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1738 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1739 const T* pT = static_cast<const T*>(this);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1740 return (pT->GetWindowTextLength() > 0);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1741 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1742 };
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1743
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1744
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1745 ///////////////////////////////////////////////////////////////////////////////
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1746 // CScrollBar - client side for a Windows SCROLLBAR control
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1747
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1748 template <class TBase>
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1749 class CScrollBarT : public TBase
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1750 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1751 public:
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1752 // Constructors
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1753 CScrollBarT(HWND hWnd = NULL) : TBase(hWnd)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1754 { }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1755
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1756 CScrollBarT< TBase >& operator =(HWND hWnd)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1757 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1758 this->m_hWnd = hWnd;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1759 return *this;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1760 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1761
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1762 HWND Create(HWND hWndParent, ATL::_U_RECT rect = NULL, LPCTSTR szWindowName = NULL,
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1763 DWORD dwStyle = 0, DWORD dwExStyle = 0,
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1764 ATL::_U_MENUorID MenuOrID = 0U, LPVOID lpCreateParam = NULL)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1765 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1766 return TBase::Create(GetWndClassName(), hWndParent, rect.m_lpRect, szWindowName, dwStyle, dwExStyle, MenuOrID.m_hMenu, lpCreateParam);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1767 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1768
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1769 // Attributes
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1770 static LPCTSTR GetWndClassName()
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1771 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1772 return _T("SCROLLBAR");
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1773 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1774
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1775 int GetScrollPos() const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1776 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1777 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1778 return ::GetScrollPos(this->m_hWnd, SB_CTL);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1779 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1780
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1781 int SetScrollPos(int nPos, BOOL bRedraw = TRUE)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1782 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1783 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1784 return ::SetScrollPos(this->m_hWnd, SB_CTL, nPos, bRedraw);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1785 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1786
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1787 void GetScrollRange(LPINT lpMinPos, LPINT lpMaxPos) const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1788 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1789 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1790 ::GetScrollRange(this->m_hWnd, SB_CTL, lpMinPos, lpMaxPos);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1791 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1792
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1793 void SetScrollRange(int nMinPos, int nMaxPos, BOOL bRedraw = TRUE)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1794 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1795 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1796 ::SetScrollRange(this->m_hWnd, SB_CTL, nMinPos, nMaxPos, bRedraw);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1797 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1798
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1799 BOOL GetScrollInfo(LPSCROLLINFO lpScrollInfo) const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1800 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1801 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1802 return ::GetScrollInfo(this->m_hWnd, SB_CTL, lpScrollInfo);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1803 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1804
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1805 int SetScrollInfo(LPSCROLLINFO lpScrollInfo, BOOL bRedraw = TRUE)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1806 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1807 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1808 return ::SetScrollInfo(this->m_hWnd, SB_CTL, lpScrollInfo, bRedraw);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1809 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1810
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1811 int GetScrollLimit() const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1812 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1813 SCROLLINFO info = { sizeof(SCROLLINFO), SIF_RANGE | SIF_PAGE };
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1814 ::GetScrollInfo(this->m_hWnd, SB_CTL, &info);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1815 if(info.nPage > 1)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1816 info.nMax -= info.nPage - 1;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1817
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1818 return info.nMax;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1819 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1820
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1821 BOOL GetScrollBarInfo(PSCROLLBARINFO pScrollBarInfo) const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1822 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1823 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1824 return (BOOL)::SendMessage(this->m_hWnd, SBM_GETSCROLLBARINFO, 0, (LPARAM)pScrollBarInfo);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1825 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1826
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1827 // Operations
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1828 void ShowScrollBar(BOOL bShow = TRUE)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1829 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1830 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1831 ::ShowScrollBar(this->m_hWnd, SB_CTL, bShow);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1832 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1833
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1834 BOOL EnableScrollBar(UINT nArrowFlags = ESB_ENABLE_BOTH)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1835 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1836 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1837 return ::EnableScrollBar(this->m_hWnd, SB_CTL, nArrowFlags);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1838 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1839 };
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1840
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1841 typedef CScrollBarT<ATL::CWindow> CScrollBar;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1842
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1843
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1844 // --- Windows Common Controls ---
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1845
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1846 ///////////////////////////////////////////////////////////////////////////////
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1847 // CImageList
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1848
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1849 // forward declarations
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1850 template <bool t_bManaged> class CImageListT;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1851 typedef CImageListT<false> CImageList;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1852 typedef CImageListT<true> CImageListManaged;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1853
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1854
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1855 template <bool t_bManaged>
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1856 class CImageListT
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1857 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1858 public:
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1859 // Data members
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1860 HIMAGELIST m_hImageList;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1861
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1862 // Constructor/destructor/operators
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1863 CImageListT(HIMAGELIST hImageList = NULL) : m_hImageList(hImageList)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1864 { }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1865
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1866 ~CImageListT()
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1867 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1868 if(t_bManaged && (m_hImageList != NULL))
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1869 Destroy();
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1870 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1871
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1872 CImageListT<t_bManaged>& operator =(HIMAGELIST hImageList)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1873 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1874 Attach(hImageList);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1875 return *this;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1876 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1877
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1878 void Attach(HIMAGELIST hImageList)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1879 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1880 if(t_bManaged && (m_hImageList != NULL) && (m_hImageList != hImageList))
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1881 ImageList_Destroy(m_hImageList);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1882 m_hImageList = hImageList;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1883 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1884
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1885 HIMAGELIST Detach()
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1886 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1887 HIMAGELIST hImageList = m_hImageList;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1888 m_hImageList = NULL;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1889 return hImageList;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1890 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1891
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1892 operator HIMAGELIST() const { return m_hImageList; }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1893
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1894 bool IsNull() const { return (m_hImageList == NULL); }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1895
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1896 // Attributes
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1897 int GetImageCount() const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1898 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1899 ATLASSERT(m_hImageList != NULL);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1900 return ImageList_GetImageCount(m_hImageList);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1901 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1902
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1903 COLORREF GetBkColor() const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1904 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1905 ATLASSERT(m_hImageList != NULL);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1906 return ImageList_GetBkColor(m_hImageList);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1907 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1908
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1909 COLORREF SetBkColor(COLORREF cr)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1910 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1911 ATLASSERT(m_hImageList != NULL);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1912 return ImageList_SetBkColor(m_hImageList, cr);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1913 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1914
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1915 BOOL GetImageInfo(int nImage, IMAGEINFO* pImageInfo) const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1916 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1917 ATLASSERT(m_hImageList != NULL);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1918 return ImageList_GetImageInfo(m_hImageList, nImage, pImageInfo);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1919 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1920
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1921 HICON GetIcon(int nIndex, UINT uFlags = ILD_NORMAL) const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1922 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1923 ATLASSERT(m_hImageList != NULL);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1924 return ImageList_GetIcon(m_hImageList, nIndex, uFlags);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1925 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1926
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1927 BOOL GetIconSize(int& cx, int& cy) const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1928 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1929 ATLASSERT(m_hImageList != NULL);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1930 return ImageList_GetIconSize(m_hImageList, &cx, &cy);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1931 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1932
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1933 BOOL GetIconSize(SIZE& size) const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1934 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1935 ATLASSERT(m_hImageList != NULL);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1936 return ImageList_GetIconSize(m_hImageList, (int*)&size.cx, (int*)&size.cy);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1937 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1938
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1939 BOOL SetIconSize(int cx, int cy)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1940 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1941 ATLASSERT(m_hImageList != NULL);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1942 return ImageList_SetIconSize(m_hImageList, cx, cy);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1943 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1944
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1945 BOOL SetIconSize(SIZE size)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1946 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1947 ATLASSERT(m_hImageList != NULL);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1948 return ImageList_SetIconSize(m_hImageList, size.cx, size.cy);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1949 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1950
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1951 BOOL SetImageCount(UINT uNewCount)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1952 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1953 ATLASSERT(m_hImageList != NULL);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1954 return ImageList_SetImageCount(m_hImageList, uNewCount);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1955 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1956
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1957 BOOL SetOverlayImage(int nImage, int nOverlay)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1958 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1959 ATLASSERT(m_hImageList != NULL);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1960 return ImageList_SetOverlayImage(m_hImageList, nImage, nOverlay);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1961 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1962
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1963 // Operations
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1964 BOOL Create(int cx, int cy, UINT nFlags, int nInitial, int nGrow)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1965 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1966 ATLASSERT(m_hImageList == NULL);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1967 m_hImageList = ImageList_Create(cx, cy, nFlags, nInitial, nGrow);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1968 return (m_hImageList != NULL) ? TRUE : FALSE;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1969 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1970
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1971 BOOL Create(ATL::_U_STRINGorID bitmap, int cx, int nGrow, COLORREF crMask)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1972 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1973 ATLASSERT(m_hImageList == NULL);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1974 m_hImageList = ImageList_LoadBitmap(ModuleHelper::GetResourceInstance(), bitmap.m_lpstr, cx, nGrow, crMask);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1975 return (m_hImageList != NULL) ? TRUE : FALSE;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1976 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1977
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1978 BOOL CreateFromImage(ATL::_U_STRINGorID image, int cx, int nGrow, COLORREF crMask, UINT uType, UINT uFlags = LR_DEFAULTCOLOR | LR_DEFAULTSIZE)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1979 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1980 ATLASSERT(m_hImageList == NULL);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1981 m_hImageList = ImageList_LoadImage(ModuleHelper::GetResourceInstance(), image.m_lpstr, cx, nGrow, crMask, uType, uFlags);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1982 return (m_hImageList != NULL) ? TRUE : FALSE;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1983 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1984
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1985 BOOL Merge(HIMAGELIST hImageList1, int nImage1, HIMAGELIST hImageList2, int nImage2, int dx, int dy)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1986 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1987 ATLASSERT(m_hImageList == NULL);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1988 m_hImageList = ImageList_Merge(hImageList1, nImage1, hImageList2, nImage2, dx, dy);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1989 return (m_hImageList != NULL) ? TRUE : FALSE;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1990 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1991
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1992 #ifdef __IStream_INTERFACE_DEFINED__
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1993 BOOL CreateFromStream(LPSTREAM lpStream)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1994 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1995 ATLASSERT(m_hImageList == NULL);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1996 m_hImageList = ImageList_Read(lpStream);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1997 return (m_hImageList != NULL) ? TRUE : FALSE;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1998 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1999 #endif // __IStream_INTERFACE_DEFINED__
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2000
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2001 BOOL Destroy()
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2002 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2003 if (m_hImageList == NULL)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2004 return FALSE;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2005 BOOL bRet = ImageList_Destroy(m_hImageList);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2006 if(bRet)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2007 m_hImageList = NULL;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2008 return bRet;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2009 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2010
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2011 int Add(HBITMAP hBitmap, HBITMAP hBitmapMask = NULL)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2012 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2013 ATLASSERT(m_hImageList != NULL);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2014 return ImageList_Add(m_hImageList, hBitmap, hBitmapMask);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2015 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2016
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2017 int Add(HBITMAP hBitmap, COLORREF crMask)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2018 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2019 ATLASSERT(m_hImageList != NULL);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2020 return ImageList_AddMasked(m_hImageList, hBitmap, crMask);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2021 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2022
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2023 BOOL Remove(int nImage)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2024 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2025 ATLASSERT(m_hImageList != NULL);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2026 return ImageList_Remove(m_hImageList, nImage);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2027 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2028
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2029 BOOL RemoveAll()
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2030 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2031 ATLASSERT(m_hImageList != NULL);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2032 return ImageList_RemoveAll(m_hImageList);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2033 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2034
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2035 BOOL Replace(int nImage, HBITMAP hBitmap, HBITMAP hBitmapMask)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2036 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2037 ATLASSERT(m_hImageList != NULL);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2038 return ImageList_Replace(m_hImageList, nImage, hBitmap, hBitmapMask);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2039 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2040
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2041 int AddIcon(HICON hIcon)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2042 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2043 ATLASSERT(m_hImageList != NULL);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2044 return ImageList_AddIcon(m_hImageList, hIcon);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2045 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2046
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2047 int ReplaceIcon(int nImage, HICON hIcon)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2048 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2049 ATLASSERT(m_hImageList != NULL);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2050 return ImageList_ReplaceIcon(m_hImageList, nImage, hIcon);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2051 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2052
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2053 HICON ExtractIcon(int nImage)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2054 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2055 ATLASSERT(m_hImageList != NULL);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2056 return ImageList_ExtractIcon(NULL, m_hImageList, nImage);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2057 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2058
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2059 BOOL Draw(HDC hDC, int nImage, int x, int y, UINT nStyle)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2060 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2061 ATLASSERT(m_hImageList != NULL);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2062 ATLASSERT(hDC != NULL);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2063 return ImageList_Draw(m_hImageList, nImage, hDC, x, y, nStyle);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2064 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2065
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2066 BOOL Draw(HDC hDC, int nImage, POINT pt, UINT nStyle)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2067 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2068 ATLASSERT(m_hImageList != NULL);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2069 ATLASSERT(hDC != NULL);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2070 return ImageList_Draw(m_hImageList, nImage, hDC, pt.x, pt.y, nStyle);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2071 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2072
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2073 BOOL DrawEx(int nImage, HDC hDC, int x, int y, int dx, int dy, COLORREF rgbBk, COLORREF rgbFg, UINT fStyle)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2074 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2075 ATLASSERT(m_hImageList != NULL);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2076 ATLASSERT(hDC != NULL);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2077 return ImageList_DrawEx(m_hImageList, nImage, hDC, x, y, dx, dy, rgbBk, rgbFg, fStyle);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2078 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2079
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2080 BOOL DrawEx(int nImage, HDC hDC, RECT& rect, COLORREF rgbBk, COLORREF rgbFg, UINT fStyle)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2081 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2082 ATLASSERT(m_hImageList != NULL);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2083 ATLASSERT(hDC != NULL);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2084 return ImageList_DrawEx(m_hImageList, nImage, hDC, rect.left, rect.top, rect.right - rect.left, rect.bottom - rect.top, rgbBk, rgbFg, fStyle);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2085 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2086
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2087 static BOOL DrawIndirect(IMAGELISTDRAWPARAMS* pimldp)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2088 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2089 return ImageList_DrawIndirect(pimldp);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2090 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2091
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2092 BOOL Copy(int nSrc, int nDst, UINT uFlags = ILCF_MOVE)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2093 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2094 ATLASSERT(m_hImageList != NULL);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2095 return ImageList_Copy(m_hImageList, nDst, m_hImageList, nSrc, uFlags);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2096 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2097
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2098 #ifdef __IStream_INTERFACE_DEFINED__
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2099 static HIMAGELIST Read(LPSTREAM lpStream)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2100 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2101 return ImageList_Read(lpStream);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2102 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2103
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2104 BOOL Write(LPSTREAM lpStream)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2105 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2106 ATLASSERT(m_hImageList != NULL);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2107 return ImageList_Write(m_hImageList, lpStream);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2108 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2109
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2110 static HRESULT ReadEx(DWORD dwFlags, LPSTREAM lpStream, REFIID riid, PVOID* ppv)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2111 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2112 return ImageList_ReadEx(dwFlags, lpStream, riid, ppv);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2113 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2114
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2115 HRESULT WriteEx(DWORD dwFlags, LPSTREAM lpStream)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2116 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2117 ATLASSERT(m_hImageList != NULL);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2118 return ImageList_WriteEx(m_hImageList, dwFlags, lpStream);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2119 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2120 #endif // __IStream_INTERFACE_DEFINED__
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2121
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2122 // Drag operations
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2123 BOOL BeginDrag(int nImage, POINT ptHotSpot)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2124 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2125 ATLASSERT(m_hImageList != NULL);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2126 return ImageList_BeginDrag(m_hImageList, nImage, ptHotSpot.x, ptHotSpot.y);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2127 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2128
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2129 BOOL BeginDrag(int nImage, int xHotSpot, int yHotSpot)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2130 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2131 ATLASSERT(m_hImageList != NULL);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2132 return ImageList_BeginDrag(m_hImageList, nImage, xHotSpot, yHotSpot);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2133 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2134
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2135 static void EndDrag()
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2136 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2137 ImageList_EndDrag();
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2138 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2139
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2140 static BOOL DragMove(POINT pt)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2141 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2142 return ImageList_DragMove(pt.x, pt.y);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2143 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2144
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2145 static BOOL DragMove(int x, int y)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2146 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2147 return ImageList_DragMove(x, y);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2148 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2149
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2150 BOOL SetDragCursorImage(int nDrag, POINT ptHotSpot)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2151 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2152 ATLASSERT(m_hImageList != NULL);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2153 return ImageList_SetDragCursorImage(m_hImageList, nDrag, ptHotSpot.x, ptHotSpot.y);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2154 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2155
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2156 BOOL SetDragCursorImage(int nDrag, int xHotSpot, int yHotSpot)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2157 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2158 ATLASSERT(m_hImageList != NULL);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2159 return ImageList_SetDragCursorImage(m_hImageList, nDrag, xHotSpot, yHotSpot);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2160 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2161
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2162 static BOOL DragShowNolock(BOOL bShow = TRUE)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2163 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2164 return ImageList_DragShowNolock(bShow);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2165 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2166
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2167 static CImageList GetDragImage(LPPOINT lpPoint, LPPOINT lpPointHotSpot)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2168 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2169 return CImageList(ImageList_GetDragImage(lpPoint, lpPointHotSpot));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2170 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2171
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2172 static BOOL DragEnter(HWND hWnd, POINT point)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2173 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2174 return ImageList_DragEnter(hWnd, point.x, point.y);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2175 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2176
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2177 static BOOL DragEnter(HWND hWnd, int x, int y)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2178 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2179 return ImageList_DragEnter(hWnd, x, y);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2180 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2181
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2182 static BOOL DragLeave(HWND hWnd)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2183 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2184 return ImageList_DragLeave(hWnd);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2185 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2186
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2187 CImageList Duplicate() const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2188 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2189 ATLASSERT(m_hImageList != NULL);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2190 return CImageList(ImageList_Duplicate(m_hImageList));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2191 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2192
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2193 static CImageList Duplicate(HIMAGELIST hImageList)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2194 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2195 ATLASSERT(hImageList != NULL);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2196 return CImageList(ImageList_Duplicate(hImageList));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2197 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2198 };
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2199
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2200
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2201 ///////////////////////////////////////////////////////////////////////////////
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2202 // CToolTipCtrl
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2203
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2204 class CToolInfo : public TOOLINFO
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2205 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2206 public:
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2207 CToolInfo(UINT nFlags, HWND hWnd, UINT_PTR nIDTool = 0, LPRECT lpRect = NULL, LPTSTR lpstrText = LPSTR_TEXTCALLBACK, LPARAM lUserParam = NULL)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2208 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2209 Init(nFlags, hWnd, nIDTool, lpRect, lpstrText, lUserParam);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2210 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2211
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2212 operator LPTOOLINFO() { return this; }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2213
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2214 operator LPARAM() { return (LPARAM)this; }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2215
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2216 void Init(UINT nFlags, HWND hWnd, UINT_PTR nIDTool = 0, LPRECT lpRect = NULL, LPTSTR lpstrText = LPSTR_TEXTCALLBACK, LPARAM lUserParam = NULL)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2217 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2218 ATLASSERT(::IsWindow(hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2219 memset(this, 0, sizeof(TOOLINFO));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2220 cbSize = RunTimeHelper::SizeOf_TOOLINFO();
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2221 uFlags = nFlags;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2222 if(nIDTool == 0)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2223 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2224 hwnd = ::GetParent(hWnd);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2225 uFlags |= TTF_IDISHWND;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2226 uId = (UINT_PTR)hWnd;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2227 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2228 else
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2229 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2230 hwnd = hWnd;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2231 uId = nIDTool;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2232 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2233 if(lpRect != NULL)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2234 rect = *lpRect;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2235 hinst = ModuleHelper::GetResourceInstance();
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2236 lpszText = lpstrText;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2237 lParam = lUserParam;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2238 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2239 };
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2240
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2241 template <class TBase>
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2242 class CToolTipCtrlT : public TBase
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2243 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2244 public:
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2245 // Constructors
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2246 CToolTipCtrlT(HWND hWnd = NULL) : TBase(hWnd)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2247 { }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2248
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2249 CToolTipCtrlT< TBase >& operator =(HWND hWnd)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2250 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2251 this->m_hWnd = hWnd;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2252 return *this;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2253 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2254
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2255 HWND Create(HWND hWndParent, ATL::_U_RECT rect = NULL, LPCTSTR szWindowName = NULL,
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2256 DWORD dwStyle = 0, DWORD dwExStyle = 0,
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2257 ATL::_U_MENUorID MenuOrID = 0U, LPVOID lpCreateParam = NULL)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2258 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2259 return TBase::Create(GetWndClassName(), hWndParent, rect.m_lpRect, szWindowName, dwStyle, dwExStyle, MenuOrID.m_hMenu, lpCreateParam);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2260 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2261
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2262 // Attributes
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2263 static LPCTSTR GetWndClassName()
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2264 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2265 return TOOLTIPS_CLASS;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2266 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2267
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2268 void GetText(LPTOOLINFO lpToolInfo) const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2269 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2270 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2271 ::SendMessage(this->m_hWnd, TTM_GETTEXT, 0, (LPARAM)&lpToolInfo);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2272 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2273
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2274 void GetText(LPTSTR lpstrText, HWND hWnd, UINT_PTR nIDTool = 0) const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2275 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2276 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2277 ATLASSERT(hWnd != NULL);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2278 CToolInfo ti(0, hWnd, nIDTool, NULL, lpstrText);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2279 ::SendMessage(this->m_hWnd, TTM_GETTEXT, 0, ti);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2280 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2281
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2282 BOOL GetToolInfo(LPTOOLINFO lpToolInfo) const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2283 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2284 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2285 return (BOOL)::SendMessage(this->m_hWnd, TTM_GETTOOLINFO, 0, (LPARAM)lpToolInfo);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2286 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2287
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2288 BOOL GetToolInfo(HWND hWnd, UINT_PTR nIDTool, UINT* puFlags, LPRECT lpRect, LPTSTR lpstrText) const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2289 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2290 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2291 ATLASSERT(hWnd != NULL);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2292 ATLASSERT(puFlags != NULL);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2293 ATLASSERT(lpRect != NULL);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2294 CToolInfo ti(0, hWnd, nIDTool, NULL, lpstrText);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2295 BOOL bRet = (BOOL)::SendMessage(this->m_hWnd, TTM_GETTOOLINFO, 0, ti);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2296 if(bRet != FALSE)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2297 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2298 *puFlags = ti.uFlags;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2299 *lpRect = ti.rect;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2300 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2301 return bRet;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2302 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2303
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2304 void SetToolInfo(LPTOOLINFO lpToolInfo)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2305 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2306 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2307 ::SendMessage(this->m_hWnd, TTM_SETTOOLINFO, 0, (LPARAM)lpToolInfo);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2308 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2309
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2310 void SetToolRect(LPTOOLINFO lpToolInfo)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2311 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2312 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2313 ::SendMessage(this->m_hWnd, TTM_NEWTOOLRECT, 0, (LPARAM)lpToolInfo);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2314 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2315
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2316 void SetToolRect(HWND hWnd, UINT_PTR nIDTool, LPCRECT lpRect)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2317 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2318 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2319 ATLASSERT(hWnd != NULL);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2320 ATLASSERT(nIDTool != 0);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2321
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2322 CToolInfo ti(0, hWnd, nIDTool, (LPRECT)lpRect, NULL);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2323 ::SendMessage(this->m_hWnd, TTM_NEWTOOLRECT, 0, ti);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2324 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2325
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2326 int GetToolCount() const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2327 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2328 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2329 return (int)::SendMessage(this->m_hWnd, TTM_GETTOOLCOUNT, 0, 0L);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2330 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2331
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2332 int GetDelayTime(DWORD dwType) const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2333 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2334 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2335 return (int)::SendMessage(this->m_hWnd, TTM_GETDELAYTIME, dwType, 0L);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2336 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2337
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2338 void SetDelayTime(DWORD dwType, int nTime)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2339 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2340 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2341 ::SendMessage(this->m_hWnd, TTM_SETDELAYTIME, dwType, MAKELPARAM(nTime, 0));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2342 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2343
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2344 void GetMargin(LPRECT lpRect) const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2345 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2346 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2347 ::SendMessage(this->m_hWnd, TTM_GETMARGIN, 0, (LPARAM)lpRect);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2348 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2349
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2350 void SetMargin(LPRECT lpRect)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2351 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2352 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2353 ::SendMessage(this->m_hWnd, TTM_SETMARGIN, 0, (LPARAM)lpRect);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2354 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2355
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2356 int GetMaxTipWidth() const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2357 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2358 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2359 return (int)::SendMessage(this->m_hWnd, TTM_GETMAXTIPWIDTH, 0, 0L);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2360 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2361
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2362 int SetMaxTipWidth(int nWidth)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2363 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2364 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2365 return (int)::SendMessage(this->m_hWnd, TTM_SETMAXTIPWIDTH, 0, nWidth);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2366 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2367
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2368 COLORREF GetTipBkColor() const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2369 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2370 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2371 return (COLORREF)::SendMessage(this->m_hWnd, TTM_GETTIPBKCOLOR, 0, 0L);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2372 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2373
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2374 void SetTipBkColor(COLORREF clr)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2375 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2376 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2377 ::SendMessage(this->m_hWnd, TTM_SETTIPBKCOLOR, (WPARAM)clr, 0L);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2378 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2379
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2380 COLORREF GetTipTextColor() const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2381 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2382 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2383 return (COLORREF)::SendMessage(this->m_hWnd, TTM_GETTIPTEXTCOLOR, 0, 0L);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2384 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2385
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2386 void SetTipTextColor(COLORREF clr)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2387 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2388 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2389 ::SendMessage(this->m_hWnd, TTM_SETTIPTEXTCOLOR, (WPARAM)clr, 0L);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2390 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2391
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2392 BOOL GetCurrentTool(LPTOOLINFO lpToolInfo) const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2393 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2394 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2395 return (BOOL)::SendMessage(this->m_hWnd, TTM_GETCURRENTTOOL, 0, (LPARAM)lpToolInfo);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2396 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2397
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2398 SIZE GetBubbleSize(LPTOOLINFO lpToolInfo) const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2399 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2400 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2401 DWORD dwRet = (DWORD)::SendMessage(this->m_hWnd, TTM_GETBUBBLESIZE, 0, (LPARAM)lpToolInfo);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2402 SIZE size = { GET_X_LPARAM(dwRet), GET_Y_LPARAM(dwRet) };
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2403 return size;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2404 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2405
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2406 BOOL SetTitle(UINT_PTR uIcon, LPCTSTR lpstrTitle)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2407 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2408 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2409 return (BOOL)::SendMessage(this->m_hWnd, TTM_SETTITLE, uIcon, (LPARAM)lpstrTitle);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2410 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2411
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2412
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2413 BOOL SetTitle(HICON hIcon, LPCTSTR lpstrTitle)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2414 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2415 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2416 return (BOOL)::SendMessage(this->m_hWnd, TTM_SETTITLE, (WPARAM)hIcon, (LPARAM)lpstrTitle);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2417 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2418
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2419 void GetTitle(PTTGETTITLE pTTGetTitle) const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2420 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2421 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2422 ::SendMessage(this->m_hWnd, TTM_GETTITLE, 0, (LPARAM)pTTGetTitle);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2423 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2424
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2425 void SetWindowTheme(LPCWSTR lpstrTheme)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2426 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2427 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2428 ::SendMessage(this->m_hWnd, TTM_SETWINDOWTHEME, 0, (LPARAM)lpstrTheme);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2429 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2430
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2431 // Operations
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2432 void Activate(BOOL bActivate)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2433 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2434 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2435 ::SendMessage(this->m_hWnd, TTM_ACTIVATE, bActivate, 0L);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2436 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2437
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2438 BOOL AddTool(LPTOOLINFO lpToolInfo)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2439 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2440 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2441 return (BOOL)::SendMessage(this->m_hWnd, TTM_ADDTOOL, 0, (LPARAM)lpToolInfo);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2442 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2443
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2444 BOOL AddTool(HWND hWnd, ATL::_U_STRINGorID text = LPSTR_TEXTCALLBACK, LPCRECT lpRectTool = NULL, UINT_PTR nIDTool = 0)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2445 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2446 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2447 ATLASSERT(hWnd != NULL);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2448 // the toolrect and toolid must both be zero or both valid
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2449 ATLASSERT(((lpRectTool != NULL) && (nIDTool != 0)) || ((lpRectTool == NULL) && (nIDTool == 0)));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2450
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2451 CToolInfo ti(0, hWnd, nIDTool, (LPRECT)lpRectTool, (LPTSTR)text.m_lpstr);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2452 return (BOOL)::SendMessage(this->m_hWnd, TTM_ADDTOOL, 0, ti);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2453 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2454
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2455 void DelTool(LPTOOLINFO lpToolInfo)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2456 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2457 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2458 ::SendMessage(this->m_hWnd, TTM_DELTOOL, 0, (LPARAM)lpToolInfo);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2459 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2460
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2461 void DelTool(HWND hWnd, UINT_PTR nIDTool = 0)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2462 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2463 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2464 ATLASSERT(hWnd != NULL);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2465
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2466 CToolInfo ti(0, hWnd, nIDTool, NULL, NULL);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2467 ::SendMessage(this->m_hWnd, TTM_DELTOOL, 0, ti);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2468 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2469
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2470 BOOL HitTest(LPTTHITTESTINFO lpHitTestInfo) const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2471 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2472 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2473 return (BOOL)::SendMessage(this->m_hWnd, TTM_HITTEST, 0, (LPARAM)lpHitTestInfo);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2474 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2475
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2476 BOOL HitTest(HWND hWnd, POINT pt, LPTOOLINFO lpToolInfo) const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2477 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2478 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2479 ATLASSERT(hWnd != NULL);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2480 ATLASSERT(lpToolInfo != NULL);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2481
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2482 TTHITTESTINFO hti = {};
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2483 hti.ti.cbSize = RunTimeHelper::SizeOf_TOOLINFO();
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2484 hti.hwnd = hWnd;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2485 hti.pt.x = pt.x;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2486 hti.pt.y = pt.y;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2487 if((BOOL)::SendMessage(this->m_hWnd, TTM_HITTEST, 0, (LPARAM)&hti) != FALSE)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2488 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2489 *lpToolInfo = hti.ti;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2490 return TRUE;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2491 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2492 return FALSE;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2493 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2494
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2495 void RelayEvent(LPMSG lpMsg)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2496 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2497 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2498 ::SendMessage(this->m_hWnd, TTM_RELAYEVENT, 0, (LPARAM)lpMsg);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2499 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2500
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2501 void UpdateTipText(LPTOOLINFO lpToolInfo)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2502 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2503 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2504 ::SendMessage(this->m_hWnd, TTM_UPDATETIPTEXT, 0, (LPARAM)lpToolInfo);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2505 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2506
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2507 void UpdateTipText(ATL::_U_STRINGorID text, HWND hWnd, UINT_PTR nIDTool = 0)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2508 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2509 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2510 ATLASSERT(hWnd != NULL);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2511
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2512 CToolInfo ti(0, hWnd, nIDTool, NULL, (LPTSTR)text.m_lpstr);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2513 ::SendMessage(this->m_hWnd, TTM_UPDATETIPTEXT, 0, ti);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2514 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2515
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2516 BOOL EnumTools(UINT_PTR nTool, LPTOOLINFO lpToolInfo) const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2517 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2518 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2519 return (BOOL)::SendMessage(this->m_hWnd, TTM_ENUMTOOLS, nTool, (LPARAM)lpToolInfo);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2520 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2521
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2522 void Pop()
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2523 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2524 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2525 ::SendMessage(this->m_hWnd, TTM_POP, 0, 0L);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2526 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2527
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2528 void TrackActivate(LPTOOLINFO lpToolInfo, BOOL bActivate)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2529 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2530 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2531 ::SendMessage(this->m_hWnd, TTM_TRACKACTIVATE, bActivate, (LPARAM)lpToolInfo);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2532 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2533
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2534 void TrackActivate(HWND hWnd, UINT_PTR nIDTool, BOOL bActivate)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2535 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2536 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2537 ATLASSERT(hWnd != NULL);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2538
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2539 CToolInfo ti(0, hWnd, nIDTool);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2540 ::SendMessage(this->m_hWnd, TTM_TRACKACTIVATE, bActivate, ti);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2541 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2542
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2543 void TrackPosition(int xPos, int yPos)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2544 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2545 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2546 ::SendMessage(this->m_hWnd, TTM_TRACKPOSITION, 0, MAKELPARAM(xPos, yPos));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2547 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2548
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2549 void Update()
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2550 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2551 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2552 ::SendMessage(this->m_hWnd, TTM_UPDATE, 0, 0L);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2553 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2554
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2555 BOOL AdjustRect(LPRECT lpRect, BOOL bLarger /*= TRUE*/)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2556 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2557 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2558 return (BOOL)::SendMessage(this->m_hWnd, TTM_ADJUSTRECT, bLarger, (LPARAM)lpRect);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2559 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2560
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2561 void Popup()
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2562 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2563 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2564 ::SendMessage(this->m_hWnd, TTM_POPUP, 0, 0L);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2565 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2566 };
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2567
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2568 typedef CToolTipCtrlT<ATL::CWindow> CToolTipCtrl;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2569
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2570
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2571 ///////////////////////////////////////////////////////////////////////////////
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2572 // CHeaderCtrl
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2573
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2574 template <class TBase>
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2575 class CHeaderCtrlT : public TBase
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2576 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2577 public:
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2578 // Constructors
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2579 CHeaderCtrlT(HWND hWnd = NULL) : TBase(hWnd)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2580 { }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2581
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2582 CHeaderCtrlT< TBase >& operator =(HWND hWnd)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2583 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2584 this->m_hWnd = hWnd;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2585 return *this;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2586 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2587
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2588 HWND Create(HWND hWndParent, ATL::_U_RECT rect = NULL, LPCTSTR szWindowName = NULL,
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2589 DWORD dwStyle = 0, DWORD dwExStyle = 0,
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2590 ATL::_U_MENUorID MenuOrID = 0U, LPVOID lpCreateParam = NULL)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2591 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2592 return TBase::Create(GetWndClassName(), hWndParent, rect.m_lpRect, szWindowName, dwStyle, dwExStyle, MenuOrID.m_hMenu, lpCreateParam);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2593 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2594
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2595 // Attributes
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2596 static LPCTSTR GetWndClassName()
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2597 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2598 return WC_HEADER;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2599 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2600
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2601 int GetItemCount() const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2602 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2603 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2604 return (int)::SendMessage(this->m_hWnd, HDM_GETITEMCOUNT, 0, 0L);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2605 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2606
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2607 BOOL GetItem(int nIndex, LPHDITEM pHeaderItem) const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2608 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2609 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2610 return (BOOL)::SendMessage(this->m_hWnd, HDM_GETITEM, nIndex, (LPARAM)pHeaderItem);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2611 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2612
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2613 BOOL SetItem(int nIndex, LPHDITEM pHeaderItem)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2614 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2615 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2616 return (BOOL)::SendMessage(this->m_hWnd, HDM_SETITEM, nIndex, (LPARAM)pHeaderItem);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2617 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2618
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2619 CImageList GetImageList() const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2620 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2621 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2622 return CImageList((HIMAGELIST)::SendMessage(this->m_hWnd, HDM_GETIMAGELIST, 0, 0L));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2623 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2624
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2625 CImageList SetImageList(HIMAGELIST hImageList)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2626 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2627 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2628 return CImageList((HIMAGELIST)::SendMessage(this->m_hWnd, HDM_SETIMAGELIST, 0, (LPARAM)hImageList));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2629 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2630
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2631 BOOL GetOrderArray(int nSize, int* lpnArray) const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2632 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2633 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2634 return (BOOL)::SendMessage(this->m_hWnd, HDM_GETORDERARRAY, nSize, (LPARAM)lpnArray);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2635 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2636
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2637 BOOL SetOrderArray(int nSize, int* lpnArray)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2638 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2639 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2640 return (BOOL)::SendMessage(this->m_hWnd, HDM_SETORDERARRAY, nSize, (LPARAM)lpnArray);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2641 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2642
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2643 BOOL GetItemRect(int nIndex, LPRECT lpItemRect) const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2644 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2645 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2646 return (BOOL)::SendMessage(this->m_hWnd, HDM_GETITEMRECT, nIndex, (LPARAM)lpItemRect);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2647 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2648
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2649 int SetHotDivider(BOOL bPos, DWORD dwInputValue)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2650 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2651 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2652 return (int)::SendMessage(this->m_hWnd, HDM_SETHOTDIVIDER, bPos, dwInputValue);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2653 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2654
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2655 BOOL GetUnicodeFormat() const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2656 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2657 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2658 return (BOOL)::SendMessage(this->m_hWnd, HDM_GETUNICODEFORMAT, 0, 0L);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2659 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2660
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2661 BOOL SetUnicodeFormat(BOOL bUnicode = TRUE)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2662 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2663 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2664 return (BOOL)::SendMessage(this->m_hWnd, HDM_SETUNICODEFORMAT, bUnicode, 0L);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2665 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2666
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2667 int GetBitmapMargin() const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2668 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2669 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2670 return (int)::SendMessage(this->m_hWnd, HDM_GETBITMAPMARGIN, 0, 0L);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2671 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2672
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2673 int SetBitmapMargin(int nWidth)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2674 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2675 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2676 return (int)::SendMessage(this->m_hWnd, HDM_SETBITMAPMARGIN, nWidth, 0L);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2677 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2678
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2679 int SetFilterChangeTimeout(DWORD dwTimeOut)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2680 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2681 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2682 return (int)::SendMessage(this->m_hWnd, HDM_SETFILTERCHANGETIMEOUT, 0, dwTimeOut);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2683 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2684
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2685 #if (_WIN32_WINNT >= 0x0600)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2686 BOOL GetItemDropDownRect(int nIndex, LPRECT lpRect) const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2687 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2688 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2689 return (BOOL)::SendMessage(this->m_hWnd, HDM_GETITEMDROPDOWNRECT, nIndex, (LPARAM)lpRect);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2690 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2691
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2692 BOOL GetOverflowRect(LPRECT lpRect) const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2693 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2694 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2695 return (BOOL)::SendMessage(this->m_hWnd, HDM_GETOVERFLOWRECT, 0, (LPARAM)lpRect);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2696 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2697
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2698 int GetFocusedItem() const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2699 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2700 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2701 return (int)::SendMessage(this->m_hWnd, HDM_GETFOCUSEDITEM, 0, 0L);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2702 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2703
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2704 BOOL SetFocusedItem(int nIndex)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2705 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2706 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2707 return (BOOL)::SendMessage(this->m_hWnd, HDM_SETFOCUSEDITEM, 0, nIndex);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2708 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2709 #endif // (_WIN32_WINNT >= 0x0600)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2710
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2711 // Operations
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2712 int InsertItem(int nIndex, LPHDITEM phdi)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2713 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2714 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2715 return (int)::SendMessage(this->m_hWnd, HDM_INSERTITEM, nIndex, (LPARAM)phdi);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2716 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2717
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2718 int AddItem(LPHDITEM phdi)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2719 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2720 return InsertItem(GetItemCount(), phdi);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2721 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2722
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2723 BOOL DeleteItem(int nIndex)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2724 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2725 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2726 return (BOOL)::SendMessage(this->m_hWnd, HDM_DELETEITEM, nIndex, 0L);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2727 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2728
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2729 BOOL Layout(HD_LAYOUT* pHeaderLayout)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2730 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2731 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2732 return (BOOL)::SendMessage(this->m_hWnd, HDM_LAYOUT, 0, (LPARAM)pHeaderLayout);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2733 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2734
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2735 int HitTest(LPHDHITTESTINFO lpHitTestInfo) const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2736 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2737 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2738 return (int)::SendMessage(this->m_hWnd, HDM_HITTEST, 0, (LPARAM)lpHitTestInfo);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2739 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2740
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2741 int OrderToIndex(int nOrder)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2742 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2743 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2744 return (int)::SendMessage(this->m_hWnd, HDM_ORDERTOINDEX, nOrder, 0L);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2745 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2746
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2747 CImageList CreateDragImage(int nIndex)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2748 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2749 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2750 return CImageList((HIMAGELIST)::SendMessage(this->m_hWnd, HDM_CREATEDRAGIMAGE, nIndex, 0L));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2751 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2752
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2753 int EditFilter(int nColumn, BOOL bDiscardChanges)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2754 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2755 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2756 return (int)::SendMessage(this->m_hWnd, HDM_EDITFILTER, nColumn, MAKELPARAM(bDiscardChanges, 0));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2757 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2758
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2759 int ClearFilter(int nColumn)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2760 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2761 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2762 return (int)::SendMessage(this->m_hWnd, HDM_CLEARFILTER, nColumn, 0L);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2763 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2764
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2765 int ClearAllFilters()
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2766 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2767 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2768 return (int)::SendMessage(this->m_hWnd, HDM_CLEARFILTER, (WPARAM)-1, 0L);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2769 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2770 };
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2771
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2772 typedef CHeaderCtrlT<ATL::CWindow> CHeaderCtrl;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2773
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2774
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2775 ///////////////////////////////////////////////////////////////////////////////
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2776 // CListViewCtrl
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2777
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2778 template <class TBase>
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2779 class CListViewCtrlT : public TBase
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2780 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2781 public:
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2782 // Constructors
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2783 CListViewCtrlT(HWND hWnd = NULL) : TBase(hWnd)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2784 { }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2785
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2786 CListViewCtrlT< TBase >& operator =(HWND hWnd)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2787 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2788 this->m_hWnd = hWnd;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2789 return *this;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2790 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2791
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2792 HWND Create(HWND hWndParent, ATL::_U_RECT rect = NULL, LPCTSTR szWindowName = NULL,
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2793 DWORD dwStyle = 0, DWORD dwExStyle = 0,
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2794 ATL::_U_MENUorID MenuOrID = 0U, LPVOID lpCreateParam = NULL)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2795 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2796 return TBase::Create(GetWndClassName(), hWndParent, rect.m_lpRect, szWindowName, dwStyle, dwExStyle, MenuOrID.m_hMenu, lpCreateParam);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2797 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2798
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2799 // Attributes
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2800 static LPCTSTR GetWndClassName()
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2801 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2802 return WC_LISTVIEW;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2803 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2804
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2805 COLORREF GetBkColor() const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2806 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2807 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2808 return (COLORREF)::SendMessage(this->m_hWnd, LVM_GETBKCOLOR, 0, 0L);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2809 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2810
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2811 BOOL SetBkColor(COLORREF cr)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2812 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2813 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2814 return (BOOL)::SendMessage(this->m_hWnd, LVM_SETBKCOLOR, 0, cr);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2815 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2816
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2817 CImageList GetImageList(int nImageListType) const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2818 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2819 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2820 return CImageList((HIMAGELIST)::SendMessage(this->m_hWnd, LVM_GETIMAGELIST, nImageListType, 0L));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2821 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2822
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2823 CImageList SetImageList(HIMAGELIST hImageList, int nImageList)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2824 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2825 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2826 return CImageList((HIMAGELIST)::SendMessage(this->m_hWnd, LVM_SETIMAGELIST, nImageList, (LPARAM)hImageList));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2827 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2828
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2829 int GetItemCount() const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2830 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2831 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2832 return (int)::SendMessage(this->m_hWnd, LVM_GETITEMCOUNT, 0, 0L);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2833 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2834
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2835 BOOL SetItemCount(int nItems)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2836 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2837 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2838 return (BOOL)::SendMessage(this->m_hWnd, LVM_SETITEMCOUNT, nItems, 0L);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2839 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2840
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2841 BOOL GetItem(LPLVITEM pItem) const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2842 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2843 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2844 return (BOOL)::SendMessage(this->m_hWnd, LVM_GETITEM, 0, (LPARAM)pItem);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2845 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2846
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2847 BOOL SetItem(const LVITEM* pItem)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2848 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2849 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2850 return (BOOL)::SendMessage(this->m_hWnd, LVM_SETITEM, 0, (LPARAM)pItem);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2851 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2852
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2853 BOOL SetItem(int nItem, int nSubItem, UINT nMask, LPCTSTR lpszItem,
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2854 int nImage, UINT nState, UINT nStateMask, LPARAM lParam)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2855 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2856 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2857 LVITEM lvi = {};
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2858 lvi.mask = nMask;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2859 lvi.iItem = nItem;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2860 lvi.iSubItem = nSubItem;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2861 lvi.stateMask = nStateMask;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2862 lvi.state = nState;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2863 lvi.pszText = (LPTSTR) lpszItem;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2864 lvi.iImage = nImage;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2865 lvi.lParam = lParam;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2866 return (BOOL)::SendMessage(this->m_hWnd, LVM_SETITEM, 0, (LPARAM)&lvi);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2867 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2868
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2869 UINT GetItemState(int nItem, UINT nMask) const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2870 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2871 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2872 return (UINT)::SendMessage(this->m_hWnd, LVM_GETITEMSTATE, nItem, nMask);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2873 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2874
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2875 BOOL SetItemState(int nItem, UINT nState, UINT nStateMask)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2876 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2877 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2878 LVITEM lvi = {};
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2879 lvi.state = nState;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2880 lvi.stateMask = nStateMask;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2881 return (BOOL)::SendMessage(this->m_hWnd, LVM_SETITEMSTATE, nItem, (LPARAM)&lvi);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2882 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2883
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2884 BOOL SetItemState(int nItem, LPLVITEM pItem)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2885 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2886 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2887 return (BOOL)::SendMessage(this->m_hWnd, LVM_SETITEMSTATE, nItem, (LPARAM)pItem);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2888 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2889
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2890 BOOL GetItemText(int nItem, int nSubItem, BSTR& bstrText) const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2891 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2892 USES_CONVERSION;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2893 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2894 ATLASSERT(bstrText == NULL);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2895 LVITEM lvi = {};
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2896 lvi.iSubItem = nSubItem;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2897
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2898 LPTSTR lpstrText = NULL;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2899 int nRes = 0;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2900 for(int nLen = 256; ; nLen *= 2)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2901 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2902 ATLTRY(lpstrText = new TCHAR[nLen]);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2903 if(lpstrText == NULL)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2904 break;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2905 lpstrText[0] = NULL;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2906 lvi.cchTextMax = nLen;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2907 lvi.pszText = lpstrText;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2908 nRes = (int)::SendMessage(this->m_hWnd, LVM_GETITEMTEXT, (WPARAM)nItem, (LPARAM)&lvi);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2909 if(nRes < nLen - 1)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2910 break;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2911 delete [] lpstrText;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2912 lpstrText = NULL;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2913 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2914
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2915 if(lpstrText != NULL)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2916 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2917 if(nRes != 0)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2918 bstrText = ::SysAllocString(T2OLE(lpstrText));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2919 delete [] lpstrText;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2920 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2921
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2922 return (bstrText != NULL) ? TRUE : FALSE;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2923 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2924
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2925 #ifdef __ATLSTR_H__
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2926 int GetItemText(int nItem, int nSubItem, ATL::CString& strText) const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2927 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2928 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2929 LVITEM lvi = {};
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2930 lvi.iSubItem = nSubItem;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2931
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2932 strText.Empty();
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2933 int nRes = 0;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2934 for(int nLen = 256; ; nLen *= 2)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2935 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2936 lvi.cchTextMax = nLen;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2937 lvi.pszText = strText.GetBufferSetLength(nLen);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2938 if(lvi.pszText == NULL)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2939 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2940 nRes = 0;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2941 break;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2942 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2943 nRes = (int)::SendMessage(this->m_hWnd, LVM_GETITEMTEXT, (WPARAM)nItem, (LPARAM)&lvi);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2944 if(nRes < nLen - 1)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2945 break;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2946 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2947 strText.ReleaseBuffer();
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2948 return nRes;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2949 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2950 #endif // __ATLSTR_H__
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2951
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2952 int GetItemText(int nItem, int nSubItem, LPTSTR lpszText, int nLen) const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2953 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2954 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2955 LVITEM lvi = {};
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2956 lvi.iSubItem = nSubItem;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2957 lvi.cchTextMax = nLen;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2958 lvi.pszText = lpszText;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2959 return (int)::SendMessage(this->m_hWnd, LVM_GETITEMTEXT, (WPARAM)nItem, (LPARAM)&lvi);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2960 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2961
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2962 BOOL SetItemText(int nItem, int nSubItem, LPCTSTR lpszText)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2963 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2964 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2965 return SetItem(nItem, nSubItem, LVIF_TEXT, lpszText, 0, 0, 0, 0);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2966 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2967
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2968 DWORD_PTR GetItemData(int nItem) const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2969 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2970 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2971 LVITEM lvi = {};
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2972 lvi.iItem = nItem;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2973 lvi.mask = LVIF_PARAM;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2974 BOOL bRet = (BOOL)::SendMessage(this->m_hWnd, LVM_GETITEM, 0, (LPARAM)&lvi);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2975 return (DWORD_PTR)(bRet ? lvi.lParam : NULL);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2976 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2977
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2978 BOOL SetItemData(int nItem, DWORD_PTR dwData)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2979 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2980 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2981 return SetItem(nItem, 0, LVIF_PARAM, NULL, 0, 0, 0, (LPARAM)dwData);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2982 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2983
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2984 UINT GetCallbackMask() const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2985 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2986 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2987 return (UINT)::SendMessage(this->m_hWnd, LVM_GETCALLBACKMASK, 0, 0L);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2988 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2989
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2990 BOOL SetCallbackMask(UINT nMask)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2991 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2992 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2993 return (BOOL)::SendMessage(this->m_hWnd, LVM_SETCALLBACKMASK, nMask, 0L);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2994 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2995
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2996 BOOL GetItemPosition(int nItem, LPPOINT lpPoint) const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2997 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2998 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2999 return (BOOL)::SendMessage(this->m_hWnd, LVM_GETITEMPOSITION, nItem, (LPARAM)lpPoint);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3000 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3001
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3002 BOOL SetItemPosition(int nItem, POINT pt)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3003 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3004 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3005 ATLASSERT(((this->GetStyle() & LVS_TYPEMASK) == LVS_ICON) || ((this->GetStyle() & LVS_TYPEMASK) == LVS_SMALLICON));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3006 return (BOOL)::SendMessage(this->m_hWnd, LVM_SETITEMPOSITION32, nItem, (LPARAM)&pt);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3007 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3008
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3009 BOOL SetItemPosition(int nItem, int x, int y)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3010 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3011 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3012 ATLASSERT(((this->GetStyle() & LVS_TYPEMASK) == LVS_ICON) || ((this->GetStyle() & LVS_TYPEMASK) == LVS_SMALLICON));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3013 POINT pt = { x, y };
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3014 return (BOOL)::SendMessage(this->m_hWnd, LVM_SETITEMPOSITION32, nItem, (LPARAM)&pt);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3015 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3016
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3017 int GetStringWidth(LPCTSTR lpsz) const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3018 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3019 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3020 return (int)::SendMessage(this->m_hWnd, LVM_GETSTRINGWIDTH, 0, (LPARAM)lpsz);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3021 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3022
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3023 CEdit GetEditControl() const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3024 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3025 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3026 return CEdit((HWND)::SendMessage(this->m_hWnd, LVM_GETEDITCONTROL, 0, 0L));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3027 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3028
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3029 BOOL GetColumn(int nCol, LVCOLUMN* pColumn) const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3030 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3031 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3032 return (BOOL)::SendMessage(this->m_hWnd, LVM_GETCOLUMN, nCol, (LPARAM)pColumn);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3033 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3034
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3035 BOOL SetColumn(int nCol, const LVCOLUMN* pColumn)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3036 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3037 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3038 return (BOOL)::SendMessage(this->m_hWnd, LVM_SETCOLUMN, nCol, (LPARAM)pColumn);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3039 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3040
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3041 int GetColumnWidth(int nCol) const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3042 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3043 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3044 return (int)::SendMessage(this->m_hWnd, LVM_GETCOLUMNWIDTH, nCol, 0L);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3045 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3046
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3047 BOOL SetColumnWidth(int nCol, int cx)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3048 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3049 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3050 return (BOOL)::SendMessage(this->m_hWnd, LVM_SETCOLUMNWIDTH, nCol, MAKELPARAM(cx, 0));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3051 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3052
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3053 BOOL GetViewRect(LPRECT lpRect) const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3054 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3055 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3056 return (BOOL)::SendMessage(this->m_hWnd, LVM_GETVIEWRECT, 0, (LPARAM)lpRect);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3057 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3058
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3059 COLORREF GetTextColor() const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3060 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3061 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3062 return (COLORREF)::SendMessage(this->m_hWnd, LVM_GETTEXTCOLOR, 0, 0L);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3063 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3064
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3065 BOOL SetTextColor(COLORREF cr)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3066 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3067 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3068 return (BOOL)::SendMessage(this->m_hWnd, LVM_SETTEXTCOLOR, 0, cr);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3069 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3070
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3071 COLORREF GetTextBkColor() const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3072 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3073 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3074 return (COLORREF)::SendMessage(this->m_hWnd, LVM_GETTEXTBKCOLOR, 0, 0L);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3075 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3076
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3077 BOOL SetTextBkColor(COLORREF cr)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3078 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3079 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3080 return (BOOL)::SendMessage(this->m_hWnd, LVM_SETTEXTBKCOLOR, 0, cr);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3081 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3082
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3083 int GetTopIndex() const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3084 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3085 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3086 return (int)::SendMessage(this->m_hWnd, LVM_GETTOPINDEX, 0, 0L);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3087 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3088
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3089 int GetCountPerPage() const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3090 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3091 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3092 return (int)::SendMessage(this->m_hWnd, LVM_GETCOUNTPERPAGE, 0, 0L);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3093 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3094
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3095 BOOL GetOrigin(LPPOINT lpPoint) const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3096 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3097 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3098 return (BOOL)::SendMessage(this->m_hWnd, LVM_GETORIGIN, 0, (LPARAM)lpPoint);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3099 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3100
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3101 UINT GetSelectedCount() const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3102 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3103 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3104 return (UINT)::SendMessage(this->m_hWnd, LVM_GETSELECTEDCOUNT, 0, 0L);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3105 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3106
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3107 BOOL GetItemRect(int nItem, LPRECT lpRect, UINT nCode) const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3108 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3109 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3110 lpRect->left = nCode;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3111 return (BOOL)::SendMessage(this->m_hWnd, LVM_GETITEMRECT, (WPARAM)nItem, (LPARAM)lpRect);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3112 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3113
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3114 HCURSOR GetHotCursor() const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3115 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3116 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3117 return (HCURSOR)::SendMessage(this->m_hWnd, LVM_GETHOTCURSOR, 0, 0L);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3118 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3119
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3120 HCURSOR SetHotCursor(HCURSOR hHotCursor)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3121 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3122 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3123 return (HCURSOR)::SendMessage(this->m_hWnd, LVM_SETHOTCURSOR, 0, (LPARAM)hHotCursor);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3124 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3125
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3126 int GetHotItem() const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3127 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3128 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3129 return (int)::SendMessage(this->m_hWnd, LVM_GETHOTITEM, 0, 0L);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3130 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3131
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3132 int SetHotItem(int nIndex)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3133 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3134 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3135 return (int)::SendMessage(this->m_hWnd, LVM_SETHOTITEM, nIndex, 0L);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3136 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3137
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3138 BOOL GetColumnOrderArray(int nCount, int* lpnArray) const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3139 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3140 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3141 return (BOOL)::SendMessage(this->m_hWnd, LVM_GETCOLUMNORDERARRAY, nCount, (LPARAM)lpnArray);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3142 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3143
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3144 BOOL SetColumnOrderArray(int nCount, int* lpnArray)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3145 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3146 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3147 return (BOOL)::SendMessage(this->m_hWnd, LVM_SETCOLUMNORDERARRAY, nCount, (LPARAM)lpnArray);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3148 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3149
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3150 CHeaderCtrl GetHeader() const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3151 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3152 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3153 return CHeaderCtrl((HWND)::SendMessage(this->m_hWnd, LVM_GETHEADER, 0, 0L));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3154 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3155
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3156 BOOL GetSubItemRect(int nItem, int nSubItem, int nFlag, LPRECT lpRect) const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3157 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3158 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3159 ATLASSERT((this->GetStyle() & LVS_TYPEMASK) == LVS_REPORT);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3160 ATLASSERT(lpRect != NULL);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3161 lpRect->top = nSubItem;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3162 lpRect->left = nFlag;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3163 return (BOOL)::SendMessage(this->m_hWnd, LVM_GETSUBITEMRECT, nItem, (LPARAM)lpRect);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3164 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3165
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3166 DWORD SetIconSpacing(int cx, int cy)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3167 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3168 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3169 ATLASSERT((this->GetStyle() & LVS_TYPEMASK) == LVS_ICON);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3170 return (DWORD)::SendMessage(this->m_hWnd, LVM_SETICONSPACING, 0, MAKELPARAM(cx, cy));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3171 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3172
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3173 int GetISearchString(LPTSTR lpstr) const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3174 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3175 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3176 return (int)::SendMessage(this->m_hWnd, LVM_GETISEARCHSTRING, 0, (LPARAM)lpstr);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3177 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3178
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3179 void GetItemSpacing(SIZE& sizeSpacing, BOOL bSmallIconView = FALSE) const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3180 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3181 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3182 DWORD dwRet = (DWORD)::SendMessage(this->m_hWnd, LVM_GETITEMSPACING, bSmallIconView, 0L);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3183 sizeSpacing.cx = GET_X_LPARAM(dwRet);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3184 sizeSpacing.cy = GET_Y_LPARAM(dwRet);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3185 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3186
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3187 // single-selection only
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3188 int GetSelectedIndex() const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3189 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3190 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3191 ATLASSERT((this->GetStyle() & LVS_SINGLESEL) != 0);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3192 return (int)::SendMessage(this->m_hWnd, LVM_GETNEXTITEM, (WPARAM)-1, MAKELPARAM(LVNI_ALL | LVNI_SELECTED, 0));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3193 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3194
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3195 BOOL GetSelectedItem(LPLVITEM pItem) const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3196 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3197 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3198 ATLASSERT((this->GetStyle() & LVS_SINGLESEL) != 0);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3199 ATLASSERT(pItem != NULL);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3200 pItem->iItem = (int)::SendMessage(this->m_hWnd, LVM_GETNEXTITEM, (WPARAM)-1, MAKELPARAM(LVNI_ALL | LVNI_SELECTED, 0));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3201 if(pItem->iItem == -1)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3202 return FALSE;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3203 return (BOOL)::SendMessage(this->m_hWnd, LVM_GETITEM, 0, (LPARAM)pItem);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3204 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3205
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3206 // extended list view styles
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3207 DWORD GetExtendedListViewStyle() const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3208 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3209 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3210 return (DWORD)::SendMessage(this->m_hWnd, LVM_GETEXTENDEDLISTVIEWSTYLE, 0, 0L);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3211 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3212
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3213 // dwExMask = 0 means all styles
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3214 DWORD SetExtendedListViewStyle(DWORD dwExStyle, DWORD dwExMask = 0)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3215 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3216 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3217 return (DWORD)::SendMessage(this->m_hWnd, LVM_SETEXTENDEDLISTVIEWSTYLE, dwExMask, dwExStyle);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3218 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3219
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3220 // checkboxes only
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3221 BOOL GetCheckState(int nIndex) const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3222 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3223 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3224 ATLASSERT((GetExtendedListViewStyle() & LVS_EX_CHECKBOXES) != 0);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3225 UINT uRet = GetItemState(nIndex, LVIS_STATEIMAGEMASK);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3226 return (uRet >> 12) - 1;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3227 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3228
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3229 BOOL SetCheckState(int nItem, BOOL bCheck)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3230 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3231 int nCheck = bCheck ? 2 : 1; // one based index
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3232 return SetItemState(nItem, INDEXTOSTATEIMAGEMASK(nCheck), LVIS_STATEIMAGEMASK);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3233 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3234
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3235 // view type
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3236 DWORD GetViewType() const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3237 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3238 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3239 return (this->GetStyle() & LVS_TYPEMASK);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3240 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3241
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3242 DWORD SetViewType(DWORD dwType)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3243 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3244 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3245 ATLASSERT((dwType == LVS_ICON) || (dwType == LVS_SMALLICON) || (dwType == LVS_LIST) || (dwType == LVS_REPORT));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3246 DWORD dwOldType = GetViewType();
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3247 if(dwType != dwOldType)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3248 this->ModifyStyle(LVS_TYPEMASK, (dwType & LVS_TYPEMASK));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3249 return dwOldType;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3250 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3251
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3252 BOOL GetBkImage(LPLVBKIMAGE plvbki) const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3253 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3254 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3255 return (BOOL)::SendMessage(this->m_hWnd, LVM_GETBKIMAGE, 0, (LPARAM)plvbki);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3256 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3257
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3258 BOOL SetBkImage(LPLVBKIMAGE plvbki)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3259 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3260 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3261 return (BOOL)::SendMessage(this->m_hWnd, LVM_SETBKIMAGE, 0, (LPARAM)plvbki);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3262 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3263
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3264 int GetSelectionMark() const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3265 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3266 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3267 return (int)::SendMessage(this->m_hWnd, LVM_GETSELECTIONMARK, 0, 0L);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3268 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3269
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3270 int SetSelectionMark(int nIndex)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3271 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3272 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3273 return (int)::SendMessage(this->m_hWnd, LVM_SETSELECTIONMARK, 0, nIndex);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3274 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3275
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3276 BOOL GetWorkAreas(int nWorkAreas, LPRECT lpRect) const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3277 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3278 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3279 return (BOOL)::SendMessage(this->m_hWnd, LVM_GETWORKAREAS, nWorkAreas, (LPARAM)lpRect);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3280 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3281
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3282 BOOL SetWorkAreas(int nWorkAreas, LPRECT lpRect)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3283 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3284 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3285 return (BOOL)::SendMessage(this->m_hWnd, LVM_SETWORKAREAS, nWorkAreas, (LPARAM)lpRect);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3286 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3287
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3288 DWORD GetHoverTime() const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3289 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3290 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3291 ATLASSERT((GetExtendedListViewStyle() & (LVS_EX_TRACKSELECT | LVS_EX_ONECLICKACTIVATE | LVS_EX_TWOCLICKACTIVATE)) != 0);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3292 return (DWORD)::SendMessage(this->m_hWnd, LVM_GETHOVERTIME, 0, 0L);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3293 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3294
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3295 DWORD SetHoverTime(DWORD dwHoverTime)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3296 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3297 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3298 ATLASSERT((GetExtendedListViewStyle() & (LVS_EX_TRACKSELECT | LVS_EX_ONECLICKACTIVATE | LVS_EX_TWOCLICKACTIVATE)) != 0);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3299 return (DWORD)::SendMessage(this->m_hWnd, LVM_SETHOVERTIME, 0, dwHoverTime);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3300 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3301
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3302 BOOL GetNumberOfWorkAreas(int* pnWorkAreas) const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3303 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3304 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3305 return (BOOL)::SendMessage(this->m_hWnd, LVM_GETNUMBEROFWORKAREAS, 0, (LPARAM)pnWorkAreas);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3306 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3307
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3308 BOOL SetItemCountEx(int nItems, DWORD dwFlags)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3309 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3310 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3311 ATLASSERT(((this->GetStyle() & LVS_OWNERDATA) != 0) && (((this->GetStyle() & LVS_TYPEMASK) == LVS_REPORT) || ((this->GetStyle() & LVS_TYPEMASK) == LVS_LIST)));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3312 return (BOOL)::SendMessage(this->m_hWnd, LVM_SETITEMCOUNT, nItems, dwFlags);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3313 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3314
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3315 CToolTipCtrl GetToolTips() const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3316 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3317 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3318 return CToolTipCtrl((HWND)::SendMessage(this->m_hWnd, LVM_GETTOOLTIPS, 0, 0L));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3319 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3320
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3321 CToolTipCtrl SetToolTips(HWND hWndTT)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3322 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3323 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3324 return CToolTipCtrl((HWND)::SendMessage(this->m_hWnd, LVM_SETTOOLTIPS, (WPARAM)hWndTT, 0L));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3325 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3326
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3327 BOOL GetUnicodeFormat() const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3328 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3329 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3330 return (BOOL)::SendMessage(this->m_hWnd, LVM_GETUNICODEFORMAT, 0, 0L);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3331 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3332
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3333 BOOL SetUnicodeFormat(BOOL bUnicode = TRUE)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3334 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3335 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3336 return (BOOL)::SendMessage(this->m_hWnd, LVM_SETUNICODEFORMAT, bUnicode, 0L);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3337 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3338
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3339 int GetSelectedColumn() const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3340 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3341 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3342 return (int)::SendMessage(this->m_hWnd, LVM_GETSELECTEDCOLUMN, 0, 0L);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3343 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3344
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3345 void SetSelectedColumn(int nColumn)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3346 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3347 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3348 ::SendMessage(this->m_hWnd, LVM_SETSELECTEDCOLUMN, nColumn, 0L);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3349 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3350
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3351 DWORD GetView() const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3352 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3353 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3354 return (DWORD)::SendMessage(this->m_hWnd, LVM_GETVIEW, 0, 0L);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3355 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3356
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3357 int SetView(DWORD dwView)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3358 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3359 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3360 return (int)::SendMessage(this->m_hWnd, LVM_SETVIEW, dwView, 0L);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3361 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3362
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3363 BOOL IsGroupViewEnabled() const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3364 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3365 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3366 return (BOOL)::SendMessage(this->m_hWnd, LVM_ISGROUPVIEWENABLED, 0, 0L);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3367 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3368
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3369 int GetGroupInfo(int nGroupID, PLVGROUP pGroup) const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3370 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3371 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3372 return (int)::SendMessage(this->m_hWnd, LVM_GETGROUPINFO, nGroupID, (LPARAM)pGroup);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3373 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3374
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3375 int SetGroupInfo(int nGroupID, PLVGROUP pGroup)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3376 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3377 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3378 return (int)::SendMessage(this->m_hWnd, LVM_SETGROUPINFO, nGroupID, (LPARAM)pGroup);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3379 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3380
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3381 void GetGroupMetrics(PLVGROUPMETRICS pGroupMetrics) const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3382 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3383 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3384 ::SendMessage(this->m_hWnd, LVM_GETGROUPMETRICS, 0, (LPARAM)pGroupMetrics);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3385 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3386
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3387 void SetGroupMetrics(PLVGROUPMETRICS pGroupMetrics)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3388 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3389 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3390 ::SendMessage(this->m_hWnd, LVM_SETGROUPMETRICS, 0, (LPARAM)pGroupMetrics);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3391 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3392
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3393 void GetTileViewInfo(PLVTILEVIEWINFO pTileViewInfo) const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3394 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3395 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3396 ::SendMessage(this->m_hWnd, LVM_GETTILEVIEWINFO, 0, (LPARAM)pTileViewInfo);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3397 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3398
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3399 BOOL SetTileViewInfo(PLVTILEVIEWINFO pTileViewInfo)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3400 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3401 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3402 return (BOOL)::SendMessage(this->m_hWnd, LVM_SETTILEVIEWINFO, 0, (LPARAM)pTileViewInfo);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3403 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3404
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3405 void GetTileInfo(PLVTILEINFO pTileInfo) const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3406 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3407 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3408 ::SendMessage(this->m_hWnd, LVM_GETTILEINFO, 0, (LPARAM)pTileInfo);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3409 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3410
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3411 BOOL SetTileInfo(PLVTILEINFO pTileInfo)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3412 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3413 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3414 return (BOOL)::SendMessage(this->m_hWnd, LVM_SETTILEINFO, 0, (LPARAM)pTileInfo);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3415 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3416
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3417 BOOL GetInsertMark(LPLVINSERTMARK pInsertMark) const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3418 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3419 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3420 return (BOOL)::SendMessage(this->m_hWnd, LVM_GETINSERTMARK, 0, (LPARAM)pInsertMark);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3421 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3422
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3423 BOOL SetInsertMark(LPLVINSERTMARK pInsertMark)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3424 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3425 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3426 return (BOOL)::SendMessage(this->m_hWnd, LVM_SETINSERTMARK, 0, (LPARAM)pInsertMark);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3427 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3428
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3429 int GetInsertMarkRect(LPRECT lpRect) const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3430 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3431 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3432 return (int)::SendMessage(this->m_hWnd, LVM_GETINSERTMARKRECT, 0, (LPARAM)lpRect);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3433 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3434
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3435 COLORREF GetInsertMarkColor() const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3436 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3437 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3438 return (COLORREF)::SendMessage(this->m_hWnd, LVM_GETINSERTMARKCOLOR, 0, 0L);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3439 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3440
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3441 COLORREF SetInsertMarkColor(COLORREF clr)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3442 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3443 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3444 return (COLORREF)::SendMessage(this->m_hWnd, LVM_SETINSERTMARKCOLOR, 0, clr);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3445 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3446
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3447 COLORREF GetOutlineColor() const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3448 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3449 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3450 return (COLORREF)::SendMessage(this->m_hWnd, LVM_GETOUTLINECOLOR, 0, 0L);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3451 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3452
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3453 COLORREF SetOutlineColor(COLORREF clr)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3454 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3455 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3456 return (COLORREF)::SendMessage(this->m_hWnd, LVM_SETOUTLINECOLOR, 0, clr);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3457 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3458
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3459 #if (_WIN32_WINNT >= 0x0600)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3460 int GetGroupCount() const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3461 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3462 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3463 return (int)::SendMessage(this->m_hWnd, LVM_GETGROUPCOUNT, 0, 0L);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3464 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3465
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3466 BOOL GetGroupInfoByIndex(int nIndex, PLVGROUP pGroup) const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3467 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3468 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3469 return (BOOL)::SendMessage(this->m_hWnd, LVM_GETGROUPINFOBYINDEX, nIndex, (LPARAM)pGroup);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3470 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3471
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3472 BOOL GetGroupRect(int nGroupID, int nType, LPRECT lpRect) const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3473 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3474 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3475 ATLASSERT(lpRect != NULL);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3476 if(lpRect != NULL)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3477 lpRect->top = nType;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3478 return (BOOL)::SendMessage(this->m_hWnd, LVM_GETGROUPRECT, nGroupID, (LPARAM)lpRect);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3479 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3480
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3481 UINT GetGroupState(int nGroupID, UINT uMask) const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3482 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3483 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3484 return (UINT)::SendMessage(this->m_hWnd, LVM_GETGROUPSTATE, nGroupID, (LPARAM)uMask);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3485 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3486
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3487 int GetFocusedGroup() const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3488 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3489 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3490 return (int)::SendMessage(this->m_hWnd, LVM_GETFOCUSEDGROUP, 0, 0L);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3491 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3492
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3493 BOOL GetEmptyText(LPWSTR lpstrText, int cchText) const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3494 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3495 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3496 return (BOOL)::SendMessage(this->m_hWnd, LVM_GETEMPTYTEXT, cchText, (LPARAM)lpstrText);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3497 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3498
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3499 BOOL GetFooterRect(LPRECT lpRect) const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3500 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3501 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3502 return (BOOL)::SendMessage(this->m_hWnd, LVM_GETFOOTERRECT, 0, (LPARAM)lpRect);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3503 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3504
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3505 BOOL GetFooterInfo(LPLVFOOTERINFO lpFooterInfo) const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3506 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3507 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3508 return (BOOL)::SendMessage(this->m_hWnd, LVM_GETFOOTERINFO, 0, (LPARAM)lpFooterInfo);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3509 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3510
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3511 BOOL GetFooterItemRect(int nItem, LPRECT lpRect) const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3512 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3513 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3514 return (BOOL)::SendMessage(this->m_hWnd, LVM_GETFOOTERITEMRECT, nItem, (LPARAM)lpRect);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3515 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3516
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3517 BOOL GetFooterItem(int nItem, LPLVFOOTERITEM lpFooterItem) const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3518 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3519 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3520 return (BOOL)::SendMessage(this->m_hWnd, LVM_GETFOOTERITEM, nItem, (LPARAM)lpFooterItem);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3521 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3522
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3523 BOOL GetItemIndexRect(PLVITEMINDEX pItemIndex, int nSubItem, int nType, LPRECT lpRect) const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3524 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3525 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3526 ATLASSERT(pItemIndex != NULL);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3527 ATLASSERT(lpRect != NULL);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3528 if(lpRect != NULL)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3529 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3530 lpRect->top = nSubItem;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3531 lpRect->left = nType;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3532 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3533 return (BOOL)::SendMessage(this->m_hWnd, LVM_GETITEMINDEXRECT, (WPARAM)pItemIndex, (LPARAM)lpRect);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3534 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3535
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3536 BOOL SetItemIndexState(PLVITEMINDEX pItemIndex, UINT uState, UINT dwMask)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3537 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3538 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3539 LVITEM lvi = {};
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3540 lvi.state = uState;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3541 lvi.stateMask = dwMask;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3542 return (BOOL)::SendMessage(this->m_hWnd, LVM_SETITEMINDEXSTATE, (WPARAM)pItemIndex, (LPARAM)&lvi);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3543 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3544
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3545 BOOL GetNextItemIndex(PLVITEMINDEX pItemIndex, WORD wFlags) const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3546 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3547 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3548 return (BOOL)::SendMessage(this->m_hWnd, LVM_GETNEXTITEMINDEX, (WPARAM)pItemIndex, MAKELPARAM(wFlags, 0));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3549 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3550 #endif // (_WIN32_WINNT >= 0x0600)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3551
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3552 // Operations
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3553 int InsertColumn(int nCol, const LVCOLUMN* pColumn)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3554 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3555 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3556 return (int)::SendMessage(this->m_hWnd, LVM_INSERTCOLUMN, nCol, (LPARAM)pColumn);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3557 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3558
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3559 int InsertColumn(int nCol, LPCTSTR lpszColumnHeading, int nFormat = LVCFMT_LEFT,
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3560 int nWidth = -1, int nSubItem = -1, int iImage = -1, int iOrder = -1)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3561 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3562 LVCOLUMN column = {};
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3563 column.mask = LVCF_TEXT | LVCF_FMT;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3564 column.pszText = (LPTSTR)lpszColumnHeading;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3565 column.fmt = nFormat;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3566 if (nWidth != -1)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3567 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3568 column.mask |= LVCF_WIDTH;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3569 column.cx = nWidth;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3570 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3571 if (nSubItem != -1)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3572 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3573 column.mask |= LVCF_SUBITEM;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3574 column.iSubItem = nSubItem;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3575 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3576 if (iImage != -1)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3577 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3578 column.mask |= LVCF_IMAGE;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3579 column.iImage = iImage;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3580 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3581 if (iOrder != -1)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3582 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3583 column.mask |= LVCF_ORDER;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3584 column.iOrder = iOrder;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3585 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3586 return InsertColumn(nCol, &column);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3587 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3588
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3589 BOOL DeleteColumn(int nCol)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3590 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3591 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3592 return (BOOL)::SendMessage(this->m_hWnd, LVM_DELETECOLUMN, nCol, 0L);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3593 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3594
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3595 int InsertItem(UINT nMask, int nItem, LPCTSTR lpszItem, UINT nState, UINT nStateMask, int nImage, LPARAM lParam)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3596 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3597 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3598 LVITEM item = {};
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3599 item.mask = nMask;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3600 item.iItem = nItem;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3601 item.iSubItem = 0;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3602 item.pszText = (LPTSTR)lpszItem;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3603 item.state = nState;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3604 item.stateMask = nStateMask;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3605 item.iImage = nImage;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3606 item.lParam = lParam;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3607 return InsertItem(&item);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3608 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3609
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3610 int InsertItem(const LVITEM* pItem)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3611 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3612 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3613 return (int)::SendMessage(this->m_hWnd, LVM_INSERTITEM, 0, (LPARAM)pItem);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3614 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3615
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3616 int InsertItem(int nItem, LPCTSTR lpszItem)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3617 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3618 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3619 return InsertItem(LVIF_TEXT, nItem, lpszItem, 0, 0, 0, 0);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3620 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3621
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3622 int InsertItem(int nItem, LPCTSTR lpszItem, int nImage)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3623 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3624 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3625 return InsertItem(LVIF_TEXT|LVIF_IMAGE, nItem, lpszItem, 0, 0, nImage, 0);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3626 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3627
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3628 int GetNextItem(int nItem, int nFlags) const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3629 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3630 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3631 return (int)::SendMessage(this->m_hWnd, LVM_GETNEXTITEM, nItem, MAKELPARAM(nFlags, 0));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3632 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3633
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3634 BOOL DeleteItem(int nItem)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3635 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3636 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3637 return (BOOL)::SendMessage(this->m_hWnd, LVM_DELETEITEM, nItem, 0L);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3638 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3639
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3640 BOOL DeleteAllItems()
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3641 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3642 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3643 return (BOOL)::SendMessage(this->m_hWnd, LVM_DELETEALLITEMS, 0, 0L);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3644 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3645
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3646 int FindItem(LVFINDINFO* pFindInfo, int nStart = -1) const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3647 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3648 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3649 return (int)::SendMessage(this->m_hWnd, LVM_FINDITEM, nStart, (LPARAM)pFindInfo);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3650 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3651
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3652 int FindItem(LPCTSTR lpstrFind, bool bPartial = true, bool bWrap = false, int nStart = -1) const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3653 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3654 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3655 LVFINDINFO lvfi = {};
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3656 lvfi.flags = LVFI_STRING | (bWrap ? LVFI_WRAP : 0) | (bPartial ? LVFI_PARTIAL : 0);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3657 lvfi.psz = lpstrFind;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3658 return (int)::SendMessage(this->m_hWnd, LVM_FINDITEM, nStart, (LPARAM)&lvfi);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3659 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3660
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3661 int HitTest(LVHITTESTINFO* pHitTestInfo) const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3662 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3663 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3664 return (int)::SendMessage(this->m_hWnd, LVM_HITTEST, 0, (LPARAM)pHitTestInfo);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3665 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3666
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3667 int HitTest(POINT pt, UINT* pFlags) const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3668 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3669 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3670 LVHITTESTINFO hti = {};
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3671 hti.pt = pt;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3672 int nRes = (int)::SendMessage(this->m_hWnd, LVM_HITTEST, 0, (LPARAM)&hti);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3673 if (pFlags != NULL)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3674 *pFlags = hti.flags;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3675 return nRes;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3676 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3677
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3678 BOOL EnsureVisible(int nItem, BOOL bPartialOK)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3679 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3680 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3681 return (BOOL)::SendMessage(this->m_hWnd, LVM_ENSUREVISIBLE, nItem, MAKELPARAM(bPartialOK, 0));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3682 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3683
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3684 BOOL Scroll(int cx, int cy)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3685 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3686 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3687 return (BOOL)::SendMessage(this->m_hWnd, LVM_SCROLL, cx, cy);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3688 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3689
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3690 BOOL Scroll(SIZE size)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3691 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3692 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3693 return (BOOL)::SendMessage(this->m_hWnd, LVM_SCROLL, size.cx, size.cy);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3694 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3695
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3696 BOOL RedrawItems(int nFirst, int nLast)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3697 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3698 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3699 return (BOOL)::SendMessage(this->m_hWnd, LVM_REDRAWITEMS, nFirst, nLast);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3700 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3701
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3702 BOOL Arrange(UINT nCode)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3703 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3704 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3705 return (BOOL)::SendMessage(this->m_hWnd, LVM_ARRANGE, nCode, 0L);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3706 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3707
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3708 CEdit EditLabel(int nItem)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3709 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3710 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3711 return CEdit((HWND)::SendMessage(this->m_hWnd, LVM_EDITLABEL, nItem, 0L));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3712 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3713
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3714 BOOL Update(int nItem)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3715 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3716 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3717 return (BOOL)::SendMessage(this->m_hWnd, LVM_UPDATE, nItem, 0L);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3718 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3719
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3720 BOOL SortItems(PFNLVCOMPARE pfnCompare, LPARAM lParamSort)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3721 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3722 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3723 return (BOOL)::SendMessage(this->m_hWnd, LVM_SORTITEMS, (WPARAM)lParamSort, (LPARAM)pfnCompare);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3724 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3725
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3726 CImageList RemoveImageList(int nImageList)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3727 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3728 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3729 return CImageList((HIMAGELIST)::SendMessage(this->m_hWnd, LVM_SETIMAGELIST, (WPARAM)nImageList, NULL));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3730 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3731
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3732 CImageList CreateDragImage(int nItem, LPPOINT lpPoint)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3733 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3734 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3735 return CImageList((HIMAGELIST)::SendMessage(this->m_hWnd, LVM_CREATEDRAGIMAGE, nItem, (LPARAM)lpPoint));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3736 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3737
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3738 DWORD ApproximateViewRect(int cx = -1, int cy = -1, int nCount = -1)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3739 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3740 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3741 return (DWORD)::SendMessage(this->m_hWnd, LVM_APPROXIMATEVIEWRECT, nCount, MAKELPARAM(cx, cy));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3742 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3743
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3744 int SubItemHitTest(LPLVHITTESTINFO lpInfo) const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3745 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3746 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3747 return (int)::SendMessage(this->m_hWnd, LVM_SUBITEMHITTEST, 0, (LPARAM)lpInfo);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3748 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3749
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3750 int AddColumn(LPCTSTR strColumn, int nItem, int nSubItem = -1,
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3751 int nMask = LVCF_FMT | LVCF_WIDTH | LVCF_TEXT | LVCF_SUBITEM,
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3752 int nFmt = LVCFMT_LEFT)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3753 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3754 const int cxOffset = 15;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3755 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3756 LVCOLUMN lvc = {};
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3757 lvc.mask = nMask;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3758 lvc.fmt = nFmt;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3759 lvc.pszText = (LPTSTR)strColumn;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3760 lvc.cx = GetStringWidth(lvc.pszText) + cxOffset;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3761 if(nMask & LVCF_SUBITEM)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3762 lvc.iSubItem = (nSubItem != -1) ? nSubItem : nItem;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3763 return InsertColumn(nItem, &lvc);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3764 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3765
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3766 int AddItem(int nItem, int nSubItem, LPCTSTR strItem, int nImageIndex = -3)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3767 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3768 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3769 LVITEM lvItem = {};
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3770 lvItem.mask = LVIF_TEXT;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3771 lvItem.iItem = nItem;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3772 lvItem.iSubItem = nSubItem;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3773 lvItem.pszText = (LPTSTR)strItem;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3774 if(nImageIndex != -3)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3775 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3776 lvItem.mask |= LVIF_IMAGE;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3777 lvItem.iImage = nImageIndex;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3778 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3779 if(nSubItem == 0)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3780 return InsertItem(&lvItem);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3781 return SetItem(&lvItem) ? nItem : -1;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3782 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3783
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3784 BOOL SortItemsEx(PFNLVCOMPARE pfnCompare, LPARAM lParamSort)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3785 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3786 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3787 return (BOOL)::SendMessage(this->m_hWnd, LVM_SORTITEMSEX, (WPARAM)lParamSort, (LPARAM)pfnCompare);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3788 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3789
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3790 int InsertGroup(int nItem, PLVGROUP pGroup)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3791 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3792 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3793 return (int)::SendMessage(this->m_hWnd, LVM_INSERTGROUP, nItem, (LPARAM)pGroup);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3794 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3795
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3796 int AddGroup(PLVGROUP pGroup)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3797 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3798 return InsertGroup(-1, pGroup);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3799 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3800
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3801 int RemoveGroup(int nGroupID)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3802 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3803 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3804 return (int)::SendMessage(this->m_hWnd, LVM_REMOVEGROUP, nGroupID, 0L);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3805 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3806
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3807 void MoveGroup(int nGroupID, int nItem)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3808 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3809 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3810 ::SendMessage(this->m_hWnd, LVM_MOVEGROUP, nGroupID, nItem);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3811 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3812
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3813 void MoveItemToGroup(int nItem, int nGroupID)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3814 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3815 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3816 ::SendMessage(this->m_hWnd, LVM_MOVEITEMTOGROUP, nItem, nGroupID);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3817 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3818
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3819 int EnableGroupView(BOOL bEnable)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3820 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3821 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3822 return (int)::SendMessage(this->m_hWnd, LVM_ENABLEGROUPVIEW, bEnable, 0L);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3823 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3824
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3825 int SortGroups(PFNLVGROUPCOMPARE pCompareFunc, LPVOID lpVoid = NULL)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3826 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3827 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3828 return (int)::SendMessage(this->m_hWnd, LVM_SORTGROUPS, (WPARAM)pCompareFunc, (LPARAM)lpVoid);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3829 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3830
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3831 void InsertGroupSorted(PLVINSERTGROUPSORTED pInsertGroupSorted)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3832 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3833 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3834 ::SendMessage(this->m_hWnd, LVM_INSERTGROUPSORTED, (WPARAM)pInsertGroupSorted, 0L);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3835 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3836
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3837 void RemoveAllGroups()
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3838 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3839 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3840 ::SendMessage(this->m_hWnd, LVM_REMOVEALLGROUPS, 0, 0L);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3841 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3842
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3843 BOOL HasGroup(int nGroupID)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3844 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3845 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3846 return (BOOL)::SendMessage(this->m_hWnd, LVM_HASGROUP, nGroupID, 0L);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3847 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3848
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3849 BOOL InsertMarkHitTest(LPPOINT lpPoint, LPLVINSERTMARK pInsertMark) const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3850 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3851 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3852 return (BOOL)::SendMessage(this->m_hWnd, LVM_INSERTMARKHITTEST, (WPARAM)lpPoint, (LPARAM)pInsertMark);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3853 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3854
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3855 BOOL SetInfoTip(PLVSETINFOTIP pSetInfoTip)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3856 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3857 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3858 return (BOOL)::SendMessage(this->m_hWnd, LVM_SETINFOTIP, 0, (LPARAM)pSetInfoTip);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3859 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3860
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3861 void CancelEditLabel()
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3862 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3863 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3864 ::SendMessage(this->m_hWnd, LVM_CANCELEDITLABEL, 0, 0L);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3865 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3866
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3867 UINT MapIndexToID(int nIndex) const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3868 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3869 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3870 return (UINT)::SendMessage(this->m_hWnd, LVM_MAPINDEXTOID, nIndex, 0L);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3871 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3872
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3873 int MapIDToIndex(UINT uID) const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3874 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3875 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3876 return (int)::SendMessage(this->m_hWnd, LVM_MAPIDTOINDEX, uID, 0L);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3877 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3878
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3879 #if (_WIN32_WINNT >= 0x0600)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3880 int HitTestEx(LPLVHITTESTINFO lpHitTestInfo) const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3881 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3882 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3883 return (int)::SendMessage(this->m_hWnd, LVM_HITTEST, (WPARAM)-1, (LPARAM)lpHitTestInfo);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3884 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3885
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3886 int HitTestEx(POINT pt, UINT* pFlags) const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3887 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3888 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3889 LVHITTESTINFO hti = {};
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3890 hti.pt = pt;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3891 int nRes = (int)::SendMessage(this->m_hWnd, LVM_HITTEST, (WPARAM)-1, (LPARAM)&hti);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3892 if (pFlags != NULL)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3893 *pFlags = hti.flags;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3894 return nRes;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3895 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3896
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3897 int SubItemHitTestEx(LPLVHITTESTINFO lpHitTestInfo) const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3898 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3899 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3900 return (int)::SendMessage(this->m_hWnd, LVM_SUBITEMHITTEST, (WPARAM)-1, (LPARAM)lpHitTestInfo);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3901 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3902 #endif // (_WIN32_WINNT >= 0x0600)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3903
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3904 // Note: selects only one item
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3905 BOOL SelectItem(int nIndex)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3906 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3907 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3908
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3909 // multi-selection only: de-select all items
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3910 if((this->GetStyle() & LVS_SINGLESEL) == 0)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3911 SetItemState(-1, 0, LVIS_SELECTED);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3912
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3913 BOOL bRet = SetItemState(nIndex, LVIS_SELECTED | LVIS_FOCUSED, LVIS_SELECTED | LVIS_FOCUSED);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3914 if(bRet)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3915 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3916 SetSelectionMark(nIndex);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3917 bRet = EnsureVisible(nIndex, FALSE);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3918 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3919
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3920 return bRet;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3921 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3922
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3923 // multi-selection only
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3924 BOOL SelectAllItems(bool bSelect = true)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3925 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3926 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3927 ATLASSERT((this->GetStyle() & LVS_SINGLESEL) == 0);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3928
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3929 return SetItemState(-1, bSelect ? LVIS_SELECTED : 0, LVIS_SELECTED);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3930 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3931 };
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3932
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3933 typedef CListViewCtrlT<ATL::CWindow> CListViewCtrl;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3934
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3935
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3936 ///////////////////////////////////////////////////////////////////////////////
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3937 // CTreeViewCtrl
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3938
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3939 template <class TBase>
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3940 class CTreeViewCtrlT : public TBase
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3941 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3942 public:
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3943 // Constructors
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3944 CTreeViewCtrlT(HWND hWnd = NULL) : TBase(hWnd)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3945 { }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3946
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3947 CTreeViewCtrlT< TBase >& operator =(HWND hWnd)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3948 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3949 this->m_hWnd = hWnd;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3950 return *this;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3951 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3952
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3953 HWND Create(HWND hWndParent, ATL::_U_RECT rect = NULL, LPCTSTR szWindowName = NULL,
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3954 DWORD dwStyle = 0, DWORD dwExStyle = 0,
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3955 ATL::_U_MENUorID MenuOrID = 0U, LPVOID lpCreateParam = NULL)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3956 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3957 return TBase::Create(GetWndClassName(), hWndParent, rect.m_lpRect, szWindowName, dwStyle, dwExStyle, MenuOrID.m_hMenu, lpCreateParam);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3958 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3959
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3960 // Attributes
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3961 static LPCTSTR GetWndClassName()
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3962 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3963 return WC_TREEVIEW;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3964 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3965
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3966 UINT GetCount() const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3967 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3968 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3969 return (UINT)::SendMessage(this->m_hWnd, TVM_GETCOUNT, 0, 0L);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3970 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3971
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3972 UINT GetIndent() const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3973 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3974 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3975 return (UINT)::SendMessage(this->m_hWnd, TVM_GETINDENT, 0, 0L);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3976 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3977
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3978 void SetIndent(UINT nIndent)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3979 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3980 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3981 ::SendMessage(this->m_hWnd, TVM_SETINDENT, nIndent, 0L);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3982 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3983
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3984 CImageList GetImageList(int nImageListType = TVSIL_NORMAL) const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3985 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3986 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3987 return CImageList((HIMAGELIST)::SendMessage(this->m_hWnd, TVM_GETIMAGELIST, (WPARAM)nImageListType, 0L));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3988 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3989
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3990 CImageList SetImageList(HIMAGELIST hImageList, int nImageListType = TVSIL_NORMAL)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3991 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3992 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3993 return CImageList((HIMAGELIST)::SendMessage(this->m_hWnd, TVM_SETIMAGELIST, (WPARAM)nImageListType, (LPARAM)hImageList));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3994 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3995
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3996 BOOL GetItem(LPTVITEM pItem) const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3997 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3998 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3999 return (BOOL)::SendMessage(this->m_hWnd, TVM_GETITEM, 0, (LPARAM)pItem);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4000 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4001
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4002 BOOL SetItem(LPTVITEM pItem)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4003 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4004 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4005 return (BOOL)::SendMessage(this->m_hWnd, TVM_SETITEM, 0, (LPARAM)pItem);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4006 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4007
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4008 BOOL SetItem(HTREEITEM hItem, UINT nMask, LPCTSTR lpszItem, int nImage,
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4009 int nSelectedImage, UINT nState, UINT nStateMask, LPARAM lParam)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4010 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4011 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4012 TVITEM item = {};
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4013 item.hItem = hItem;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4014 item.mask = nMask;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4015 item.pszText = (LPTSTR) lpszItem;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4016 item.iImage = nImage;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4017 item.iSelectedImage = nSelectedImage;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4018 item.state = nState;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4019 item.stateMask = nStateMask;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4020 item.lParam = lParam;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4021 return (BOOL)::SendMessage(this->m_hWnd, TVM_SETITEM, 0, (LPARAM)&item);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4022 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4023
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4024 BOOL GetItemText(HTREEITEM hItem, LPTSTR lpstrText, int nLen) const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4025 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4026 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4027 ATLASSERT(lpstrText != NULL);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4028
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4029 TVITEM item = {};
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4030 item.hItem = hItem;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4031 item.mask = TVIF_TEXT;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4032 item.pszText = lpstrText;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4033 item.cchTextMax = nLen;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4034
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4035 return (BOOL)::SendMessage(this->m_hWnd, TVM_GETITEM, 0, (LPARAM)&item);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4036 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4037
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4038 BOOL GetItemText(HTREEITEM hItem, BSTR& bstrText) const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4039 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4040 USES_CONVERSION;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4041 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4042 ATLASSERT(bstrText == NULL);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4043 TVITEM item = {};
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4044 item.hItem = hItem;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4045 item.mask = TVIF_TEXT;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4046
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4047 LPTSTR lpstrText = NULL;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4048 BOOL bRet = FALSE;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4049 for(int nLen = 256; ; nLen *= 2)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4050 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4051 ATLTRY(lpstrText = new TCHAR[nLen]);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4052 if(lpstrText == NULL)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4053 break;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4054 lpstrText[0] = NULL;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4055 item.pszText = lpstrText;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4056 item.cchTextMax = nLen;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4057 bRet = (BOOL)::SendMessage(this->m_hWnd, TVM_GETITEM, 0, (LPARAM)&item);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4058 if(!bRet || (lstrlen(item.pszText) < (nLen - 1)))
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4059 break;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4060 delete [] lpstrText;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4061 lpstrText = NULL;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4062 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4063
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4064 if(lpstrText != NULL)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4065 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4066 if(bRet)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4067 bstrText = ::SysAllocString(T2OLE(lpstrText));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4068 delete [] lpstrText;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4069 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4070
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4071 return (bstrText != NULL) ? TRUE : FALSE;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4072 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4073
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4074 #ifdef __ATLSTR_H__
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4075 BOOL GetItemText(HTREEITEM hItem, ATL::CString& strText) const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4076 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4077 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4078 TVITEM item = {};
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4079 item.hItem = hItem;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4080 item.mask = TVIF_TEXT;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4081
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4082 strText.Empty();
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4083 BOOL bRet = FALSE;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4084 for(int nLen = 256; ; nLen *= 2)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4085 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4086 item.pszText = strText.GetBufferSetLength(nLen);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4087 if(item.pszText == NULL)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4088 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4089 bRet = FALSE;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4090 break;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4091 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4092 item.cchTextMax = nLen;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4093 bRet = (BOOL)::SendMessage(this->m_hWnd, TVM_GETITEM, 0, (LPARAM)&item);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4094 if(!bRet || (lstrlen(item.pszText) < (nLen - 1)))
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4095 break;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4096 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4097 strText.ReleaseBuffer();
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4098 return bRet;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4099 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4100 #endif // __ATLSTR_H__
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4101
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4102 BOOL SetItemText(HTREEITEM hItem, LPCTSTR lpszItem)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4103 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4104 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4105 return SetItem(hItem, TVIF_TEXT, lpszItem, 0, 0, 0, 0, NULL);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4106 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4107
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4108 BOOL GetItemImage(HTREEITEM hItem, int& nImage, int& nSelectedImage) const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4109 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4110 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4111 TVITEM item = {};
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4112 item.hItem = hItem;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4113 item.mask = TVIF_IMAGE|TVIF_SELECTEDIMAGE;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4114 BOOL bRes = (BOOL)::SendMessage(this->m_hWnd, TVM_GETITEM, 0, (LPARAM)&item);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4115 if (bRes)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4116 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4117 nImage = item.iImage;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4118 nSelectedImage = item.iSelectedImage;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4119 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4120 return bRes;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4121 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4122
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4123 BOOL SetItemImage(HTREEITEM hItem, int nImage, int nSelectedImage)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4124 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4125 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4126 return SetItem(hItem, TVIF_IMAGE|TVIF_SELECTEDIMAGE, NULL, nImage, nSelectedImage, 0, 0, NULL);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4127 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4128
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4129 UINT GetItemState(HTREEITEM hItem, UINT nStateMask) const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4130 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4131 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4132 return (((UINT)::SendMessage(this->m_hWnd, TVM_GETITEMSTATE, (WPARAM)hItem, (LPARAM)nStateMask)) & nStateMask);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4133 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4134
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4135 BOOL SetItemState(HTREEITEM hItem, UINT nState, UINT nStateMask)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4136 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4137 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4138 return SetItem(hItem, TVIF_STATE, NULL, 0, 0, nState, nStateMask, NULL);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4139 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4140
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4141 DWORD_PTR GetItemData(HTREEITEM hItem) const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4142 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4143 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4144 TVITEM item = {};
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4145 item.hItem = hItem;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4146 item.mask = TVIF_PARAM;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4147 BOOL bRet = (BOOL)::SendMessage(this->m_hWnd, TVM_GETITEM, 0, (LPARAM)&item);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4148 return (DWORD_PTR)(bRet ? item.lParam : NULL);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4149 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4150
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4151 BOOL SetItemData(HTREEITEM hItem, DWORD_PTR dwData)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4152 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4153 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4154 return SetItem(hItem, TVIF_PARAM, NULL, 0, 0, 0, 0, (LPARAM)dwData);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4155 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4156
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4157 CEdit GetEditControl() const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4158 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4159 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4160 return CEdit((HWND)::SendMessage(this->m_hWnd, TVM_GETEDITCONTROL, 0, 0L));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4161 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4162
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4163 UINT GetVisibleCount() const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4164 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4165 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4166 return (UINT)::SendMessage(this->m_hWnd, TVM_GETVISIBLECOUNT, 0, 0L);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4167 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4168
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4169 BOOL GetItemRect(HTREEITEM hItem, LPRECT lpRect, BOOL bTextOnly) const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4170 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4171 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4172 *(HTREEITEM*)lpRect = hItem;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4173 return (BOOL)::SendMessage(this->m_hWnd, TVM_GETITEMRECT, (WPARAM)bTextOnly, (LPARAM)lpRect);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4174 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4175
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4176 BOOL ItemHasChildren(HTREEITEM hItem) const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4177 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4178 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4179 TVITEM item = {};
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4180 item.hItem = hItem;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4181 item.mask = TVIF_CHILDREN;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4182 ::SendMessage(this->m_hWnd, TVM_GETITEM, 0, (LPARAM)&item);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4183 return item.cChildren;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4184 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4185
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4186 CToolTipCtrl GetToolTips() const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4187 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4188 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4189 return CToolTipCtrl((HWND)::SendMessage(this->m_hWnd, TVM_GETTOOLTIPS, 0, 0L));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4190 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4191
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4192 CToolTipCtrl SetToolTips(HWND hWndTT)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4193 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4194 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4195 return CToolTipCtrl((HWND)::SendMessage(this->m_hWnd, TVM_SETTOOLTIPS, (WPARAM)hWndTT, 0L));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4196 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4197
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4198 int GetISearchString(LPTSTR lpstr) const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4199 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4200 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4201 return (int)::SendMessage(this->m_hWnd, TVM_GETISEARCHSTRING, 0, (LPARAM)lpstr);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4202 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4203
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4204 // checkboxes only
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4205 BOOL GetCheckState(HTREEITEM hItem) const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4206 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4207 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4208 ATLASSERT((this->GetStyle() & TVS_CHECKBOXES) != 0);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4209 UINT uRet = GetItemState(hItem, TVIS_STATEIMAGEMASK);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4210 return (uRet >> 12) - 1;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4211 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4212
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4213 BOOL SetCheckState(HTREEITEM hItem, BOOL bCheck)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4214 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4215 int nCheck = bCheck ? 2 : 1; // one based index
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4216 return SetItemState(hItem, INDEXTOSTATEIMAGEMASK(nCheck), TVIS_STATEIMAGEMASK);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4217 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4218
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4219 COLORREF GetBkColor() const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4220 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4221 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4222 return (COLORREF)::SendMessage(this->m_hWnd, TVM_GETBKCOLOR, 0, 0L);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4223 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4224
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4225 COLORREF SetBkColor(COLORREF clr)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4226 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4227 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4228 return (COLORREF)::SendMessage(this->m_hWnd, TVM_SETBKCOLOR, 0, (LPARAM)clr);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4229 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4230
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4231 COLORREF GetInsertMarkColor() const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4232 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4233 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4234 return (COLORREF)::SendMessage(this->m_hWnd, TVM_GETINSERTMARKCOLOR, 0, 0L);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4235 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4236
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4237 COLORREF SetInsertMarkColor(COLORREF clr)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4238 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4239 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4240 return (COLORREF)::SendMessage(this->m_hWnd, TVM_SETINSERTMARKCOLOR, 0, (LPARAM)clr);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4241 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4242
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4243 int GetItemHeight() const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4244 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4245 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4246 return (int)::SendMessage(this->m_hWnd, TVM_GETITEMHEIGHT, 0, 0L);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4247 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4248
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4249 int SetItemHeight(int cyHeight)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4250 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4251 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4252 return (int)::SendMessage(this->m_hWnd, TVM_SETITEMHEIGHT, cyHeight, 0L);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4253 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4254
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4255 int GetScrollTime() const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4256 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4257 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4258 return (int)::SendMessage(this->m_hWnd, TVM_GETSCROLLTIME, 0, 0L);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4259 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4260
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4261 int SetScrollTime(int nScrollTime)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4262 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4263 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4264 return (int)::SendMessage(this->m_hWnd, TVM_SETSCROLLTIME, nScrollTime, 0L);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4265 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4266
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4267 COLORREF GetTextColor() const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4268 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4269 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4270 return (COLORREF)::SendMessage(this->m_hWnd, TVM_GETTEXTCOLOR, 0, 0L);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4271 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4272
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4273 COLORREF SetTextColor(COLORREF clr)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4274 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4275 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4276 return (COLORREF)::SendMessage(this->m_hWnd, TVM_SETTEXTCOLOR, 0, (LPARAM)clr);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4277 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4278
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4279 BOOL GetUnicodeFormat() const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4280 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4281 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4282 return (BOOL)::SendMessage(this->m_hWnd, TVM_GETUNICODEFORMAT, 0, 0L);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4283 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4284
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4285 BOOL SetUnicodeFormat(BOOL bUnicode = TRUE)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4286 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4287 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4288 return (BOOL)::SendMessage(this->m_hWnd, TVM_SETUNICODEFORMAT, bUnicode, 0L);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4289 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4290
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4291 COLORREF GetLineColor() const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4292 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4293 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4294 return (COLORREF)::SendMessage(this->m_hWnd, TVM_GETLINECOLOR, 0, 0L);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4295 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4296
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4297 COLORREF SetLineColor(COLORREF clrNew /*= CLR_DEFAULT*/)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4298 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4299 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4300 return (COLORREF)::SendMessage(this->m_hWnd, TVM_SETLINECOLOR, 0, (LPARAM)clrNew);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4301 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4302
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4303 BOOL GetItem(LPTVITEMEX pItem) const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4304 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4305 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4306 return (BOOL)::SendMessage(this->m_hWnd, TVM_GETITEM, 0, (LPARAM)pItem);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4307 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4308
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4309 BOOL SetItem(LPTVITEMEX pItem)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4310 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4311 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4312 return (BOOL)::SendMessage(this->m_hWnd, TVM_SETITEM, 0, (LPARAM)pItem);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4313 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4314
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4315 DWORD GetExtendedStyle() const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4316 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4317 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4318 return (DWORD)::SendMessage(this->m_hWnd, TVM_GETEXTENDEDSTYLE, 0, 0L);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4319 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4320
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4321 DWORD SetExtendedStyle(DWORD dwStyle, DWORD dwMask)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4322 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4323 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4324 return (DWORD)::SendMessage(this->m_hWnd, TVM_SETEXTENDEDSTYLE, dwMask, dwStyle);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4325 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4326
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4327 #if (_WIN32_WINNT >= 0x0600)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4328 BOOL SetAutoScrollInfo(UINT uPixPerSec, UINT uUpdateTime)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4329 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4330 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4331 return (BOOL)::SendMessage(this->m_hWnd, TVM_SETAUTOSCROLLINFO, (WPARAM)uPixPerSec, (LPARAM)uUpdateTime);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4332 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4333
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4334 DWORD GetSelectedCount() const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4335 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4336 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4337 return (DWORD)::SendMessage(this->m_hWnd, TVM_GETSELECTEDCOUNT, 0, 0L);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4338 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4339
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4340 BOOL GetItemPartRect(HTREEITEM hItem, TVITEMPART partID, LPRECT lpRect) const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4341 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4342 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4343 TVGETITEMPARTRECTINFO gipri = { hItem, lpRect, partID };
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4344 return (BOOL)::SendMessage(this->m_hWnd, TVM_GETITEMPARTRECT, 0, (LPARAM)&gipri);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4345 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4346 #endif // (_WIN32_WINNT >= 0x0600)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4347
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4348 // Operations
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4349 HTREEITEM InsertItem(LPTVINSERTSTRUCT lpInsertStruct)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4350 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4351 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4352 return (HTREEITEM)::SendMessage(this->m_hWnd, TVM_INSERTITEM, 0, (LPARAM)lpInsertStruct);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4353 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4354
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4355 HTREEITEM InsertItem(LPCTSTR lpszItem, int nImage,
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4356 int nSelectedImage, HTREEITEM hParent, HTREEITEM hInsertAfter)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4357 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4358 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4359 return InsertItem(TVIF_TEXT | TVIF_IMAGE | TVIF_SELECTEDIMAGE, lpszItem, nImage, nSelectedImage, 0, 0, 0, hParent, hInsertAfter);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4360 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4361
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4362 HTREEITEM InsertItem(LPCTSTR lpszItem, HTREEITEM hParent, HTREEITEM hInsertAfter)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4363 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4364 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4365 return InsertItem(TVIF_TEXT, lpszItem, 0, 0, 0, 0, 0, hParent, hInsertAfter);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4366 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4367
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4368 HTREEITEM InsertItem(UINT nMask, LPCTSTR lpszItem, int nImage,
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4369 int nSelectedImage, UINT nState, UINT nStateMask, LPARAM lParam,
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4370 HTREEITEM hParent, HTREEITEM hInsertAfter)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4371 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4372 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4373 TVINSERTSTRUCT tvis = {};
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4374 tvis.hParent = hParent;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4375 tvis.hInsertAfter = hInsertAfter;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4376 tvis.item.mask = nMask;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4377 tvis.item.pszText = (LPTSTR) lpszItem;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4378 tvis.item.iImage = nImage;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4379 tvis.item.iSelectedImage = nSelectedImage;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4380 tvis.item.state = nState;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4381 tvis.item.stateMask = nStateMask;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4382 tvis.item.lParam = lParam;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4383 return (HTREEITEM)::SendMessage(this->m_hWnd, TVM_INSERTITEM, 0, (LPARAM)&tvis);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4384 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4385
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4386 BOOL DeleteItem(HTREEITEM hItem)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4387 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4388 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4389 return (BOOL)::SendMessage(this->m_hWnd, TVM_DELETEITEM, 0, (LPARAM)hItem);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4390 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4391
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4392 BOOL DeleteAllItems()
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4393 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4394 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4395 return (BOOL)::SendMessage(this->m_hWnd, TVM_DELETEITEM, 0, (LPARAM)TVI_ROOT);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4396 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4397
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4398 BOOL Expand(HTREEITEM hItem, UINT nCode = TVE_EXPAND)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4399 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4400 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4401 return (BOOL)::SendMessage(this->m_hWnd, TVM_EXPAND, nCode, (LPARAM)hItem);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4402 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4403
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4404 HTREEITEM GetNextItem(HTREEITEM hItem, UINT nCode) const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4405 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4406 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4407 return (HTREEITEM)::SendMessage(this->m_hWnd, TVM_GETNEXTITEM, nCode, (LPARAM)hItem);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4408 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4409
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4410 HTREEITEM GetChildItem(HTREEITEM hItem) const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4411 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4412 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4413 return (HTREEITEM)::SendMessage(this->m_hWnd, TVM_GETNEXTITEM, TVGN_CHILD, (LPARAM)hItem);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4414 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4415
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4416 HTREEITEM GetNextSiblingItem(HTREEITEM hItem) const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4417 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4418 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4419 return (HTREEITEM)::SendMessage(this->m_hWnd, TVM_GETNEXTITEM, TVGN_NEXT, (LPARAM)hItem);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4420 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4421
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4422 HTREEITEM GetPrevSiblingItem(HTREEITEM hItem) const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4423 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4424 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4425 return (HTREEITEM)::SendMessage(this->m_hWnd, TVM_GETNEXTITEM, TVGN_PREVIOUS, (LPARAM)hItem);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4426 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4427
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4428 HTREEITEM GetParentItem(HTREEITEM hItem) const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4429 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4430 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4431 return (HTREEITEM)::SendMessage(this->m_hWnd, TVM_GETNEXTITEM, TVGN_PARENT, (LPARAM)hItem);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4432 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4433
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4434 HTREEITEM GetFirstVisibleItem() const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4435 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4436 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4437 return (HTREEITEM)::SendMessage(this->m_hWnd, TVM_GETNEXTITEM, TVGN_FIRSTVISIBLE, 0L);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4438 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4439
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4440 HTREEITEM GetNextVisibleItem(HTREEITEM hItem) const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4441 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4442 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4443 return (HTREEITEM)::SendMessage(this->m_hWnd, TVM_GETNEXTITEM, TVGN_NEXTVISIBLE, (LPARAM)hItem);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4444 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4445
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4446 HTREEITEM GetPrevVisibleItem(HTREEITEM hItem) const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4447 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4448 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4449 return (HTREEITEM)::SendMessage(this->m_hWnd, TVM_GETNEXTITEM, TVGN_PREVIOUSVISIBLE, (LPARAM)hItem);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4450 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4451
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4452 HTREEITEM GetSelectedItem() const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4453 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4454 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4455 return (HTREEITEM)::SendMessage(this->m_hWnd, TVM_GETNEXTITEM, TVGN_CARET, 0L);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4456 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4457
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4458 HTREEITEM GetDropHilightItem() const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4459 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4460 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4461 return (HTREEITEM)::SendMessage(this->m_hWnd, TVM_GETNEXTITEM, TVGN_DROPHILITE, 0L);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4462 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4463
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4464 HTREEITEM GetRootItem() const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4465 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4466 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4467 return (HTREEITEM)::SendMessage(this->m_hWnd, TVM_GETNEXTITEM, TVGN_ROOT, 0L);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4468 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4469
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4470 HTREEITEM GetLastVisibleItem() const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4471 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4472 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4473 return (HTREEITEM)::SendMessage(this->m_hWnd, TVM_GETNEXTITEM, TVGN_LASTVISIBLE, 0L);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4474 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4475
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4476 HTREEITEM GetNextSelectedItem() const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4477 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4478 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4479 return (HTREEITEM)::SendMessage(this->m_hWnd, TVM_GETNEXTITEM, TVGN_NEXTSELECTED, 0L);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4480 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4481
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4482 BOOL Select(HTREEITEM hItem, UINT nCode)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4483 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4484 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4485 return (BOOL)::SendMessage(this->m_hWnd, TVM_SELECTITEM, nCode, (LPARAM)hItem);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4486 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4487
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4488 BOOL SelectItem(HTREEITEM hItem)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4489 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4490 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4491 return (BOOL)::SendMessage(this->m_hWnd, TVM_SELECTITEM, TVGN_CARET, (LPARAM)hItem);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4492 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4493
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4494 BOOL SelectDropTarget(HTREEITEM hItem)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4495 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4496 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4497 return (BOOL)::SendMessage(this->m_hWnd, TVM_SELECTITEM, TVGN_DROPHILITE, (LPARAM)hItem);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4498 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4499
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4500 BOOL SelectSetFirstVisible(HTREEITEM hItem)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4501 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4502 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4503 return (BOOL)::SendMessage(this->m_hWnd, TVM_SELECTITEM, TVGN_FIRSTVISIBLE, (LPARAM)hItem);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4504 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4505
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4506 CEdit EditLabel(HTREEITEM hItem)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4507 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4508 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4509 return CEdit((HWND)::SendMessage(this->m_hWnd, TVM_EDITLABEL, 0, (LPARAM)hItem));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4510 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4511
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4512 BOOL EndEditLabelNow(BOOL bCancel)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4513 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4514 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4515 return (BOOL)::SendMessage(this->m_hWnd, TVM_ENDEDITLABELNOW, bCancel, 0L);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4516 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4517
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4518 HTREEITEM HitTest(TVHITTESTINFO* pHitTestInfo) const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4519 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4520 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4521 return (HTREEITEM)::SendMessage(this->m_hWnd, TVM_HITTEST, 0, (LPARAM)pHitTestInfo);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4522 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4523
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4524 HTREEITEM HitTest(POINT pt, UINT* pFlags) const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4525 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4526 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4527 TVHITTESTINFO hti = {};
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4528 hti.pt = pt;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4529 HTREEITEM hTreeItem = (HTREEITEM)::SendMessage(this->m_hWnd, TVM_HITTEST, 0, (LPARAM)&hti);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4530 if (pFlags != NULL)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4531 *pFlags = hti.flags;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4532 return hTreeItem;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4533 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4534
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4535 BOOL SortChildren(HTREEITEM hItem, BOOL bRecurse = FALSE)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4536 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4537 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4538 return (BOOL)::SendMessage(this->m_hWnd, TVM_SORTCHILDREN, (WPARAM)bRecurse, (LPARAM)hItem);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4539 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4540
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4541 BOOL EnsureVisible(HTREEITEM hItem)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4542 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4543 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4544 return (BOOL)::SendMessage(this->m_hWnd, TVM_ENSUREVISIBLE, 0, (LPARAM)hItem);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4545 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4546
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4547 BOOL SortChildrenCB(LPTVSORTCB pSort, BOOL bRecurse = FALSE)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4548 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4549 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4550 return (BOOL)::SendMessage(this->m_hWnd, TVM_SORTCHILDRENCB, (WPARAM)bRecurse, (LPARAM)pSort);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4551 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4552
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4553 CImageList RemoveImageList(int nImageList)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4554 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4555 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4556 return CImageList((HIMAGELIST)::SendMessage(this->m_hWnd, TVM_SETIMAGELIST, (WPARAM)nImageList, NULL));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4557 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4558
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4559 CImageList CreateDragImage(HTREEITEM hItem)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4560 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4561 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4562 return CImageList((HIMAGELIST)::SendMessage(this->m_hWnd, TVM_CREATEDRAGIMAGE, 0, (LPARAM)hItem));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4563 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4564
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4565 BOOL SetInsertMark(HTREEITEM hTreeItem, BOOL bAfter)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4566 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4567 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4568 return (BOOL)::SendMessage(this->m_hWnd, TVM_SETINSERTMARK, bAfter, (LPARAM)hTreeItem);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4569 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4570
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4571 BOOL RemoveInsertMark()
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4572 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4573 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4574 return (BOOL)::SendMessage(this->m_hWnd, TVM_SETINSERTMARK, 0, 0L);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4575 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4576
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4577 HTREEITEM MapAccIDToHTREEITEM(UINT uID) const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4578 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4579 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4580 return (HTREEITEM)::SendMessage(this->m_hWnd, TVM_MAPACCIDTOHTREEITEM, uID, 0L);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4581 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4582
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4583 UINT MapHTREEITEMToAccID(HTREEITEM hTreeItem) const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4584 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4585 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4586 return (UINT)::SendMessage(this->m_hWnd, TVM_MAPHTREEITEMTOACCID, (WPARAM)hTreeItem, 0L);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4587 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4588
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4589 #if (_WIN32_WINNT >= 0x0600)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4590 void ShowInfoTip(HTREEITEM hItem)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4591 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4592 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4593 ::SendMessage(this->m_hWnd, TVM_SHOWINFOTIP, 0, (LPARAM)hItem);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4594 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4595 #endif // (_WIN32_WINNT >= 0x0600)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4596 };
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4597
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4598 typedef CTreeViewCtrlT<ATL::CWindow> CTreeViewCtrl;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4599
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4600
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4601 ///////////////////////////////////////////////////////////////////////////////
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4602 // CTreeViewCtrlEx
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4603
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4604 // forward declaration
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4605 template <class TBase> class CTreeViewCtrlExT;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4606
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4607 // Note: TBase here is for CTreeViewCtrlExT, and not for CTreeItemT itself
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4608 template <class TBase>
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4609 class CTreeItemT
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4610 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4611 public:
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4612 HTREEITEM m_hTreeItem;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4613 CTreeViewCtrlExT<TBase>* m_pTreeView;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4614
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4615 // Construction
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4616 CTreeItemT(HTREEITEM hTreeItem = NULL, CTreeViewCtrlExT<TBase>* pTreeView = NULL) : m_hTreeItem(hTreeItem), m_pTreeView(pTreeView)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4617 { }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4618
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4619 CTreeItemT(const CTreeItemT<TBase>& posSrc)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4620 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4621 *this = posSrc;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4622 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4623
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4624 operator HTREEITEM() { return m_hTreeItem; }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4625
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4626 CTreeItemT<TBase>& operator =(const CTreeItemT<TBase>& itemSrc)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4627 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4628 m_hTreeItem = itemSrc.m_hTreeItem;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4629 m_pTreeView = itemSrc.m_pTreeView;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4630 return *this;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4631 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4632
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4633 // Attributes
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4634 CTreeViewCtrlExT<TBase>* GetTreeView() const { return m_pTreeView; }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4635
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4636 BOOL operator !() const { return m_hTreeItem == NULL; }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4637
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4638 BOOL IsNull() const { return m_hTreeItem == NULL; }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4639
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4640 BOOL GetRect(LPRECT lpRect, BOOL bTextOnly) const;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4641 BOOL GetText(LPTSTR lpstrText, int nLen) const;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4642 BOOL GetText(BSTR& bstrText) const;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4643 #ifdef __ATLSTR_H__
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4644 BOOL GetText(ATL::CString& strText) const;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4645 #endif // __ATLSTR_H__
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4646 BOOL SetText(LPCTSTR lpszItem);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4647 BOOL GetImage(int& nImage, int& nSelectedImage) const;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4648 BOOL SetImage(int nImage, int nSelectedImage);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4649 UINT GetState(UINT nStateMask) const;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4650 BOOL SetState(UINT nState, UINT nStateMask);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4651 DWORD_PTR GetData() const;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4652 BOOL SetData(DWORD_PTR dwData);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4653 BOOL SetItem(UINT nMask, LPCTSTR lpszItem, int nImage, int nSelectedImage, UINT nState, UINT nStateMask, LPARAM lParam);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4654
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4655 // Operations
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4656 CTreeItemT<TBase> InsertAfter(LPCTSTR lpstrItem, HTREEITEM hItemAfter, int nImageIndex)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4657 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4658 return _Insert(lpstrItem, nImageIndex, hItemAfter);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4659 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4660
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4661 CTreeItemT<TBase> AddHead(LPCTSTR lpstrItem, int nImageIndex)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4662 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4663 return _Insert(lpstrItem, nImageIndex, TVI_FIRST);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4664 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4665
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4666 CTreeItemT<TBase> AddTail(LPCTSTR lpstrItem, int nImageIndex)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4667 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4668 return _Insert(lpstrItem, nImageIndex, TVI_LAST);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4669 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4670
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4671 CTreeItemT<TBase> GetChild() const;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4672 CTreeItemT<TBase> GetNext(UINT nCode) const;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4673 CTreeItemT<TBase> GetNextSibling() const;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4674 CTreeItemT<TBase> GetPrevSibling() const;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4675 CTreeItemT<TBase> GetParent() const;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4676 CTreeItemT<TBase> GetFirstVisible() const;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4677 CTreeItemT<TBase> GetNextVisible() const;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4678 CTreeItemT<TBase> GetPrevVisible() const;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4679 CTreeItemT<TBase> GetSelected() const;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4680 CTreeItemT<TBase> GetDropHilight() const;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4681 CTreeItemT<TBase> GetRoot() const;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4682 CTreeItemT<TBase> GetLastVisible() const;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4683 CTreeItemT<TBase> GetNextSelected() const;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4684 BOOL HasChildren() const;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4685 BOOL Delete();
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4686 BOOL Expand(UINT nCode = TVE_EXPAND);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4687 BOOL Select(UINT nCode);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4688 BOOL Select();
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4689 BOOL SelectDropTarget();
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4690 BOOL SelectSetFirstVisible();
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4691 HWND EditLabel();
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4692 HIMAGELIST CreateDragImage();
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4693 BOOL SortChildren(BOOL bRecurse = FALSE);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4694 BOOL EnsureVisible();
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4695 CTreeItemT<TBase> _Insert(LPCTSTR lpstrItem, int nImageIndex, HTREEITEM hItemAfter);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4696 int GetImageIndex() const;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4697 BOOL SetInsertMark(BOOL bAfter);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4698 UINT MapHTREEITEMToAccID() const;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4699 #if (_WIN32_WINNT >= 0x0600)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4700 void ShowInfoTip();
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4701 BOOL GetPartRect(TVITEMPART partID, LPRECT lpRect) const;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4702 #endif // (_WIN32_WINNT >= 0x0600)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4703 };
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4704
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4705 typedef CTreeItemT<ATL::CWindow> CTreeItem;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4706
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4707
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4708 template <class TBase>
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4709 class CTreeViewCtrlExT : public CTreeViewCtrlT< TBase >
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4710 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4711 public:
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4712 // Constructors
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4713 CTreeViewCtrlExT(HWND hWnd = NULL) : CTreeViewCtrlT< TBase >(hWnd)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4714 { }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4715
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4716 CTreeViewCtrlExT< TBase >& operator =(HWND hWnd)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4717 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4718 this->m_hWnd = hWnd;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4719 return *this;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4720 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4721
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4722 // Operations (overides that return CTreeItem)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4723 CTreeItemT<TBase> InsertItem(LPTVINSERTSTRUCT lpInsertStruct)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4724 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4725 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4726 HTREEITEM hTreeItem = (HTREEITEM)::SendMessage(this->m_hWnd, TVM_INSERTITEM, 0, (LPARAM)lpInsertStruct);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4727 return CTreeItemT<TBase>(hTreeItem, this);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4728 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4729
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4730 CTreeItemT<TBase> InsertItem(LPCTSTR lpszItem, int nImage,
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4731 int nSelectedImage, HTREEITEM hParent, HTREEITEM hInsertAfter)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4732 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4733 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4734 return InsertItem(TVIF_TEXT | TVIF_IMAGE | TVIF_SELECTEDIMAGE, lpszItem, nImage, nSelectedImage, 0, 0, 0, hParent, hInsertAfter);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4735 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4736
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4737 CTreeItemT<TBase> InsertItem(LPCTSTR lpszItem, HTREEITEM hParent, HTREEITEM hInsertAfter)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4738 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4739 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4740 return InsertItem(TVIF_TEXT, lpszItem, 0, 0, 0, 0, 0, hParent, hInsertAfter);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4741 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4742
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4743 CTreeItemT<TBase> GetNextItem(HTREEITEM hItem, UINT nCode) const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4744 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4745 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4746 HTREEITEM hTreeItem = (HTREEITEM)::SendMessage(this->m_hWnd, TVM_GETNEXTITEM, nCode, (LPARAM)hItem);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4747 return CTreeItemT<TBase>(hTreeItem, (CTreeViewCtrlExT<TBase>*)this);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4748 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4749
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4750 CTreeItemT<TBase> GetChildItem(HTREEITEM hItem) const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4751 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4752 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4753 HTREEITEM hTreeItem = (HTREEITEM)::SendMessage(this->m_hWnd, TVM_GETNEXTITEM, TVGN_CHILD, (LPARAM)hItem);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4754 return CTreeItemT<TBase>(hTreeItem, (CTreeViewCtrlExT<TBase>*)this);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4755 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4756
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4757 CTreeItemT<TBase> GetNextSiblingItem(HTREEITEM hItem) const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4758 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4759 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4760 HTREEITEM hTreeItem = (HTREEITEM)::SendMessage(this->m_hWnd, TVM_GETNEXTITEM, TVGN_NEXT, (LPARAM)hItem);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4761 return CTreeItemT<TBase>(hTreeItem, (CTreeViewCtrlExT<TBase>*)this);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4762 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4763
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4764 CTreeItemT<TBase> GetPrevSiblingItem(HTREEITEM hItem) const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4765 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4766 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4767 HTREEITEM hTreeItem = (HTREEITEM)::SendMessage(this->m_hWnd, TVM_GETNEXTITEM, TVGN_PREVIOUS, (LPARAM)hItem);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4768 return CTreeItemT<TBase>(hTreeItem, (CTreeViewCtrlExT<TBase>*)this);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4769 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4770
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4771 CTreeItemT<TBase> GetParentItem(HTREEITEM hItem) const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4772 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4773 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4774 HTREEITEM hTreeItem = (HTREEITEM)::SendMessage(this->m_hWnd, TVM_GETNEXTITEM, TVGN_PARENT, (LPARAM)hItem);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4775 return CTreeItemT<TBase>(hTreeItem, (CTreeViewCtrlExT<TBase>*)this);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4776 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4777
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4778 CTreeItemT<TBase> GetFirstVisibleItem() const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4779 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4780 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4781 HTREEITEM hTreeItem = (HTREEITEM)::SendMessage(this->m_hWnd, TVM_GETNEXTITEM, TVGN_FIRSTVISIBLE, 0L);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4782 return CTreeItemT<TBase>(hTreeItem, (CTreeViewCtrlExT<TBase>*)this);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4783 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4784
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4785 CTreeItemT<TBase> GetNextVisibleItem(HTREEITEM hItem) const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4786 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4787 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4788 HTREEITEM hTreeItem = (HTREEITEM)::SendMessage(this->m_hWnd, TVM_GETNEXTITEM, TVGN_NEXTVISIBLE, (LPARAM)hItem);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4789 return CTreeItemT<TBase>(hTreeItem, (CTreeViewCtrlExT<TBase>*)this);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4790 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4791
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4792 CTreeItemT<TBase> GetPrevVisibleItem(HTREEITEM hItem) const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4793 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4794 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4795 HTREEITEM hTreeItem = (HTREEITEM)::SendMessage(this->m_hWnd, TVM_GETNEXTITEM, TVGN_PREVIOUSVISIBLE, (LPARAM)hItem);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4796 return CTreeItemT<TBase>(hTreeItem, (CTreeViewCtrlExT<TBase>*)this);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4797 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4798
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4799 CTreeItemT<TBase> GetSelectedItem() const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4800 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4801 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4802 HTREEITEM hTreeItem = (HTREEITEM)::SendMessage(this->m_hWnd, TVM_GETNEXTITEM, TVGN_CARET, 0L);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4803 return CTreeItemT<TBase>(hTreeItem, (CTreeViewCtrlExT<TBase>*)this);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4804 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4805
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4806 CTreeItemT<TBase> GetDropHilightItem() const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4807 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4808 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4809 HTREEITEM hTreeItem = (HTREEITEM)::SendMessage(this->m_hWnd, TVM_GETNEXTITEM, TVGN_DROPHILITE, 0L);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4810 return CTreeItemT<TBase>(hTreeItem, (CTreeViewCtrlExT<TBase>*)this);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4811 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4812
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4813 CTreeItemT<TBase> GetRootItem() const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4814 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4815 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4816 HTREEITEM hTreeItem = (HTREEITEM)::SendMessage(this->m_hWnd, TVM_GETNEXTITEM, TVGN_ROOT, 0L);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4817 return CTreeItemT<TBase>(hTreeItem, (CTreeViewCtrlExT<TBase>*)this);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4818 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4819
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4820 CTreeItemT<TBase> GetLastVisibleItem() const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4821 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4822 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4823 HTREEITEM hTreeItem = (HTREEITEM)::SendMessage(this->m_hWnd, TVM_GETNEXTITEM, TVGN_LASTVISIBLE, 0L);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4824 return CTreeItemT<TBase>(hTreeItem, (CTreeViewCtrlExT<TBase>*)this);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4825 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4826
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4827 CTreeItemT<TBase> GetNextSelectedItem() const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4828 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4829 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4830 HTREEITEM hTreeItem = (HTREEITEM)::SendMessage(this->m_hWnd, TVM_GETNEXTITEM, TVGN_NEXTSELECTED, 0L);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4831 return CTreeItemT<TBase>(hTreeItem, (CTreeViewCtrlExT<TBase>*)this);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4832 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4833
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4834 CTreeItemT<TBase> HitTest(TVHITTESTINFO* pHitTestInfo) const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4835 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4836 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4837 HTREEITEM hTreeItem = (HTREEITEM)::SendMessage(this->m_hWnd, TVM_HITTEST, 0, (LPARAM)pHitTestInfo);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4838 return CTreeItemT<TBase>(hTreeItem, (CTreeViewCtrlExT<TBase>*)this);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4839 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4840
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4841 CTreeItemT<TBase> InsertItem(UINT nMask, LPCTSTR lpszItem, int nImage,
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4842 int nSelectedImage, UINT nState, UINT nStateMask, LPARAM lParam,
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4843 HTREEITEM hParent, HTREEITEM hInsertAfter)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4844 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4845 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4846 TVINSERTSTRUCT tvis = {};
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4847 tvis.hParent = hParent;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4848 tvis.hInsertAfter = hInsertAfter;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4849 tvis.item.mask = nMask;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4850 tvis.item.pszText = (LPTSTR) lpszItem;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4851 tvis.item.iImage = nImage;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4852 tvis.item.iSelectedImage = nSelectedImage;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4853 tvis.item.state = nState;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4854 tvis.item.stateMask = nStateMask;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4855 tvis.item.lParam = lParam;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4856 HTREEITEM hTreeItem = (HTREEITEM)::SendMessage(this->m_hWnd, TVM_INSERTITEM, 0, (LPARAM)&tvis);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4857 return CTreeItemT<TBase>(hTreeItem, this);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4858 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4859
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4860 CTreeItemT<TBase> HitTest(POINT pt, UINT* pFlags) const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4861 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4862 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4863 TVHITTESTINFO hti = {};
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4864 hti.pt = pt;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4865 HTREEITEM hTreeItem = (HTREEITEM)::SendMessage(this->m_hWnd, TVM_HITTEST, 0, (LPARAM)&hti);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4866 if (pFlags != NULL)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4867 *pFlags = hti.flags;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4868 return CTreeItemT<TBase>(hTreeItem, (CTreeViewCtrlExT<TBase>*)this);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4869 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4870
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4871 CTreeItemT<TBase> MapAccIDToHTREEITEM(UINT uID) const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4872 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4873 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4874 HTREEITEM hTreeItem = (HTREEITEM)::SendMessage(this->m_hWnd, TVM_MAPACCIDTOHTREEITEM, uID, 0L);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4875 return CTreeItemT<TBase>(hTreeItem, (CTreeViewCtrlExT<TBase>*)this);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4876 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4877 };
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4878
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4879 typedef CTreeViewCtrlExT<ATL::CWindow> CTreeViewCtrlEx;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4880
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4881
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4882 // CTreeItem inline methods
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4883 template <class TBase>
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4884 inline BOOL CTreeItemT<TBase>::GetRect(LPRECT lpRect, BOOL bTextOnly) const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4885 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4886 ATLASSERT(m_pTreeView != NULL);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4887 return m_pTreeView->GetItemRect(m_hTreeItem,lpRect,bTextOnly);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4888 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4889
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4890 template <class TBase>
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4891 inline CTreeItemT<TBase> CTreeItemT<TBase>::GetNext(UINT nCode) const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4892 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4893 ATLASSERT(m_pTreeView != NULL);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4894 return m_pTreeView->GetNextItem(m_hTreeItem,nCode);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4895 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4896
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4897 template <class TBase>
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4898 inline CTreeItemT<TBase> CTreeItemT<TBase>::GetChild() const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4899 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4900 ATLASSERT(m_pTreeView != NULL);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4901 return m_pTreeView->GetChildItem(m_hTreeItem);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4902 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4903
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4904 template <class TBase>
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4905 inline CTreeItemT<TBase> CTreeItemT<TBase>::GetNextSibling() const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4906 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4907 ATLASSERT(m_pTreeView != NULL);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4908 return m_pTreeView->GetNextSiblingItem(m_hTreeItem);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4909 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4910
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4911 template <class TBase>
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4912 inline CTreeItemT<TBase> CTreeItemT<TBase>::GetPrevSibling() const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4913 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4914 ATLASSERT(m_pTreeView != NULL);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4915 return m_pTreeView->GetPrevSiblingItem(m_hTreeItem);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4916 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4917
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4918 template <class TBase>
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4919 inline CTreeItemT<TBase> CTreeItemT<TBase>::GetParent() const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4920 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4921 ATLASSERT(m_pTreeView != NULL);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4922 return m_pTreeView->GetParentItem(m_hTreeItem);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4923 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4924
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4925 template <class TBase>
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4926 inline CTreeItemT<TBase> CTreeItemT<TBase>::GetFirstVisible() const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4927 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4928 ATLASSERT(m_pTreeView != NULL);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4929 return m_pTreeView->GetFirstVisibleItem();
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4930 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4931
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4932 template <class TBase>
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4933 inline CTreeItemT<TBase> CTreeItemT<TBase>::GetNextVisible() const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4934 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4935 ATLASSERT(m_pTreeView != NULL);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4936 return m_pTreeView->GetNextVisibleItem(m_hTreeItem);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4937 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4938
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4939 template <class TBase>
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4940 inline CTreeItemT<TBase> CTreeItemT<TBase>::GetPrevVisible() const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4941 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4942 ATLASSERT(m_pTreeView != NULL);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4943 return m_pTreeView->GetPrevVisibleItem(m_hTreeItem);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4944 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4945
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4946 template <class TBase>
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4947 inline CTreeItemT<TBase> CTreeItemT<TBase>::GetSelected() const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4948 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4949 ATLASSERT(m_pTreeView != NULL);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4950 return m_pTreeView->GetSelectedItem();
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4951 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4952
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4953 template <class TBase>
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4954 inline CTreeItemT<TBase> CTreeItemT<TBase>::GetDropHilight() const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4955 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4956 ATLASSERT(m_pTreeView != NULL);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4957 return m_pTreeView->GetDropHilightItem();
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4958 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4959
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4960 template <class TBase>
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4961 inline CTreeItemT<TBase> CTreeItemT<TBase>::GetRoot() const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4962 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4963 ATLASSERT(m_pTreeView != NULL);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4964 return m_pTreeView->GetRootItem();
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4965 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4966
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4967 template <class TBase>
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4968 inline CTreeItemT<TBase> CTreeItemT<TBase>::GetLastVisible() const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4969 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4970 ATLASSERT(m_pTreeView != NULL);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4971 return m_pTreeView->GetLastVisibleItem();
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4972 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4973
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4974 template <class TBase>
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4975 inline CTreeItemT<TBase> CTreeItemT<TBase>::GetNextSelected() const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4976 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4977 ATLASSERT(m_pTreeView != NULL);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4978 return m_pTreeView->GetNextSelectedItem();
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4979 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4980
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4981 template <class TBase>
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4982 inline BOOL CTreeItemT<TBase>::GetText(LPTSTR lpstrText, int nLen) const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4983 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4984 ATLASSERT(m_pTreeView != NULL);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4985 return m_pTreeView->GetItemText(m_hTreeItem, lpstrText, nLen);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4986 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4987
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4988 #ifdef _OLEAUTO_H_
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4989 template <class TBase>
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4990 inline BOOL CTreeItemT<TBase>::GetText(BSTR& bstrText) const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4991 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4992 ATLASSERT(m_pTreeView != NULL);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4993 return m_pTreeView->GetItemText(m_hTreeItem, bstrText);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4994 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4995 #endif // _OLEAUTO_H_
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4996
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4997 #ifdef __ATLSTR_H__
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4998 template <class TBase>
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4999 inline BOOL CTreeItemT<TBase>::GetText(ATL::CString& strText) const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5000 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5001 ATLASSERT(m_pTreeView != NULL);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5002 return m_pTreeView->GetItemText(m_hTreeItem, strText);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5003 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5004 #endif // __ATLSTR_H__
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5005
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5006 template <class TBase>
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5007 inline BOOL CTreeItemT<TBase>::GetImage(int& nImage, int& nSelectedImage) const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5008 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5009 ATLASSERT(m_pTreeView != NULL);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5010 return m_pTreeView->GetItemImage(m_hTreeItem,nImage,nSelectedImage);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5011 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5012
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5013 template <class TBase>
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5014 inline UINT CTreeItemT<TBase>::GetState(UINT nStateMask) const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5015 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5016 ATLASSERT(m_pTreeView != NULL);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5017 return m_pTreeView->GetItemState(m_hTreeItem,nStateMask);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5018 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5019
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5020 template <class TBase>
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5021 inline DWORD_PTR CTreeItemT<TBase>::GetData() const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5022 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5023 ATLASSERT(m_pTreeView != NULL);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5024 return m_pTreeView->GetItemData(m_hTreeItem);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5025 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5026
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5027 template <class TBase>
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5028 inline BOOL CTreeItemT<TBase>::SetItem(UINT nMask, LPCTSTR lpszItem, int nImage,
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5029 int nSelectedImage, UINT nState, UINT nStateMask, LPARAM lParam)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5030 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5031 ATLASSERT(m_pTreeView != NULL);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5032 return m_pTreeView->SetItem(m_hTreeItem, nMask, lpszItem, nImage, nSelectedImage, nState, nStateMask, lParam);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5033 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5034
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5035 template <class TBase>
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5036 inline BOOL CTreeItemT<TBase>::SetText(LPCTSTR lpszItem)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5037 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5038 ATLASSERT(m_pTreeView != NULL);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5039 return m_pTreeView->SetItemText(m_hTreeItem,lpszItem);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5040 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5041
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5042 template <class TBase>
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5043 inline BOOL CTreeItemT<TBase>::SetImage(int nImage, int nSelectedImage)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5044 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5045 ATLASSERT(m_pTreeView != NULL);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5046 return m_pTreeView->SetItemImage(m_hTreeItem,nImage,nSelectedImage);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5047 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5048
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5049 template <class TBase>
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5050 inline BOOL CTreeItemT<TBase>::SetState(UINT nState, UINT nStateMask)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5051 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5052 ATLASSERT(m_pTreeView != NULL);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5053 return m_pTreeView->SetItemState(m_hTreeItem,nState,nStateMask);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5054 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5055
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5056 template <class TBase>
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5057 inline BOOL CTreeItemT<TBase>::SetData(DWORD_PTR dwData)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5058 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5059 ATLASSERT(m_pTreeView != NULL);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5060 return m_pTreeView->SetItemData(m_hTreeItem,dwData);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5061 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5062
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5063 template <class TBase>
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5064 inline BOOL CTreeItemT<TBase>::HasChildren() const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5065 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5066 ATLASSERT(m_pTreeView != NULL);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5067 return m_pTreeView->ItemHasChildren(m_hTreeItem);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5068 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5069
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5070 template <class TBase>
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5071 inline BOOL CTreeItemT<TBase>::Delete()
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5072 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5073 ATLASSERT(m_pTreeView != NULL);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5074 return m_pTreeView->DeleteItem(m_hTreeItem);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5075 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5076
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5077 template <class TBase>
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5078 inline BOOL CTreeItemT<TBase>::Expand(UINT nCode /*= TVE_EXPAND*/)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5079 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5080 ATLASSERT(m_pTreeView != NULL);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5081 return m_pTreeView->Expand(m_hTreeItem,nCode);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5082 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5083
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5084 template <class TBase>
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5085 inline BOOL CTreeItemT<TBase>::Select(UINT nCode)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5086 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5087 ATLASSERT(m_pTreeView != NULL);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5088 return m_pTreeView->Select(m_hTreeItem,nCode);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5089 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5090
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5091 template <class TBase>
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5092 inline BOOL CTreeItemT<TBase>::Select()
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5093 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5094 ATLASSERT(m_pTreeView != NULL);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5095 return m_pTreeView->SelectItem(m_hTreeItem);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5096 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5097
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5098 template <class TBase>
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5099 inline BOOL CTreeItemT<TBase>::SelectDropTarget()
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5100 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5101 ATLASSERT(m_pTreeView != NULL);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5102 return m_pTreeView->SelectDropTarget(m_hTreeItem);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5103 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5104
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5105 template <class TBase>
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5106 inline BOOL CTreeItemT<TBase>::SelectSetFirstVisible()
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5107 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5108 ATLASSERT(m_pTreeView != NULL);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5109 return m_pTreeView->SelectSetFirstVisible(m_hTreeItem);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5110 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5111
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5112 template <class TBase>
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5113 inline HWND CTreeItemT<TBase>::EditLabel()
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5114 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5115 ATLASSERT(m_pTreeView != NULL);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5116 return m_pTreeView->EditLabel(m_hTreeItem);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5117 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5118
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5119 template <class TBase>
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5120 inline HIMAGELIST CTreeItemT<TBase>::CreateDragImage()
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5121 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5122 ATLASSERT(m_pTreeView != NULL);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5123 return m_pTreeView->CreateDragImage(m_hTreeItem);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5124 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5125
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5126 template <class TBase>
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5127 inline BOOL CTreeItemT<TBase>::SortChildren(BOOL bRecurse /*= FALSE*/)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5128 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5129 ATLASSERT(m_pTreeView != NULL);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5130 return m_pTreeView->SortChildren(m_hTreeItem, bRecurse);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5131 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5132
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5133 template <class TBase>
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5134 inline BOOL CTreeItemT<TBase>::EnsureVisible()
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5135 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5136 ATLASSERT(m_pTreeView != NULL);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5137 return m_pTreeView->EnsureVisible(m_hTreeItem);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5138 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5139
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5140 template <class TBase>
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5141 inline CTreeItemT<TBase> CTreeItemT<TBase>::_Insert(LPCTSTR lpstrItem, int nImageIndex, HTREEITEM hItemAfter)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5142 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5143 ATLASSERT(m_pTreeView != NULL);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5144 TVINSERTSTRUCT ins = {};
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5145 ins.hParent = m_hTreeItem;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5146 ins.hInsertAfter = hItemAfter;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5147 ins.item.mask = TVIF_TEXT;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5148 ins.item.pszText = (LPTSTR)lpstrItem;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5149 if(nImageIndex != -1)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5150 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5151 ins.item.mask |= TVIF_IMAGE | TVIF_SELECTEDIMAGE;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5152 ins.item.iImage = nImageIndex;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5153 ins.item.iSelectedImage = nImageIndex;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5154 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5155 return CTreeItemT<TBase>(m_pTreeView->InsertItem(&ins), m_pTreeView);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5156 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5157
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5158 template <class TBase>
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5159 inline int CTreeItemT<TBase>::GetImageIndex() const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5160 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5161 ATLASSERT(m_pTreeView != NULL);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5162 TVITEM item = {};
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5163 item.mask = TVIF_HANDLE | TVIF_IMAGE;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5164 item.hItem = m_hTreeItem;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5165 m_pTreeView->GetItem(&item);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5166 return item.iImage;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5167 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5168
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5169 template <class TBase>
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5170 inline BOOL CTreeItemT<TBase>::SetInsertMark(BOOL bAfter)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5171 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5172 ATLASSERT(m_pTreeView != NULL);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5173 return m_pTreeView->SetInsertMark(m_hTreeItem, bAfter);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5174 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5175
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5176 template <class TBase>
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5177 inline UINT CTreeItemT<TBase>::MapHTREEITEMToAccID() const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5178 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5179 ATLASSERT(m_pTreeView != NULL);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5180 return m_pTreeView->MapHTREEITEMToAccID(m_hTreeItem);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5181 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5182
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5183 #if (_WIN32_WINNT >= 0x0600)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5184 template <class TBase>
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5185 inline void CTreeItemT<TBase>::ShowInfoTip()
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5186 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5187 ATLASSERT(m_pTreeView != NULL);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5188 m_pTreeView->ShowInfoTip(m_hTreeItem);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5189 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5190
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5191 template <class TBase>
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5192 inline BOOL CTreeItemT<TBase>::GetPartRect(TVITEMPART partID, LPRECT lpRect) const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5193 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5194 ATLASSERT(m_pTreeView != NULL);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5195 return m_pTreeView->GetItemPartRect(m_hTreeItem, partID, lpRect);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5196 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5197 #endif // (_WIN32_WINNT >= 0x0600)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5198
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5199
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5200 ///////////////////////////////////////////////////////////////////////////////
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5201 // CToolBarCtrl
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5202
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5203 template <class TBase>
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5204 class CToolBarCtrlT : public TBase
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5205 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5206 public:
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5207 // Construction
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5208 CToolBarCtrlT(HWND hWnd = NULL) : TBase(hWnd)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5209 { }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5210
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5211 CToolBarCtrlT< TBase >& operator =(HWND hWnd)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5212 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5213 this->m_hWnd = hWnd;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5214 return *this;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5215 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5216
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5217 HWND Create(HWND hWndParent, ATL::_U_RECT rect = NULL, LPCTSTR szWindowName = NULL,
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5218 DWORD dwStyle = 0, DWORD dwExStyle = 0,
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5219 ATL::_U_MENUorID MenuOrID = 0U, LPVOID lpCreateParam = NULL)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5220 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5221 return TBase::Create(GetWndClassName(), hWndParent, rect.m_lpRect, szWindowName, dwStyle, dwExStyle, MenuOrID.m_hMenu, lpCreateParam);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5222 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5223
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5224 // Attributes
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5225 static LPCTSTR GetWndClassName()
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5226 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5227 return TOOLBARCLASSNAME;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5228 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5229
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5230 BOOL IsButtonEnabled(int nID) const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5231 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5232 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5233 return (BOOL)::SendMessage(this->m_hWnd, TB_ISBUTTONENABLED, nID, 0L);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5234 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5235
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5236 BOOL IsButtonChecked(int nID) const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5237 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5238 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5239 return (BOOL)::SendMessage(this->m_hWnd, TB_ISBUTTONCHECKED, nID, 0L);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5240 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5241
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5242 BOOL IsButtonPressed(int nID) const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5243 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5244 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5245 return (BOOL)::SendMessage(this->m_hWnd, TB_ISBUTTONPRESSED, nID, 0L);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5246 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5247
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5248 BOOL IsButtonHidden(int nID) const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5249 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5250 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5251 return(BOOL) ::SendMessage(this->m_hWnd, TB_ISBUTTONHIDDEN, nID, 0L);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5252 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5253
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5254 BOOL IsButtonIndeterminate(int nID) const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5255 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5256 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5257 return (BOOL)::SendMessage(this->m_hWnd, TB_ISBUTTONINDETERMINATE, nID, 0L);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5258 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5259
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5260 int GetState(int nID) const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5261 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5262 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5263 return (int)::SendMessage(this->m_hWnd, TB_GETSTATE, nID, 0L);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5264 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5265
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5266 BOOL SetState(int nID, UINT nState)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5267 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5268 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5269 return (BOOL)::SendMessage(this->m_hWnd, TB_SETSTATE, nID, MAKELPARAM(nState, 0));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5270 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5271
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5272 BOOL GetButton(int nIndex, LPTBBUTTON lpButton) const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5273 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5274 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5275 return (BOOL)::SendMessage(this->m_hWnd, TB_GETBUTTON, nIndex, (LPARAM)lpButton);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5276 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5277
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5278 int GetButtonCount() const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5279 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5280 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5281 return (int)::SendMessage(this->m_hWnd, TB_BUTTONCOUNT, 0, 0L);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5282 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5283
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5284 BOOL GetItemRect(int nIndex, LPRECT lpRect) const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5285 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5286 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5287 return (BOOL)::SendMessage(this->m_hWnd, TB_GETITEMRECT, nIndex, (LPARAM)lpRect);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5288 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5289
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5290 void SetButtonStructSize(int nSize = sizeof(TBBUTTON))
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5291 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5292 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5293 ::SendMessage(this->m_hWnd, TB_BUTTONSTRUCTSIZE, nSize, 0L);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5294 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5295
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5296 BOOL SetButtonSize(SIZE size)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5297 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5298 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5299 return (BOOL)::SendMessage(this->m_hWnd, TB_SETBUTTONSIZE, 0, MAKELPARAM(size.cx, size.cy));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5300 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5301
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5302 BOOL SetButtonSize(int cx, int cy)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5303 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5304 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5305 return (BOOL)::SendMessage(this->m_hWnd, TB_SETBUTTONSIZE, 0, MAKELPARAM(cx, cy));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5306 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5307
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5308 BOOL SetBitmapSize(SIZE size)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5309 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5310 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5311 return (BOOL)::SendMessage(this->m_hWnd, TB_SETBITMAPSIZE, 0, MAKELPARAM(size.cx, size.cy));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5312 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5313
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5314 BOOL SetBitmapSize(int cx, int cy)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5315 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5316 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5317 return (BOOL)::SendMessage(this->m_hWnd, TB_SETBITMAPSIZE, 0, MAKELPARAM(cx, cy));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5318 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5319
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5320 CToolTipCtrl GetToolTips() const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5321 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5322 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5323 return CToolTipCtrl((HWND)::SendMessage(this->m_hWnd, TB_GETTOOLTIPS, 0, 0L));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5324 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5325
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5326 void SetToolTips(HWND hWndToolTip)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5327 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5328 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5329 ::SendMessage(this->m_hWnd, TB_SETTOOLTIPS, (WPARAM)hWndToolTip, 0L);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5330 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5331
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5332 void SetNotifyWnd(HWND hWnd)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5333 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5334 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5335 ::SendMessage(this->m_hWnd, TB_SETPARENT, (WPARAM)hWnd, 0L);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5336 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5337
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5338 int GetRows() const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5339 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5340 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5341 return (int)::SendMessage(this->m_hWnd, TB_GETROWS, 0, 0L);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5342 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5343
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5344 void SetRows(int nRows, BOOL bLarger, LPRECT lpRect)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5345 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5346 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5347 ::SendMessage(this->m_hWnd, TB_SETROWS, MAKELPARAM(nRows, bLarger), (LPARAM)lpRect);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5348 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5349
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5350 BOOL SetCmdID(int nIndex, UINT nID)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5351 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5352 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5353 return (BOOL)::SendMessage(this->m_hWnd, TB_SETCMDID, nIndex, nID);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5354 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5355
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5356 DWORD GetBitmapFlags() const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5357 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5358 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5359 return (DWORD)::SendMessage(this->m_hWnd, TB_GETBITMAPFLAGS, 0, 0L);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5360 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5361
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5362 int GetBitmap(int nID) const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5363 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5364 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5365 return (int)::SendMessage(this->m_hWnd, TB_GETBITMAP, nID, 0L);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5366 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5367
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5368 int GetButtonText(int nID, LPTSTR lpstrText) const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5369 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5370 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5371 return (int)::SendMessage(this->m_hWnd, TB_GETBUTTONTEXT, nID, (LPARAM)lpstrText);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5372 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5373
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5374 // nIndex - IE5 or higher only
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5375 CImageList GetImageList(int nIndex = 0) const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5376 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5377 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5378 return CImageList((HIMAGELIST)::SendMessage(this->m_hWnd, TB_GETIMAGELIST, nIndex, 0L));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5379 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5380
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5381 // nIndex - IE5 or higher only
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5382 CImageList SetImageList(HIMAGELIST hImageList, int nIndex = 0)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5383 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5384 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5385 return CImageList((HIMAGELIST)::SendMessage(this->m_hWnd, TB_SETIMAGELIST, nIndex, (LPARAM)hImageList));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5386 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5387
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5388 // nIndex - IE5 or higher only
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5389 CImageList GetDisabledImageList(int nIndex = 0) const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5390 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5391 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5392 return CImageList((HIMAGELIST)::SendMessage(this->m_hWnd, TB_GETDISABLEDIMAGELIST, nIndex, 0L));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5393 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5394
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5395 // nIndex - IE5 or higher only
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5396 CImageList SetDisabledImageList(HIMAGELIST hImageList, int nIndex = 0)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5397 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5398 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5399 return CImageList((HIMAGELIST)::SendMessage(this->m_hWnd, TB_SETDISABLEDIMAGELIST, nIndex, (LPARAM)hImageList));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5400 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5401
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5402 // nIndex - IE5 or higher only
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5403 CImageList GetHotImageList(int nIndex = 0) const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5404 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5405 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5406 return CImageList((HIMAGELIST)::SendMessage(this->m_hWnd, TB_GETHOTIMAGELIST, nIndex, 0L));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5407 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5408
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5409 // nIndex - IE5 or higher only
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5410 CImageList SetHotImageList(HIMAGELIST hImageList, int nIndex = 0)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5411 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5412 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5413 return CImageList((HIMAGELIST)::SendMessage(this->m_hWnd, TB_SETHOTIMAGELIST, nIndex, (LPARAM)hImageList));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5414 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5415
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5416 DWORD GetStyle() const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5417 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5418 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5419 return (DWORD)::SendMessage(this->m_hWnd, TB_GETSTYLE, 0, 0L);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5420 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5421
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5422 void SetStyle(DWORD dwStyle)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5423 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5424 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5425 ::SendMessage(this->m_hWnd, TB_SETSTYLE, 0, dwStyle);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5426 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5427
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5428 DWORD GetButtonSize() const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5429 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5430 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5431 return (DWORD)::SendMessage(this->m_hWnd, TB_GETBUTTONSIZE, 0, 0L);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5432 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5433
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5434 void GetButtonSize(SIZE& size) const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5435 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5436 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5437 DWORD dwRet = (DWORD)::SendMessage(this->m_hWnd, TB_GETBUTTONSIZE, 0, 0L);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5438 size.cx = LOWORD(dwRet);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5439 size.cy = HIWORD(dwRet);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5440 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5441
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5442 BOOL GetRect(int nID, LPRECT lpRect) const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5443 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5444 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5445 return (BOOL)::SendMessage(this->m_hWnd, TB_GETRECT, nID, (LPARAM)lpRect);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5446 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5447
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5448 int GetTextRows() const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5449 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5450 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5451 return (int)::SendMessage(this->m_hWnd, TB_GETTEXTROWS, 0, 0L);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5452 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5453
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5454 BOOL SetButtonWidth(int cxMin, int cxMax)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5455 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5456 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5457 return (BOOL)::SendMessage(this->m_hWnd, TB_SETBUTTONWIDTH, 0, MAKELPARAM(cxMin, cxMax));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5458 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5459
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5460 BOOL SetIndent(int nIndent)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5461 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5462 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5463 return (BOOL)::SendMessage(this->m_hWnd, TB_SETINDENT, nIndent, 0L);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5464 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5465
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5466 BOOL SetMaxTextRows(int nMaxTextRows)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5467 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5468 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5469 return (BOOL)::SendMessage(this->m_hWnd, TB_SETMAXTEXTROWS, nMaxTextRows, 0L);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5470 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5471
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5472 BOOL GetAnchorHighlight() const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5473 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5474 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5475 return (BOOL)::SendMessage(this->m_hWnd, TB_GETANCHORHIGHLIGHT, 0, 0L);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5476 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5477
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5478 BOOL SetAnchorHighlight(BOOL bEnable = TRUE)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5479 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5480 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5481 return (BOOL)::SendMessage(this->m_hWnd, TB_SETANCHORHIGHLIGHT, bEnable, 0L);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5482 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5483
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5484 int GetButtonInfo(int nID, LPTBBUTTONINFO lptbbi) const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5485 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5486 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5487 return (int)::SendMessage(this->m_hWnd, TB_GETBUTTONINFO, nID, (LPARAM)lptbbi);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5488 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5489
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5490 BOOL SetButtonInfo(int nID, LPTBBUTTONINFO lptbbi)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5491 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5492 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5493 return (BOOL)::SendMessage(this->m_hWnd, TB_SETBUTTONINFO, nID, (LPARAM)lptbbi);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5494 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5495
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5496 BOOL SetButtonInfo(int nID, DWORD dwMask, BYTE Style, BYTE State, LPCTSTR lpszItem,
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5497 int iImage, WORD cx, int iCommand, DWORD_PTR lParam)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5498 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5499 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5500 TBBUTTONINFO tbbi = {};
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5501 tbbi.cbSize = sizeof(TBBUTTONINFO);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5502 tbbi.dwMask = dwMask;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5503 tbbi.idCommand = iCommand;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5504 tbbi.iImage = iImage;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5505 tbbi.fsState = State;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5506 tbbi.fsStyle = Style;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5507 tbbi.cx = cx;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5508 tbbi.pszText = (LPTSTR) lpszItem;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5509 tbbi.lParam = lParam;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5510 return (BOOL)::SendMessage(this->m_hWnd, TB_SETBUTTONINFO, nID, (LPARAM)&tbbi);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5511 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5512
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5513 int GetHotItem() const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5514 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5515 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5516 return (int)::SendMessage(this->m_hWnd, TB_GETHOTITEM, 0, 0L);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5517 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5518
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5519 int SetHotItem(int nItem)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5520 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5521 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5522 return (int)::SendMessage(this->m_hWnd, TB_SETHOTITEM, nItem, 0L);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5523 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5524
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5525 BOOL IsButtonHighlighted(int nButtonID) const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5526 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5527 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5528 return (BOOL)::SendMessage(this->m_hWnd, TB_ISBUTTONHIGHLIGHTED, nButtonID, 0L);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5529 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5530
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5531 DWORD SetDrawTextFlags(DWORD dwMask, DWORD dwFlags)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5532 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5533 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5534 return (DWORD)::SendMessage(this->m_hWnd, TB_SETDRAWTEXTFLAGS, dwMask, dwFlags);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5535 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5536
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5537 BOOL GetColorScheme(LPCOLORSCHEME lpcs) const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5538 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5539 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5540 return (BOOL)::SendMessage(this->m_hWnd, TB_GETCOLORSCHEME, 0, (LPARAM)lpcs);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5541 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5542
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5543 void SetColorScheme(LPCOLORSCHEME lpcs)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5544 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5545 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5546 ::SendMessage(this->m_hWnd, TB_SETCOLORSCHEME, 0, (LPARAM)lpcs);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5547 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5548
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5549 DWORD GetExtendedStyle() const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5550 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5551 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5552 return (DWORD)::SendMessage(this->m_hWnd, TB_GETEXTENDEDSTYLE, 0, 0L);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5553 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5554
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5555 DWORD SetExtendedStyle(DWORD dwStyle)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5556 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5557 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5558 return (DWORD)::SendMessage(this->m_hWnd, TB_SETEXTENDEDSTYLE, 0, dwStyle);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5559 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5560
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5561 void GetInsertMark(LPTBINSERTMARK lptbim) const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5562 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5563 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5564 ::SendMessage(this->m_hWnd, TB_GETINSERTMARK, 0, (LPARAM)lptbim);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5565 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5566
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5567 void SetInsertMark(LPTBINSERTMARK lptbim)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5568 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5569 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5570 ::SendMessage(this->m_hWnd, TB_SETINSERTMARK, 0, (LPARAM)lptbim);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5571 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5572
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5573 COLORREF GetInsertMarkColor() const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5574 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5575 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5576 return (COLORREF)::SendMessage(this->m_hWnd, TB_GETINSERTMARKCOLOR, 0, 0L);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5577 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5578
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5579 COLORREF SetInsertMarkColor(COLORREF clr)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5580 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5581 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5582 return (COLORREF)::SendMessage(this->m_hWnd, TB_SETINSERTMARKCOLOR, 0, (LPARAM)clr);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5583 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5584
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5585 BOOL GetMaxSize(LPSIZE lpSize) const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5586 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5587 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5588 return (BOOL)::SendMessage(this->m_hWnd, TB_GETMAXSIZE, 0, (LPARAM)lpSize);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5589 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5590
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5591 void GetPadding(LPSIZE lpSizePadding) const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5592 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5593 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5594 ATLASSERT(lpSizePadding != NULL);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5595 DWORD dwRet = (DWORD)::SendMessage(this->m_hWnd, TB_GETPADDING, 0, 0L);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5596 lpSizePadding->cx = GET_X_LPARAM(dwRet);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5597 lpSizePadding->cy = GET_Y_LPARAM(dwRet);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5598 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5599
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5600 void SetPadding(int cx, int cy, LPSIZE lpSizePadding = NULL)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5601 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5602 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5603 DWORD dwRet = (DWORD)::SendMessage(this->m_hWnd, TB_SETPADDING, 0, MAKELPARAM(cx, cy));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5604 if(lpSizePadding != NULL)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5605 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5606 lpSizePadding->cx = GET_X_LPARAM(dwRet);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5607 lpSizePadding->cy = GET_Y_LPARAM(dwRet);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5608 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5609 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5610
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5611 BOOL GetUnicodeFormat() const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5612 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5613 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5614 return (BOOL)::SendMessage(this->m_hWnd, TB_GETUNICODEFORMAT, 0, 0L);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5615 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5616
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5617 BOOL SetUnicodeFormat(BOOL bUnicode = TRUE)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5618 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5619 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5620 return (BOOL)::SendMessage(this->m_hWnd, TB_SETUNICODEFORMAT, bUnicode, 0L);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5621 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5622
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5623 int GetString(int nString, LPTSTR lpstrString, int cchMaxLen) const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5624 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5625 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5626 return (int)::SendMessage(this->m_hWnd, TB_GETSTRING, MAKEWPARAM(cchMaxLen, nString), (LPARAM)lpstrString);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5627 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5628
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5629 int GetStringBSTR(int nString, BSTR& bstrString) const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5630 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5631 USES_CONVERSION;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5632 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5633 ATLASSERT(bstrString == NULL);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5634 int nLength = (int)(short)LOWORD(::SendMessage(this->m_hWnd, TB_GETSTRING, MAKEWPARAM(0, nString), NULL));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5635 if(nLength != -1)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5636 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5637 ATL::CTempBuffer<TCHAR, _WTL_STACK_ALLOC_THRESHOLD> buff;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5638 LPTSTR lpstrText = buff.Allocate(nLength + 1);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5639 if(lpstrText != NULL)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5640 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5641 nLength = (int)::SendMessage(this->m_hWnd, TB_GETSTRING, MAKEWPARAM(nLength + 1, nString), (LPARAM)lpstrText);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5642 if(nLength != -1)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5643 bstrString = ::SysAllocString(T2OLE(lpstrText));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5644 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5645 else
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5646 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5647 nLength = -1;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5648 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5649 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5650
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5651 return nLength;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5652 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5653
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5654 #ifdef __ATLSTR_H__
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5655 int GetString(int nString, ATL::CString& str) const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5656 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5657 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5658 int nLength = (int)(short)LOWORD(::SendMessage(this->m_hWnd, TB_GETSTRING, MAKEWPARAM(0, nString), NULL));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5659 if(nLength != -1)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5660 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5661 LPTSTR lpstr = str.GetBufferSetLength(nLength + 1);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5662 if(lpstr != NULL)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5663 nLength = (int)::SendMessage(this->m_hWnd, TB_GETSTRING, MAKEWPARAM(nLength + 1, nString), (LPARAM)lpstr);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5664 else
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5665 nLength = -1;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5666 str.ReleaseBuffer();
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5667 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5668 return nLength;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5669 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5670 #endif // __ATLSTR_H__
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5671
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5672 void GetMetrics(LPTBMETRICS lptbm) const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5673 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5674 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5675 ::SendMessage(this->m_hWnd, TB_GETMETRICS, 0, (LPARAM)lptbm);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5676 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5677
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5678 void SetMetrics(LPTBMETRICS lptbm)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5679 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5680 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5681 ::SendMessage(this->m_hWnd, TB_SETMETRICS, 0, (LPARAM)lptbm);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5682 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5683
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5684 void SetWindowTheme(LPCWSTR lpstrTheme)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5685 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5686 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5687 ::SendMessage(this->m_hWnd, TB_SETWINDOWTHEME, 0, (LPARAM)lpstrTheme);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5688 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5689
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5690 #if (_WIN32_WINNT >= 0x0600)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5691 CImageList GetPressedImageList(int nIndex = 0) const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5692 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5693 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5694 return CImageList((HIMAGELIST)::SendMessage(this->m_hWnd, TB_GETPRESSEDIMAGELIST, nIndex, 0L));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5695 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5696
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5697 CImageList SetPressedImageList(HIMAGELIST hImageList, int nIndex = 0)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5698 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5699 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5700 return CImageList((HIMAGELIST)::SendMessage(this->m_hWnd, TB_SETPRESSEDIMAGELIST, nIndex, (LPARAM)hImageList));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5701 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5702
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5703 void GetItemDropDownRect(int nIndex, LPRECT lpRect) const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5704 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5705 #ifndef TB_GETITEMDROPDOWNRECT
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5706 const int TB_GETITEMDROPDOWNRECT = WM_USER + 103;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5707 #endif
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5708 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5709 BOOL bRet = (BOOL)::SendMessage(this->m_hWnd, TB_GETITEMDROPDOWNRECT, nIndex, (LPARAM)lpRect);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5710 (void)bRet; // avoid level 4 warning
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5711 ATLASSERT(bRet != FALSE);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5712 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5713 #endif // (_WIN32_WINNT >= 0x0600)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5714
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5715 // Operations
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5716 BOOL EnableButton(int nID, BOOL bEnable = TRUE)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5717 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5718 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5719 return (BOOL)::SendMessage(this->m_hWnd, TB_ENABLEBUTTON, nID, MAKELPARAM(bEnable, 0));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5720 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5721
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5722 BOOL CheckButton(int nID, BOOL bCheck = TRUE)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5723 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5724 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5725 return (BOOL)::SendMessage(this->m_hWnd, TB_CHECKBUTTON, nID, MAKELPARAM(bCheck, 0));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5726 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5727
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5728 BOOL PressButton(int nID, BOOL bPress = TRUE)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5729 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5730 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5731 return (BOOL)::SendMessage(this->m_hWnd, TB_PRESSBUTTON, nID, MAKELPARAM(bPress, 0));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5732 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5733
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5734 BOOL HideButton(int nID, BOOL bHide = TRUE)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5735 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5736 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5737 return (BOOL)::SendMessage(this->m_hWnd, TB_HIDEBUTTON, nID, MAKELPARAM(bHide, 0));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5738 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5739
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5740 BOOL Indeterminate(int nID, BOOL bIndeterminate = TRUE)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5741 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5742 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5743 return (BOOL)::SendMessage(this->m_hWnd, TB_INDETERMINATE, nID, MAKELPARAM(bIndeterminate, 0));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5744 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5745
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5746 int AddBitmap(int nNumButtons, UINT nBitmapID)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5747 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5748 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5749 TBADDBITMAP tbab = {};
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5750 tbab.hInst = ModuleHelper::GetResourceInstance();
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5751 ATLASSERT(tbab.hInst != NULL);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5752 tbab.nID = nBitmapID;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5753 return (int)::SendMessage(this->m_hWnd, TB_ADDBITMAP, (WPARAM)nNumButtons, (LPARAM)&tbab);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5754 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5755
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5756 int AddBitmap(int nNumButtons, HBITMAP hBitmap)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5757 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5758 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5759 TBADDBITMAP tbab = {};
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5760 tbab.hInst = NULL;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5761 tbab.nID = (UINT_PTR)hBitmap;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5762 return (int)::SendMessage(this->m_hWnd, TB_ADDBITMAP, (WPARAM)nNumButtons, (LPARAM)&tbab);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5763 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5764
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5765 BOOL AddButtons(int nNumButtons, LPCTBBUTTON lpButtons)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5766 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5767 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5768 return (BOOL)::SendMessage(this->m_hWnd, TB_ADDBUTTONS, nNumButtons, (LPARAM)lpButtons);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5769 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5770
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5771 BOOL InsertButton(int nIndex, LPCTBBUTTON lpButton)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5772 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5773 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5774 return (BOOL)::SendMessage(this->m_hWnd, TB_INSERTBUTTON, nIndex, (LPARAM)lpButton);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5775 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5776
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5777 BOOL InsertButton(int nIndex, int iCommand, BYTE Style, BYTE State, int iBitmap,
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5778 INT_PTR iString, DWORD_PTR lParam)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5779 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5780 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5781 TBBUTTON tbb = {};
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5782 tbb.fsStyle = Style;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5783 tbb.fsState = State;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5784 tbb.idCommand = iCommand;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5785 tbb.iBitmap = iBitmap;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5786 tbb.iString = iString;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5787 tbb.dwData = lParam;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5788 return (BOOL)::SendMessage(this->m_hWnd, TB_INSERTBUTTON, nIndex, (LPARAM)&tbb);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5789 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5790
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5791 BOOL InsertButton(int nIndex, int iCommand, BYTE Style, BYTE State, int iBitmap,
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5792 LPCTSTR lpszItem, DWORD_PTR lParam)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5793 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5794 return InsertButton(nIndex, iCommand, Style, State, iBitmap, (INT_PTR)lpszItem, lParam);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5795 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5796
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5797 BOOL AddButton(LPTBBUTTON lpButton)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5798 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5799 return InsertButton(-1, lpButton);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5800 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5801
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5802 BOOL AddButton(int iCommand, BYTE Style, BYTE State, int iBitmap, INT_PTR iString, DWORD_PTR lParam)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5803 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5804 return InsertButton(-1, iCommand, Style, State, iBitmap, iString, lParam);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5805 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5806
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5807 BOOL AddButton(int iCommand, BYTE Style, BYTE State, int iBitmap, LPCTSTR lpszItem, DWORD_PTR lParam)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5808 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5809 return InsertButton(-1, iCommand, Style, State, iBitmap, lpszItem, lParam);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5810 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5811
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5812 BOOL DeleteButton(int nIndex)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5813 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5814 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5815 return (BOOL)::SendMessage(this->m_hWnd, TB_DELETEBUTTON, nIndex, 0L);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5816 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5817
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5818 BOOL InsertSeparator(int nIndex, int cxWidth = 8)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5819 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5820 return InsertButton(nIndex, 0, BTNS_SEP, 0, cxWidth, (INT_PTR)0, 0);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5821 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5822
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5823 BOOL AddSeparator(int cxWidth = 8)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5824 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5825 return AddButton(0, BTNS_SEP, 0, cxWidth, (INT_PTR)0, 0);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5826 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5827
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5828 int CommandToIndex(UINT nID) const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5829 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5830 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5831 return (int)::SendMessage(this->m_hWnd, TB_COMMANDTOINDEX, nID, 0L);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5832 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5833
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5834 void SaveState(HKEY hKeyRoot, LPCTSTR lpszSubKey, LPCTSTR lpszValueName)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5835 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5836 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5837 TBSAVEPARAMS tbs = {};
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5838 tbs.hkr = hKeyRoot;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5839 tbs.pszSubKey = lpszSubKey;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5840 tbs.pszValueName = lpszValueName;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5841 ::SendMessage(this->m_hWnd, TB_SAVERESTORE, (WPARAM)TRUE, (LPARAM)&tbs);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5842 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5843
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5844 void RestoreState(HKEY hKeyRoot, LPCTSTR lpszSubKey, LPCTSTR lpszValueName)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5845 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5846 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5847 TBSAVEPARAMS tbs = {};
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5848 tbs.hkr = hKeyRoot;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5849 tbs.pszSubKey = lpszSubKey;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5850 tbs.pszValueName = lpszValueName;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5851 ::SendMessage(this->m_hWnd, TB_SAVERESTORE, (WPARAM)FALSE, (LPARAM)&tbs);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5852 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5853
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5854 void Customize()
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5855 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5856 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5857 ::SendMessage(this->m_hWnd, TB_CUSTOMIZE, 0, 0L);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5858 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5859
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5860 int AddString(UINT nStringID)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5861 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5862 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5863 return (int)::SendMessage(this->m_hWnd, TB_ADDSTRING, (WPARAM)ModuleHelper::GetResourceInstance(), (LPARAM)nStringID);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5864 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5865
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5866 int AddStrings(LPCTSTR lpszStrings)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5867 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5868 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5869 return (int)::SendMessage(this->m_hWnd, TB_ADDSTRING, 0, (LPARAM)lpszStrings);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5870 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5871
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5872 void AutoSize()
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5873 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5874 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5875 ::SendMessage(this->m_hWnd, TB_AUTOSIZE, 0, 0L);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5876 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5877
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5878 BOOL ChangeBitmap(int nID, int nBitmap)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5879 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5880 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5881 return (BOOL)::SendMessage(this->m_hWnd, TB_CHANGEBITMAP, nID, MAKELPARAM(nBitmap, 0));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5882 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5883
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5884 int LoadImages(int nBitmapID)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5885 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5886 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5887 return (int)::SendMessage(this->m_hWnd, TB_LOADIMAGES, nBitmapID, (LPARAM)ModuleHelper::GetResourceInstance());
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5888 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5889
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5890 int LoadStdImages(int nBitmapID)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5891 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5892 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5893 return (int)::SendMessage(this->m_hWnd, TB_LOADIMAGES, nBitmapID, (LPARAM)HINST_COMMCTRL);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5894 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5895
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5896 BOOL ReplaceBitmap(LPTBREPLACEBITMAP ptbrb)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5897 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5898 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5899 return (BOOL)::SendMessage(this->m_hWnd, TB_REPLACEBITMAP, 0, (LPARAM)ptbrb);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5900 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5901
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5902 int HitTest(LPPOINT lpPoint) const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5903 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5904 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5905 return (int)::SendMessage(this->m_hWnd, TB_HITTEST, 0, (LPARAM)lpPoint);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5906 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5907
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5908 BOOL InsertMarkHitTest(LPPOINT lpPoint, LPTBINSERTMARK lptbim) const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5909 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5910 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5911 return (BOOL)::SendMessage(this->m_hWnd, TB_INSERTMARKHITTEST, (WPARAM)lpPoint, (LPARAM)lptbim);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5912 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5913
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5914 BOOL InsertMarkHitTest(int x, int y, LPTBINSERTMARK lptbim) const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5915 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5916 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5917 POINT pt = { x, y };
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5918 return (BOOL)::SendMessage(this->m_hWnd, TB_INSERTMARKHITTEST, (WPARAM)&pt, (LPARAM)lptbim);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5919 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5920
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5921 BOOL MapAccelerator(TCHAR chAccel, int& nID) const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5922 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5923 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5924 return (BOOL)::SendMessage(this->m_hWnd, TB_MAPACCELERATOR, (WPARAM)chAccel, (LPARAM)&nID);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5925 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5926
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5927 BOOL MarkButton(int nID, BOOL bHighlight = TRUE)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5928 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5929 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5930 return (BOOL)::SendMessage(this->m_hWnd, TB_MARKBUTTON, nID, MAKELPARAM(bHighlight, 0));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5931 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5932
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5933 BOOL MoveButton(int nOldPos, int nNewPos)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5934 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5935 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5936 return (BOOL)::SendMessage(this->m_hWnd, TB_MOVEBUTTON, nOldPos, nNewPos);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5937 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5938
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5939 HRESULT GetObject(REFIID iid, LPVOID* ppvObject)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5940 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5941 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5942 return (HRESULT)::SendMessage(this->m_hWnd, TB_GETOBJECT, (WPARAM)&iid, (LPARAM)ppvObject);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5943 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5944 };
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5945
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5946 typedef CToolBarCtrlT<ATL::CWindow> CToolBarCtrl;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5947
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5948
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5949 ///////////////////////////////////////////////////////////////////////////////
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5950 // CStatusBarCtrl
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5951
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5952 template <class TBase>
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5953 class CStatusBarCtrlT : public TBase
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5954 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5955 public:
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5956 // Constructors
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5957 CStatusBarCtrlT(HWND hWnd = NULL) : TBase(hWnd)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5958 { }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5959
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5960 CStatusBarCtrlT< TBase >& operator =(HWND hWnd)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5961 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5962 this->m_hWnd = hWnd;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5963 return *this;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5964 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5965
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5966 HWND Create(HWND hWndParent, ATL::_U_RECT rect = NULL, LPCTSTR szWindowName = NULL,
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5967 DWORD dwStyle = 0, DWORD dwExStyle = 0,
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5968 ATL::_U_MENUorID MenuOrID = 0U, LPVOID lpCreateParam = NULL)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5969 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5970 return TBase::Create(GetWndClassName(), hWndParent, rect.m_lpRect, szWindowName, dwStyle, dwExStyle, MenuOrID.m_hMenu, lpCreateParam);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5971 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5972
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5973 // Methods
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5974 static LPCTSTR GetWndClassName()
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5975 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5976 return STATUSCLASSNAME;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5977 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5978
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5979 int GetParts(int nParts, int* pParts) const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5980 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5981 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5982 return (int)::SendMessage(this->m_hWnd, SB_GETPARTS, nParts, (LPARAM)pParts);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5983 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5984
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5985 BOOL SetParts(int nParts, int* pWidths)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5986 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5987 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5988 return (BOOL)::SendMessage(this->m_hWnd, SB_SETPARTS, nParts, (LPARAM)pWidths);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5989 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5990
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5991 int GetTextLength(int nPane, int* pType = NULL) const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5992 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5993 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5994 ATLASSERT(nPane < 256);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5995 DWORD dwRet = (DWORD)::SendMessage(this->m_hWnd, SB_GETTEXTLENGTH, (WPARAM)nPane, 0L);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5996 if (pType != NULL)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5997 *pType = (int)(short)HIWORD(dwRet);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5998 return (int)(short)LOWORD(dwRet);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5999 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6000
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6001 int GetText(int nPane, LPTSTR lpszText, int* pType = NULL) const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6002 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6003 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6004 ATLASSERT(nPane < 256);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6005 DWORD dwRet = (DWORD)::SendMessage(this->m_hWnd, SB_GETTEXT, (WPARAM)nPane, (LPARAM)lpszText);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6006 if(pType != NULL)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6007 *pType = (int)(short)HIWORD(dwRet);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6008 return (int)(short)LOWORD(dwRet);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6009 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6010
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6011 BOOL GetTextBSTR(int nPane, BSTR& bstrText, int* pType = NULL) const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6012 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6013 USES_CONVERSION;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6014 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6015 ATLASSERT(nPane < 256);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6016 ATLASSERT(bstrText == NULL);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6017 int nLength = (int)(short)LOWORD(::SendMessage(this->m_hWnd, SB_GETTEXTLENGTH, (WPARAM)nPane, 0L));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6018 if(nLength == 0)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6019 return FALSE;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6020
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6021 ATL::CTempBuffer<TCHAR, _WTL_STACK_ALLOC_THRESHOLD> buff;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6022 LPTSTR lpstrText = buff.Allocate(nLength + 1);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6023 if(lpstrText == NULL)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6024 return FALSE;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6025
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6026 if(!GetText(nPane, lpstrText, pType))
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6027 return FALSE;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6028
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6029 bstrText = ::SysAllocString(T2OLE(lpstrText));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6030 return (bstrText != NULL) ? TRUE : FALSE;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6031 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6032
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6033 #ifdef __ATLSTR_H__
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6034 int GetText(int nPane, ATL::CString& strText, int* pType = NULL) const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6035 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6036 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6037 ATLASSERT(nPane < 256);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6038 int nLength = (int)(short)LOWORD(::SendMessage(this->m_hWnd, SB_GETTEXTLENGTH, (WPARAM)nPane, 0L));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6039 if(nLength == 0)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6040 return 0;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6041
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6042 LPTSTR lpstr = strText.GetBufferSetLength(nLength);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6043 if(lpstr == NULL)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6044 return 0;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6045 return GetText(nPane, lpstr, pType);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6046 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6047 #endif // __ATLSTR_H__
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6048
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6049 BOOL SetText(int nPane, LPCTSTR lpszText, int nType = 0)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6050 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6051 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6052 ATLASSERT(nPane < 256);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6053 return (BOOL)::SendMessage(this->m_hWnd, SB_SETTEXT, (nPane | nType), (LPARAM)lpszText);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6054 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6055
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6056 BOOL GetRect(int nPane, LPRECT lpRect) const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6057 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6058 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6059 ATLASSERT(nPane < 256);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6060 return (BOOL)::SendMessage(this->m_hWnd, SB_GETRECT, nPane, (LPARAM)lpRect);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6061 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6062
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6063 BOOL GetBorders(int* pBorders) const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6064 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6065 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6066 return (BOOL)::SendMessage(this->m_hWnd, SB_GETBORDERS, 0, (LPARAM)pBorders);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6067 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6068
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6069 BOOL GetBorders(int& nHorz, int& nVert, int& nSpacing) const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6070 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6071 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6072 int borders[3] = {};
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6073 BOOL bResult = (BOOL)::SendMessage(this->m_hWnd, SB_GETBORDERS, 0, (LPARAM)&borders);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6074 if(bResult)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6075 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6076 nHorz = borders[0];
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6077 nVert = borders[1];
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6078 nSpacing = borders[2];
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6079 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6080 return bResult;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6081 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6082
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6083 void SetMinHeight(int nMin)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6084 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6085 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6086 ::SendMessage(this->m_hWnd, SB_SETMINHEIGHT, nMin, 0L);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6087 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6088
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6089 BOOL SetSimple(BOOL bSimple = TRUE)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6090 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6091 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6092 return (BOOL)::SendMessage(this->m_hWnd, SB_SIMPLE, bSimple, 0L);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6093 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6094
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6095 BOOL IsSimple() const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6096 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6097 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6098 return (BOOL)::SendMessage(this->m_hWnd, SB_ISSIMPLE, 0, 0L);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6099 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6100
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6101 BOOL GetUnicodeFormat() const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6102 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6103 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6104 return (BOOL)::SendMessage(this->m_hWnd, SB_GETUNICODEFORMAT, 0, 0L);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6105 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6106
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6107 BOOL SetUnicodeFormat(BOOL bUnicode = TRUE)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6108 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6109 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6110 return (BOOL)::SendMessage(this->m_hWnd, SB_SETUNICODEFORMAT, bUnicode, 0L);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6111 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6112
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6113 void GetTipText(int nPane, LPTSTR lpstrText, int nSize) const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6114 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6115 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6116 ATLASSERT(nPane < 256);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6117 ::SendMessage(this->m_hWnd, SB_GETTIPTEXT, MAKEWPARAM(nPane, nSize), (LPARAM)lpstrText);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6118 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6119
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6120 void SetTipText(int nPane, LPCTSTR lpstrText)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6121 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6122 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6123 ATLASSERT(nPane < 256);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6124 ::SendMessage(this->m_hWnd, SB_SETTIPTEXT, nPane, (LPARAM)lpstrText);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6125 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6126
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6127 COLORREF SetBkColor(COLORREF clrBk)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6128 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6129 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6130 return (COLORREF)::SendMessage(this->m_hWnd, SB_SETBKCOLOR, 0, (LPARAM)clrBk);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6131 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6132
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6133 HICON GetIcon(int nPane) const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6134 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6135 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6136 ATLASSERT(nPane < 256);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6137 return (HICON)::SendMessage(this->m_hWnd, SB_GETICON, nPane, 0L);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6138 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6139
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6140 BOOL SetIcon(int nPane, HICON hIcon)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6141 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6142 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6143 ATLASSERT(nPane < 256);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6144 return (BOOL)::SendMessage(this->m_hWnd, SB_SETICON, nPane, (LPARAM)hIcon);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6145 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6146 };
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6147
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6148 typedef CStatusBarCtrlT<ATL::CWindow> CStatusBarCtrl;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6149
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6150
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6151 ///////////////////////////////////////////////////////////////////////////////
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6152 // CTabCtrl
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6153
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6154 template <class TBase>
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6155 class CTabCtrlT : public TBase
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6156 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6157 public:
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6158 // Constructors
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6159 CTabCtrlT(HWND hWnd = NULL) : TBase(hWnd)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6160 { }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6161
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6162 CTabCtrlT< TBase >& operator =(HWND hWnd)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6163 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6164 this->m_hWnd = hWnd;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6165 return *this;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6166 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6167
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6168 HWND Create(HWND hWndParent, ATL::_U_RECT rect = NULL, LPCTSTR szWindowName = NULL,
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6169 DWORD dwStyle = 0, DWORD dwExStyle = 0,
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6170 ATL::_U_MENUorID MenuOrID = 0U, LPVOID lpCreateParam = NULL)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6171 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6172 return TBase::Create(GetWndClassName(), hWndParent, rect.m_lpRect, szWindowName, dwStyle, dwExStyle, MenuOrID.m_hMenu, lpCreateParam);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6173 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6174
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6175 // Attributes
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6176 static LPCTSTR GetWndClassName()
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6177 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6178 return WC_TABCONTROL;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6179 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6180
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6181 CImageList GetImageList() const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6182 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6183 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6184 return CImageList((HIMAGELIST)::SendMessage(this->m_hWnd, TCM_GETIMAGELIST, 0, 0L));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6185 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6186
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6187 CImageList SetImageList(HIMAGELIST hImageList)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6188 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6189 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6190 return CImageList((HIMAGELIST)::SendMessage(this->m_hWnd, TCM_SETIMAGELIST, 0, (LPARAM)hImageList));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6191 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6192
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6193 int GetItemCount() const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6194 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6195 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6196 return (int)::SendMessage(this->m_hWnd, TCM_GETITEMCOUNT, 0, 0L);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6197 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6198
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6199 BOOL GetItem(int nItem, LPTCITEM pTabCtrlItem) const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6200 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6201 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6202 return (BOOL)::SendMessage(this->m_hWnd, TCM_GETITEM, nItem, (LPARAM)pTabCtrlItem);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6203 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6204
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6205 BOOL SetItem(int nItem, LPTCITEM pTabCtrlItem)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6206 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6207 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6208 return (BOOL)::SendMessage(this->m_hWnd, TCM_SETITEM, nItem, (LPARAM)pTabCtrlItem);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6209 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6210
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6211 int SetItem(int nItem, UINT mask, LPCTSTR lpszItem, DWORD dwState, DWORD dwStateMask, int iImage, LPARAM lParam)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6212 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6213 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6214 TCITEM tci = {};
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6215 tci.mask = mask;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6216 tci.pszText = (LPTSTR) lpszItem;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6217 tci.dwState = dwState;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6218 tci.dwStateMask = dwStateMask;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6219 tci.iImage = iImage;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6220 tci.lParam = lParam;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6221 return (int)::SendMessage(this->m_hWnd, TCM_SETITEM, nItem, (LPARAM)&tci);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6222 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6223
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6224 BOOL GetItemRect(int nItem, LPRECT lpRect) const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6225 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6226 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6227 return (BOOL)::SendMessage(this->m_hWnd, TCM_GETITEMRECT, nItem, (LPARAM)lpRect);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6228 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6229
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6230 int GetCurSel() const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6231 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6232 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6233 return (int)::SendMessage(this->m_hWnd, TCM_GETCURSEL, 0, 0L);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6234 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6235
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6236 int SetCurSel(int nItem)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6237 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6238 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6239 return (int)::SendMessage(this->m_hWnd, TCM_SETCURSEL, nItem, 0L);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6240 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6241
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6242 SIZE SetItemSize(SIZE size)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6243 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6244 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6245 DWORD dwSize = (DWORD)::SendMessage(this->m_hWnd, TCM_SETITEMSIZE, 0, MAKELPARAM(size.cx, size.cy));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6246 SIZE sizeRet = { GET_X_LPARAM(dwSize), GET_Y_LPARAM(dwSize) };
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6247 return sizeRet;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6248 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6249
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6250 void SetItemSize(int cx, int cy)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6251 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6252 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6253 ::SendMessage(this->m_hWnd, TCM_SETITEMSIZE, 0, MAKELPARAM(cx, cy));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6254 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6255
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6256 void SetPadding(SIZE size)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6257 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6258 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6259 ::SendMessage(this->m_hWnd, TCM_SETPADDING, 0, MAKELPARAM(size.cx, size.cy));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6260 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6261
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6262 int GetRowCount() const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6263 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6264 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6265 return (int)::SendMessage(this->m_hWnd, TCM_GETROWCOUNT, 0, 0L);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6266 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6267
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6268 CToolTipCtrl GetToolTips() const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6269 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6270 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6271 return CToolTipCtrl((HWND)::SendMessage(this->m_hWnd, TCM_GETTOOLTIPS, 0, 0L));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6272 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6273
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6274 // this method is deprecated, please use GetToolTips
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6275 CToolTipCtrl GetTooltips() const { return GetToolTips(); }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6276
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6277 void SetToolTips(HWND hWndToolTip)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6278 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6279 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6280 ::SendMessage(this->m_hWnd, TCM_SETTOOLTIPS, (WPARAM)hWndToolTip, 0L);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6281 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6282
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6283 // this method is deprecated, please use SetToolTips
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6284 void SetTooltips(HWND hWndToolTip) { SetToolTips(hWndToolTip); }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6285
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6286 int GetCurFocus() const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6287 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6288 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6289 return (int)::SendMessage(this->m_hWnd, TCM_GETCURFOCUS, 0, 0L);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6290 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6291
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6292 void SetCurFocus(int nItem)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6293 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6294 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6295 ::SendMessage(this->m_hWnd, TCM_SETCURFOCUS, nItem, 0L);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6296 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6297
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6298 BOOL SetItemExtra(int cbExtra)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6299 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6300 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6301 ATLASSERT(GetItemCount() == 0); // must be empty
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6302 return (BOOL)::SendMessage(this->m_hWnd, TCM_SETITEMEXTRA, cbExtra, 0L);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6303 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6304
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6305 int SetMinTabWidth(int nWidth = -1)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6306 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6307 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6308 return (int)::SendMessage(this->m_hWnd, TCM_SETMINTABWIDTH, 0, nWidth);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6309 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6310
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6311 DWORD GetExtendedStyle() const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6312 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6313 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6314 return (DWORD)::SendMessage(this->m_hWnd, TCM_GETEXTENDEDSTYLE, 0, 0L);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6315 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6316
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6317 DWORD SetExtendedStyle(DWORD dwExMask, DWORD dwExStyle)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6318 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6319 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6320 return (DWORD)::SendMessage(this->m_hWnd, TCM_SETEXTENDEDSTYLE, dwExMask, dwExStyle);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6321 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6322
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6323 BOOL GetUnicodeFormat() const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6324 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6325 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6326 return (BOOL)::SendMessage(this->m_hWnd, TCM_GETUNICODEFORMAT, 0, 0L);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6327 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6328
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6329 BOOL SetUnicodeFormat(BOOL bUnicode = TRUE)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6330 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6331 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6332 return (BOOL)::SendMessage(this->m_hWnd, TCM_SETUNICODEFORMAT, bUnicode, 0L);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6333 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6334
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6335 // Operations
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6336 int InsertItem(int nItem, LPTCITEM pTabCtrlItem)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6337 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6338 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6339 return (int)::SendMessage(this->m_hWnd, TCM_INSERTITEM, nItem, (LPARAM)pTabCtrlItem);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6340 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6341
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6342 int InsertItem(int nItem, UINT mask, LPCTSTR lpszItem, int iImage, LPARAM lParam)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6343 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6344 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6345 TCITEM tci = {};
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6346 tci.mask = mask;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6347 tci.pszText = (LPTSTR) lpszItem;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6348 tci.iImage = iImage;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6349 tci.lParam = lParam;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6350 return (int)::SendMessage(this->m_hWnd, TCM_INSERTITEM, nItem, (LPARAM)&tci);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6351 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6352
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6353 int InsertItem(int nItem, LPCTSTR lpszItem)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6354 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6355 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6356 TCITEM tci = {};
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6357 tci.mask = TCIF_TEXT;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6358 tci.pszText = (LPTSTR) lpszItem;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6359 return (int)::SendMessage(this->m_hWnd, TCM_INSERTITEM, nItem, (LPARAM)&tci);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6360 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6361
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6362 int AddItem(LPTCITEM pTabCtrlItem)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6363 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6364 return InsertItem(GetItemCount(), pTabCtrlItem);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6365 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6366
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6367 int AddItem(UINT mask, LPCTSTR lpszItem, int iImage, LPARAM lParam)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6368 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6369 return InsertItem(GetItemCount(), mask, lpszItem, iImage, lParam);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6370 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6371
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6372 int AddItem(LPCTSTR lpszItem)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6373 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6374 return InsertItem(GetItemCount(), lpszItem);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6375 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6376
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6377 BOOL DeleteItem(int nItem)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6378 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6379 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6380 return (BOOL)::SendMessage(this->m_hWnd, TCM_DELETEITEM, nItem, 0L);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6381 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6382
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6383 BOOL DeleteAllItems()
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6384 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6385 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6386 return (BOOL)::SendMessage(this->m_hWnd, TCM_DELETEALLITEMS, 0, 0L);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6387 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6388
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6389 void AdjustRect(BOOL bLarger, LPRECT lpRect)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6390 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6391 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6392 ::SendMessage(this->m_hWnd, TCM_ADJUSTRECT, bLarger, (LPARAM)lpRect);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6393 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6394
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6395 void RemoveImage(int nImage)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6396 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6397 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6398 ::SendMessage(this->m_hWnd, TCM_REMOVEIMAGE, nImage, 0L);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6399 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6400
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6401 int HitTest(TC_HITTESTINFO* pHitTestInfo) const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6402 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6403 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6404 return (int)::SendMessage(this->m_hWnd, TCM_HITTEST, 0, (LPARAM)pHitTestInfo);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6405 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6406
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6407 void DeselectAll(BOOL bExcludeFocus = TRUE)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6408 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6409 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6410 ::SendMessage(this->m_hWnd, TCM_DESELECTALL, bExcludeFocus, 0L);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6411 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6412
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6413 BOOL HighlightItem(int nIndex, BOOL bHighlight = TRUE)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6414 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6415 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6416 return (BOOL)::SendMessage(this->m_hWnd, TCM_HIGHLIGHTITEM, nIndex, MAKELPARAM(bHighlight, 0));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6417 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6418 };
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6419
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6420 typedef CTabCtrlT<ATL::CWindow> CTabCtrl;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6421
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6422
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6423 ///////////////////////////////////////////////////////////////////////////////
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6424 // CTrackBarCtrl
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6425
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6426 template <class TBase>
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6427 class CTrackBarCtrlT : public TBase
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6428 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6429 public:
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6430 // Constructors
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6431 CTrackBarCtrlT(HWND hWnd = NULL) : TBase(hWnd)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6432 { }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6433
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6434 CTrackBarCtrlT< TBase >& operator =(HWND hWnd)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6435 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6436 this->m_hWnd = hWnd;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6437 return *this;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6438 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6439
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6440 HWND Create(HWND hWndParent, ATL::_U_RECT rect = NULL, LPCTSTR szWindowName = NULL,
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6441 DWORD dwStyle = 0, DWORD dwExStyle = 0,
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6442 ATL::_U_MENUorID MenuOrID = 0U, LPVOID lpCreateParam = NULL)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6443 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6444 return TBase::Create(GetWndClassName(), hWndParent, rect.m_lpRect, szWindowName, dwStyle, dwExStyle, MenuOrID.m_hMenu, lpCreateParam);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6445 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6446
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6447 // Attributes
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6448 static LPCTSTR GetWndClassName()
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6449 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6450 return TRACKBAR_CLASS;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6451 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6452
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6453 int GetLineSize() const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6454 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6455 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6456 return (int)::SendMessage(this->m_hWnd, TBM_GETLINESIZE, 0, 0L);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6457 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6458
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6459 int SetLineSize(int nSize)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6460 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6461 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6462 return (int)::SendMessage(this->m_hWnd, TBM_SETLINESIZE, 0, nSize);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6463 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6464
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6465 int GetPageSize() const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6466 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6467 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6468 return (int)::SendMessage(this->m_hWnd, TBM_GETPAGESIZE, 0, 0L);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6469 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6470
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6471 int SetPageSize(int nSize)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6472 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6473 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6474 return (int)::SendMessage(this->m_hWnd, TBM_SETPAGESIZE, 0, nSize);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6475 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6476
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6477 int GetRangeMin() const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6478 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6479 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6480 return (int)::SendMessage(this->m_hWnd, TBM_GETRANGEMIN, 0, 0L);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6481 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6482
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6483 void SetRangeMin(int nMin, BOOL bRedraw = FALSE)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6484 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6485 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6486 ::SendMessage(this->m_hWnd, TBM_SETRANGEMIN, bRedraw, nMin);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6487 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6488
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6489 int GetRangeMax() const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6490 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6491 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6492 return (int)::SendMessage(this->m_hWnd, TBM_GETRANGEMAX, 0, 0L);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6493 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6494
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6495 void SetRangeMax(int nMax, BOOL bRedraw = FALSE)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6496 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6497 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6498 ::SendMessage(this->m_hWnd, TBM_SETRANGEMAX, bRedraw, nMax);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6499 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6500
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6501 void GetRange(int& nMin, int& nMax) const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6502 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6503 nMin = GetRangeMin();
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6504 nMax = GetRangeMax();
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6505 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6506
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6507 void SetRange(int nMin, int nMax, BOOL bRedraw = TRUE)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6508 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6509 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6510 ::SendMessage(this->m_hWnd, TBM_SETRANGE, bRedraw, MAKELPARAM(nMin, nMax));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6511 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6512
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6513 int GetSelStart() const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6514 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6515 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6516 return (int)::SendMessage(this->m_hWnd, TBM_GETSELSTART, 0, 0L);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6517 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6518
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6519 void SetSelStart(int nMin, BOOL bRedraw = FALSE)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6520 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6521 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6522 ::SendMessage(this->m_hWnd, TBM_SETSELSTART, bRedraw, (LPARAM)nMin);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6523 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6524
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6525 int GetSelEnd() const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6526 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6527 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6528 return (int)::SendMessage(this->m_hWnd, TBM_GETSELEND, 0, 0L);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6529 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6530
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6531 void SetSelEnd(int nMax, BOOL bRedraw = FALSE)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6532 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6533 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6534 ::SendMessage(this->m_hWnd, TBM_SETSELEND, bRedraw, (LPARAM)nMax);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6535 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6536
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6537 void GetSelection(int& nMin, int& nMax) const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6538 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6539 nMin = GetSelStart();
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6540 nMax = GetSelEnd();
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6541 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6542
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6543 void SetSelection(int nMin, int nMax, BOOL bRedraw = TRUE)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6544 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6545 SetSelStart(nMin, FALSE);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6546 SetSelEnd(nMax, bRedraw);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6547 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6548
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6549 void GetChannelRect(LPRECT lprc) const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6550 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6551 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6552 ::SendMessage(this->m_hWnd, TBM_GETCHANNELRECT, 0, (LPARAM)lprc);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6553 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6554
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6555 void GetThumbRect(LPRECT lprc) const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6556 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6557 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6558 ::SendMessage(this->m_hWnd, TBM_GETTHUMBRECT, 0, (LPARAM)lprc);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6559 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6560
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6561 int GetPos() const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6562 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6563 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6564 return (int)::SendMessage(this->m_hWnd, TBM_GETPOS, 0, 0L);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6565 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6566
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6567 void SetPos(int nPos)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6568 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6569 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6570 ::SendMessage(this->m_hWnd, TBM_SETPOS, TRUE, nPos);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6571 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6572
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6573 UINT GetNumTics() const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6574 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6575 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6576 return (UINT)::SendMessage(this->m_hWnd, TBM_GETNUMTICS, 0, 0L);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6577 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6578
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6579 DWORD* GetTicArray() const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6580 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6581 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6582 return (DWORD*)::SendMessage(this->m_hWnd, TBM_GETPTICS, 0, 0L);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6583 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6584
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6585 int GetTic(int nTic) const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6586 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6587 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6588 return (int)::SendMessage(this->m_hWnd, TBM_GETTIC, nTic, 0L);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6589 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6590
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6591 BOOL SetTic(int nTic)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6592 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6593 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6594 return (BOOL)::SendMessage(this->m_hWnd, TBM_SETTIC, 0, nTic);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6595 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6596
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6597 int GetTicPos(int nTic) const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6598 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6599 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6600 return (int)::SendMessage(this->m_hWnd, TBM_GETTICPOS, nTic, 0L);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6601 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6602
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6603 void SetTicFreq(int nFreq)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6604 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6605 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6606 ::SendMessage(this->m_hWnd, TBM_SETTICFREQ, nFreq, 0L);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6607 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6608
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6609 int GetThumbLength() const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6610 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6611 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6612 return (int)::SendMessage(this->m_hWnd, TBM_GETTHUMBLENGTH, 0, 0L);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6613 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6614
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6615 void SetThumbLength(int nLength)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6616 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6617 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6618 ::SendMessage(this->m_hWnd, TBM_SETTHUMBLENGTH, nLength, 0L);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6619 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6620
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6621 void SetSel(int nStart, int nEnd, BOOL bRedraw = TRUE)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6622 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6623 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6624 ATLASSERT((this->GetStyle() & TBS_ENABLESELRANGE) != 0);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6625 ::SendMessage(this->m_hWnd, TBM_SETSEL, bRedraw, MAKELPARAM(nStart, nEnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6626 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6627
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6628 ATL::CWindow GetBuddy(BOOL bLeft = TRUE) const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6629 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6630 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6631 return ATL::CWindow((HWND)::SendMessage(this->m_hWnd, TBM_GETBUDDY, bLeft, 0L));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6632 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6633
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6634 ATL::CWindow SetBuddy(HWND hWndBuddy, BOOL bLeft = TRUE)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6635 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6636 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6637 return ATL::CWindow((HWND)::SendMessage(this->m_hWnd, TBM_SETBUDDY, bLeft, (LPARAM)hWndBuddy));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6638 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6639
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6640 CToolTipCtrl GetToolTips() const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6641 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6642 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6643 return CToolTipCtrl((HWND)::SendMessage(this->m_hWnd, TBM_GETTOOLTIPS, 0, 0L));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6644 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6645
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6646 void SetToolTips(HWND hWndTT)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6647 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6648 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6649 ::SendMessage(this->m_hWnd, TBM_SETTOOLTIPS, (WPARAM)hWndTT, 0L);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6650 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6651
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6652 int SetTipSide(int nSide)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6653 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6654 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6655 return (int)::SendMessage(this->m_hWnd, TBM_SETTIPSIDE, nSide, 0L);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6656 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6657
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6658 BOOL GetUnicodeFormat() const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6659 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6660 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6661 return (BOOL)::SendMessage(this->m_hWnd, TBM_GETUNICODEFORMAT, 0, 0L);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6662 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6663
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6664 BOOL SetUnicodeFormat(BOOL bUnicode = TRUE)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6665 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6666 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6667 return (BOOL)::SendMessage(this->m_hWnd, TBM_SETUNICODEFORMAT, bUnicode, 0L);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6668 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6669
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6670 // Operations
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6671 void ClearSel(BOOL bRedraw = FALSE)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6672 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6673 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6674 ::SendMessage(this->m_hWnd, TBM_CLEARSEL, bRedraw, 0L);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6675 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6676
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6677 void VerifyPos()
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6678 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6679 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6680 ::SendMessage(this->m_hWnd, TBM_SETPOS, FALSE, 0L);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6681 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6682
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6683 void ClearTics(BOOL bRedraw = FALSE)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6684 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6685 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6686 ::SendMessage(this->m_hWnd, TBM_CLEARTICS, bRedraw, 0L);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6687 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6688 };
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6689
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6690 typedef CTrackBarCtrlT<ATL::CWindow> CTrackBarCtrl;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6691
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6692
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6693 ///////////////////////////////////////////////////////////////////////////////
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6694 // CUpDownCtrl
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6695
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6696 template <class TBase>
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6697 class CUpDownCtrlT : public TBase
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6698 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6699 public:
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6700 // Constructors
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6701 CUpDownCtrlT(HWND hWnd = NULL) : TBase(hWnd)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6702 { }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6703
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6704 CUpDownCtrlT< TBase >& operator =(HWND hWnd)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6705 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6706 this->m_hWnd = hWnd;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6707 return *this;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6708 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6709
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6710 HWND Create(HWND hWndParent, ATL::_U_RECT rect = NULL, LPCTSTR szWindowName = NULL,
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6711 DWORD dwStyle = 0, DWORD dwExStyle = 0,
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6712 ATL::_U_MENUorID MenuOrID = 0U, LPVOID lpCreateParam = NULL)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6713 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6714 return TBase::Create(GetWndClassName(), hWndParent, rect.m_lpRect, szWindowName, dwStyle, dwExStyle, MenuOrID.m_hMenu, lpCreateParam);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6715 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6716
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6717 // Attributes
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6718 static LPCTSTR GetWndClassName()
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6719 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6720 return UPDOWN_CLASS;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6721 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6722
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6723 UINT GetAccel(int nAccel, UDACCEL* pAccel) const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6724 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6725 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6726 return (UINT)LOWORD(::SendMessage(this->m_hWnd, UDM_GETACCEL, nAccel, (LPARAM)pAccel));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6727 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6728
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6729 BOOL SetAccel(int nAccel, UDACCEL* pAccel)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6730 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6731 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6732 return (BOOL)LOWORD(::SendMessage(this->m_hWnd, UDM_SETACCEL, nAccel, (LPARAM)pAccel));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6733 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6734
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6735 UINT GetBase() const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6736 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6737 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6738 return (UINT)LOWORD(::SendMessage(this->m_hWnd, UDM_GETBASE, 0, 0L));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6739 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6740
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6741 int SetBase(int nBase)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6742 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6743 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6744 return (int)::SendMessage(this->m_hWnd, UDM_SETBASE, nBase, 0L);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6745 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6746
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6747 ATL::CWindow GetBuddy() const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6748 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6749 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6750 return ATL::CWindow((HWND)::SendMessage(this->m_hWnd, UDM_GETBUDDY, 0, 0L));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6751 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6752
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6753 ATL::CWindow SetBuddy(HWND hWndBuddy)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6754 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6755 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6756 return ATL::CWindow((HWND)::SendMessage(this->m_hWnd, UDM_SETBUDDY, (WPARAM)hWndBuddy, 0L));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6757 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6758
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6759 int GetPos(LPBOOL lpbError = NULL) const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6760 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6761 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6762 DWORD dwRet = (DWORD)::SendMessage(this->m_hWnd, UDM_GETPOS, 0, 0L);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6763 // Note: Seems that Windows always sets error to TRUE if
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6764 // UDS_SETBUDDYINT style is not used
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6765 if(lpbError != NULL)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6766 *lpbError = (HIWORD(dwRet) != 0) ? TRUE : FALSE;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6767 return (int)(short)LOWORD(dwRet);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6768 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6769
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6770 int SetPos(int nPos)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6771 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6772 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6773 return (int)(short)LOWORD(::SendMessage(this->m_hWnd, UDM_SETPOS, 0, MAKELPARAM(nPos, 0)));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6774 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6775
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6776 DWORD GetRange() const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6777 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6778 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6779 return (DWORD)::SendMessage(this->m_hWnd, UDM_GETRANGE, 0, 0L);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6780 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6781
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6782 void GetRange(int& nLower, int& nUpper) const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6783 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6784 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6785 DWORD dwRet = (DWORD)::SendMessage(this->m_hWnd, UDM_GETRANGE, 0, 0L);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6786 nLower = (int)(short)HIWORD(dwRet);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6787 nUpper = (int)(short)LOWORD(dwRet);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6788 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6789
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6790 void SetRange(int nLower, int nUpper)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6791 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6792 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6793 ::SendMessage(this->m_hWnd, UDM_SETRANGE, 0, MAKELPARAM(nUpper, nLower));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6794 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6795
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6796 void SetRange32(int nLower, int nUpper)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6797 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6798 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6799 ::SendMessage(this->m_hWnd, UDM_SETRANGE32, nLower, nUpper);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6800 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6801
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6802 void GetRange32(int& nLower, int& nUpper) const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6803 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6804 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6805 ::SendMessage(this->m_hWnd, UDM_GETRANGE32, (WPARAM)&nLower, (LPARAM)&nUpper);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6806 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6807
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6808 BOOL GetUnicodeFormat() const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6809 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6810 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6811 return (BOOL)::SendMessage(this->m_hWnd, UDM_GETUNICODEFORMAT, 0, 0L);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6812 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6813
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6814 BOOL SetUnicodeFormat(BOOL bUnicode = TRUE)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6815 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6816 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6817 return (BOOL)::SendMessage(this->m_hWnd, UDM_SETUNICODEFORMAT, bUnicode, 0L);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6818 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6819
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6820 int GetPos32(LPBOOL lpbError = NULL) const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6821 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6822 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6823 // Note: Seems that Windows always sets error to TRUE if
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6824 // UDS_SETBUDDYINT style is not used
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6825 return (int)::SendMessage(this->m_hWnd, UDM_GETPOS32, 0, (LPARAM)lpbError);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6826 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6827
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6828 int SetPos32(int nPos)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6829 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6830 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6831 return (int)::SendMessage(this->m_hWnd, UDM_SETPOS32, 0, (LPARAM)nPos);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6832 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6833 };
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6834
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6835 typedef CUpDownCtrlT<ATL::CWindow> CUpDownCtrl;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6836
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6837
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6838 ///////////////////////////////////////////////////////////////////////////////
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6839 // CProgressBarCtrl
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6840
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6841 template <class TBase>
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6842 class CProgressBarCtrlT : public TBase
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6843 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6844 public:
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6845 // Constructors
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6846 CProgressBarCtrlT(HWND hWnd = NULL) : TBase(hWnd)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6847 { }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6848
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6849 CProgressBarCtrlT< TBase >& operator =(HWND hWnd)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6850 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6851 this->m_hWnd = hWnd;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6852 return *this;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6853 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6854
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6855 HWND Create(HWND hWndParent, ATL::_U_RECT rect = NULL, LPCTSTR szWindowName = NULL,
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6856 DWORD dwStyle = 0, DWORD dwExStyle = 0,
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6857 ATL::_U_MENUorID MenuOrID = 0U, LPVOID lpCreateParam = NULL)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6858 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6859 return TBase::Create(GetWndClassName(), hWndParent, rect.m_lpRect, szWindowName, dwStyle, dwExStyle, MenuOrID.m_hMenu, lpCreateParam);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6860 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6861
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6862 // Attributes
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6863 static LPCTSTR GetWndClassName()
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6864 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6865 return PROGRESS_CLASS;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6866 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6867
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6868 DWORD SetRange(int nLower, int nUpper)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6869 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6870 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6871 return (DWORD)::SendMessage(this->m_hWnd, PBM_SETRANGE, 0, MAKELPARAM(nLower, nUpper));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6872 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6873
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6874 int SetPos(int nPos)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6875 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6876 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6877 return (int)(short)LOWORD(::SendMessage(this->m_hWnd, PBM_SETPOS, nPos, 0L));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6878 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6879
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6880 int OffsetPos(int nPos)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6881 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6882 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6883 return (int)(short)LOWORD(::SendMessage(this->m_hWnd, PBM_DELTAPOS, nPos, 0L));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6884 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6885
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6886 int SetStep(int nStep)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6887 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6888 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6889 return (int)(short)LOWORD(::SendMessage(this->m_hWnd, PBM_SETSTEP, nStep, 0L));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6890 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6891
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6892 UINT GetPos() const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6893 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6894 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6895 return (UINT)::SendMessage(this->m_hWnd, PBM_GETPOS, 0, 0L);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6896 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6897
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6898 void GetRange(PPBRANGE pPBRange) const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6899 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6900 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6901 ATLASSERT(pPBRange != NULL);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6902 ::SendMessage(this->m_hWnd, PBM_GETRANGE, TRUE, (LPARAM)pPBRange);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6903 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6904
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6905 void GetRange(int& nLower, int& nUpper) const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6906 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6907 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6908 PBRANGE range = {};
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6909 ::SendMessage(this->m_hWnd, PBM_GETRANGE, TRUE, (LPARAM)&range);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6910 nLower = range.iLow;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6911 nUpper = range.iHigh;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6912 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6913
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6914 int GetRangeLimit(BOOL bLowLimit) const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6915 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6916 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6917 return (int)::SendMessage(this->m_hWnd, PBM_GETRANGE, bLowLimit, (LPARAM)NULL);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6918 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6919
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6920 DWORD SetRange32(int nMin, int nMax)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6921 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6922 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6923 return (DWORD)::SendMessage(this->m_hWnd, PBM_SETRANGE32, nMin, nMax);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6924 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6925
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6926 COLORREF SetBarColor(COLORREF clr)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6927 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6928 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6929 return (COLORREF)::SendMessage(this->m_hWnd, PBM_SETBARCOLOR, 0, (LPARAM)clr);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6930 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6931
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6932 COLORREF SetBkColor(COLORREF clr)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6933 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6934 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6935 return (COLORREF)::SendMessage(this->m_hWnd, PBM_SETBKCOLOR, 0, (LPARAM)clr);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6936 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6937
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6938 #ifdef PBM_SETMARQUEE
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6939 BOOL SetMarquee(BOOL bMarquee, UINT uUpdateTime = 0U)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6940 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6941 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6942 return (BOOL)::SendMessage(this->m_hWnd, PBM_SETMARQUEE, (WPARAM)bMarquee, (LPARAM)uUpdateTime);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6943 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6944 #endif
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6945
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6946 #if (_WIN32_WINNT >= 0x0600)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6947 int GetStep() const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6948 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6949 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6950 return (int)::SendMessage(this->m_hWnd, PBM_GETSTEP, 0, 0L);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6951 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6952
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6953 COLORREF GetBkColor() const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6954 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6955 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6956 return (COLORREF)::SendMessage(this->m_hWnd, PBM_GETBKCOLOR, 0, 0L);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6957 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6958
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6959 COLORREF GetBarColor() const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6960 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6961 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6962 return (COLORREF)::SendMessage(this->m_hWnd, PBM_GETBARCOLOR, 0, 0L);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6963 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6964
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6965 int GetState() const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6966 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6967 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6968 return (int)::SendMessage(this->m_hWnd, PBM_GETSTATE, 0, 0L);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6969 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6970
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6971 int SetState(int nState)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6972 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6973 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6974 return (int)::SendMessage(this->m_hWnd, PBM_SETSTATE, nState, 0L);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6975 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6976 #endif // (_WIN32_WINNT >= 0x0600)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6977
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6978 // Operations
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6979 int StepIt()
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6980 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6981 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6982 return (int)(short)LOWORD(::SendMessage(this->m_hWnd, PBM_STEPIT, 0, 0L));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6983 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6984 };
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6985
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6986 typedef CProgressBarCtrlT<ATL::CWindow> CProgressBarCtrl;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6987
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6988
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6989 ///////////////////////////////////////////////////////////////////////////////
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6990 // CHotKeyCtrl
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6991
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6992 template <class TBase>
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6993 class CHotKeyCtrlT : public TBase
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6994 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6995 public:
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6996 // Constructors
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6997 CHotKeyCtrlT(HWND hWnd = NULL) : TBase(hWnd)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6998 { }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6999
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7000 CHotKeyCtrlT< TBase >& operator =(HWND hWnd)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7001 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7002 this->m_hWnd = hWnd;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7003 return *this;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7004 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7005
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7006 HWND Create(HWND hWndParent, ATL::_U_RECT rect = NULL, LPCTSTR szWindowName = NULL,
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7007 DWORD dwStyle = 0, DWORD dwExStyle = 0,
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7008 ATL::_U_MENUorID MenuOrID = 0U, LPVOID lpCreateParam = NULL)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7009 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7010 return TBase::Create(GetWndClassName(), hWndParent, rect.m_lpRect, szWindowName, dwStyle, dwExStyle, MenuOrID.m_hMenu, lpCreateParam);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7011 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7012
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7013 // Attributes
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7014 static LPCTSTR GetWndClassName()
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7015 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7016 return HOTKEY_CLASS;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7017 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7018
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7019 DWORD GetHotKey() const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7020 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7021 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7022 return (DWORD)::SendMessage(this->m_hWnd, HKM_GETHOTKEY, 0, 0L);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7023 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7024
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7025 void GetHotKey(WORD &wVirtualKeyCode, WORD &wModifiers) const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7026 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7027 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7028 DWORD dw = (DWORD)::SendMessage(this->m_hWnd, HKM_GETHOTKEY, 0, 0L);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7029 wVirtualKeyCode = LOBYTE(LOWORD(dw));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7030 wModifiers = HIBYTE(LOWORD(dw));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7031 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7032
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7033 void SetHotKey(WORD wVirtualKeyCode, WORD wModifiers)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7034 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7035 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7036 ::SendMessage(this->m_hWnd, HKM_SETHOTKEY, MAKEWORD(wVirtualKeyCode, wModifiers), 0L);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7037 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7038
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7039 void SetRules(WORD wInvalidComb, WORD wModifiers)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7040 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7041 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7042 ::SendMessage(this->m_hWnd, HKM_SETRULES, wInvalidComb, MAKELPARAM(wModifiers, 0));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7043 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7044 };
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7045
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7046 typedef CHotKeyCtrlT<ATL::CWindow> CHotKeyCtrl;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7047
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7048
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7049 ///////////////////////////////////////////////////////////////////////////////
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7050 // CAnimateCtrl
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7051
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7052 template <class TBase>
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7053 class CAnimateCtrlT : public TBase
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7054 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7055 public:
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7056 // Constructors
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7057 CAnimateCtrlT(HWND hWnd = NULL) : TBase(hWnd)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7058 { }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7059
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7060 CAnimateCtrlT< TBase >& operator =(HWND hWnd)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7061 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7062 this->m_hWnd = hWnd;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7063 return *this;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7064 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7065
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7066 HWND Create(HWND hWndParent, ATL::_U_RECT rect = NULL, LPCTSTR szWindowName = NULL,
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7067 DWORD dwStyle = 0, DWORD dwExStyle = 0,
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7068 ATL::_U_MENUorID MenuOrID = 0U, LPVOID lpCreateParam = NULL)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7069 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7070 return TBase::Create(GetWndClassName(), hWndParent, rect.m_lpRect, szWindowName, dwStyle, dwExStyle, MenuOrID.m_hMenu, lpCreateParam);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7071 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7072
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7073 // Attributes
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7074 static LPCTSTR GetWndClassName()
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7075 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7076 return ANIMATE_CLASS;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7077 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7078
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7079 // Operations
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7080 BOOL Open(ATL::_U_STRINGorID FileName)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7081 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7082 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7083 return (BOOL)::SendMessage(this->m_hWnd, ACM_OPEN, 0, (LPARAM)FileName.m_lpstr);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7084 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7085
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7086 BOOL Play(UINT nFrom, UINT nTo, UINT nRep)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7087 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7088 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7089 return (BOOL)::SendMessage(this->m_hWnd, ACM_PLAY, nRep, MAKELPARAM(nFrom, nTo));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7090 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7091
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7092 BOOL Stop()
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7093 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7094 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7095 return (BOOL)::SendMessage(this->m_hWnd, ACM_STOP, 0, 0L);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7096 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7097
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7098 BOOL Close()
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7099 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7100 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7101 return (BOOL)::SendMessage(this->m_hWnd, ACM_OPEN, 0, 0L);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7102 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7103
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7104 BOOL Seek(UINT nTo)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7105 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7106 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7107 return (BOOL)::SendMessage(this->m_hWnd, ACM_PLAY, 0, MAKELPARAM(nTo, nTo));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7108 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7109
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7110 // Vista only
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7111 BOOL IsPlaying() const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7112 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7113 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7114 return (BOOL)::SendMessage(this->m_hWnd, ACM_ISPLAYING, 0, 0L);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7115 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7116 };
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7117
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7118 typedef CAnimateCtrlT<ATL::CWindow> CAnimateCtrl;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7119
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7120
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7121 ///////////////////////////////////////////////////////////////////////////////
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7122 // CRichEditCtrl
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7123
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7124 #if !defined(_UNICODE) && (_RICHEDIT_VER >= 0x0500)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7125 #undef MSFTEDIT_CLASS
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7126 #define MSFTEDIT_CLASS "RICHEDIT50W"
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7127 #endif
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7128
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7129 template <class TBase>
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7130 class CRichEditCtrlT : public TBase
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7131 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7132 public:
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7133 // Constructors
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7134 CRichEditCtrlT(HWND hWnd = NULL) : TBase(hWnd)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7135 { }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7136
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7137 CRichEditCtrlT< TBase >& operator =(HWND hWnd)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7138 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7139 this->m_hWnd = hWnd;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7140 return *this;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7141 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7142
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7143 HWND Create(HWND hWndParent, ATL::_U_RECT rect = NULL, LPCTSTR szWindowName = NULL,
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7144 DWORD dwStyle = 0, DWORD dwExStyle = 0,
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7145 ATL::_U_MENUorID MenuOrID = 0U, LPVOID lpCreateParam = NULL)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7146 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7147 return TBase::Create(GetWndClassName(), hWndParent, rect.m_lpRect, szWindowName, dwStyle, dwExStyle, MenuOrID.m_hMenu, lpCreateParam);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7148 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7149
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7150 // Attributes
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7151 static LPCTSTR GetWndClassName()
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7152 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7153 #if (_RICHEDIT_VER >= 0x0500)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7154 return MSFTEDIT_CLASS;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7155 #else
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7156 return RICHEDIT_CLASS;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7157 #endif
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7158 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7159
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7160 static LPCTSTR GetLibraryName()
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7161 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7162 #if (_RICHEDIT_VER >= 0x0500)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7163 return _T("MSFTEDIT.DLL");
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7164 #else
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7165 return _T("RICHED20.DLL");
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7166 #endif
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7167 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7168
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7169 int GetLineCount() const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7170 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7171 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7172 return (int)::SendMessage(this->m_hWnd, EM_GETLINECOUNT, 0, 0L);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7173 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7174
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7175 BOOL GetModify() const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7176 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7177 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7178 return (BOOL)::SendMessage(this->m_hWnd, EM_GETMODIFY, 0, 0L);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7179 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7180
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7181 void SetModify(BOOL bModified = TRUE)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7182 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7183 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7184 ::SendMessage(this->m_hWnd, EM_SETMODIFY, bModified, 0L);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7185 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7186
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7187 void GetRect(LPRECT lpRect) const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7188 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7189 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7190 ::SendMessage(this->m_hWnd, EM_GETRECT, 0, (LPARAM)lpRect);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7191 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7192
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7193 DWORD GetOptions() const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7194 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7195 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7196 return (DWORD)::SendMessage(this->m_hWnd, EM_GETOPTIONS, 0, 0L);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7197 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7198
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7199 DWORD SetOptions(WORD wOperation, DWORD dwOptions)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7200 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7201 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7202 return (DWORD)::SendMessage(this->m_hWnd, EM_SETOPTIONS, wOperation, dwOptions);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7203 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7204
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7205 // NOTE: first word in lpszBuffer must contain the size of the buffer!
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7206 int GetLine(int nIndex, LPTSTR lpszBuffer) const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7207 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7208 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7209 return (int)::SendMessage(this->m_hWnd, EM_GETLINE, nIndex, (LPARAM)lpszBuffer);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7210 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7211
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7212 int GetLine(int nIndex, LPTSTR lpszBuffer, int nMaxLength) const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7213 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7214 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7215 *(LPWORD)lpszBuffer = (WORD)nMaxLength;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7216 return (int)::SendMessage(this->m_hWnd, EM_GETLINE, nIndex, (LPARAM)lpszBuffer);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7217 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7218
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7219 BOOL CanUndo() const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7220 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7221 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7222 return (BOOL)::SendMessage(this->m_hWnd, EM_CANUNDO, 0, 0L);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7223 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7224
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7225 BOOL CanPaste(UINT nFormat = 0) const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7226 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7227 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7228 return (BOOL)::SendMessage(this->m_hWnd, EM_CANPASTE, nFormat, 0L);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7229 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7230
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7231 void GetSel(LONG& nStartChar, LONG& nEndChar) const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7232 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7233 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7234 CHARRANGE cr = {};
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7235 ::SendMessage(this->m_hWnd, EM_EXGETSEL, 0, (LPARAM)&cr);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7236 nStartChar = cr.cpMin;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7237 nEndChar = cr.cpMax;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7238 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7239
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7240 void GetSel(CHARRANGE &cr) const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7241 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7242 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7243 ::SendMessage(this->m_hWnd, EM_EXGETSEL, 0, (LPARAM)&cr);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7244 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7245
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7246 int SetSel(LONG nStartChar, LONG nEndChar)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7247 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7248 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7249 CHARRANGE cr = { nStartChar, nEndChar };
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7250 return (int)::SendMessage(this->m_hWnd, EM_EXSETSEL, 0, (LPARAM)&cr);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7251 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7252
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7253 int SetSel(CHARRANGE &cr)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7254 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7255 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7256 return (int)::SendMessage(this->m_hWnd, EM_EXSETSEL, 0, (LPARAM)&cr);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7257 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7258
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7259 int SetSelAll()
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7260 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7261 return SetSel(0, -1);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7262 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7263
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7264 int SetSelNone()
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7265 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7266 return SetSel(-1, 0);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7267 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7268
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7269 DWORD GetDefaultCharFormat(CHARFORMAT& cf) const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7270 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7271 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7272 cf.cbSize = sizeof(CHARFORMAT);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7273 return (DWORD)::SendMessage(this->m_hWnd, EM_GETCHARFORMAT, 0, (LPARAM)&cf);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7274 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7275
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7276 DWORD GetSelectionCharFormat(CHARFORMAT& cf) const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7277 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7278 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7279 cf.cbSize = sizeof(CHARFORMAT);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7280 return (DWORD)::SendMessage(this->m_hWnd, EM_GETCHARFORMAT, 1, (LPARAM)&cf);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7281 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7282
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7283 DWORD GetEventMask() const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7284 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7285 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7286 return (DWORD)::SendMessage(this->m_hWnd, EM_GETEVENTMASK, 0, 0L);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7287 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7288
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7289 LONG GetLimitText() const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7290 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7291 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7292 return (LONG)::SendMessage(this->m_hWnd, EM_GETLIMITTEXT, 0, 0L);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7293 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7294
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7295 DWORD GetParaFormat(PARAFORMAT& pf) const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7296 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7297 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7298 pf.cbSize = sizeof(PARAFORMAT);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7299 return (DWORD)::SendMessage(this->m_hWnd, EM_GETPARAFORMAT, 0, (LPARAM)&pf);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7300 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7301
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7302 LONG GetSelText(LPTSTR lpstrBuff) const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7303 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7304 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7305 return (LONG)::SendMessage(this->m_hWnd, EM_GETSELTEXT, 0, (LPARAM)lpstrBuff);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7306 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7307
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7308 BOOL GetSelTextBSTR(BSTR& bstrText) const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7309 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7310 USES_CONVERSION;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7311 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7312 ATLASSERT(bstrText == NULL);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7313
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7314 CHARRANGE cr = {};
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7315 ::SendMessage(this->m_hWnd, EM_EXGETSEL, 0, (LPARAM)&cr);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7316
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7317 ATL::CTempBuffer<TCHAR, _WTL_STACK_ALLOC_THRESHOLD> buff;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7318 LPTSTR lpstrText = buff.Allocate(cr.cpMax - cr.cpMin + 1);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7319 if(lpstrText == NULL)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7320 return FALSE;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7321 if(::SendMessage(this->m_hWnd, EM_GETSELTEXT, 0, (LPARAM)lpstrText) == 0)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7322 return FALSE;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7323
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7324 bstrText = ::SysAllocString(T2W(lpstrText));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7325
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7326 return (bstrText != NULL) ? TRUE : FALSE;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7327 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7328
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7329 #ifdef __ATLSTR_H__
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7330 LONG GetSelText(ATL::CString& strText) const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7331 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7332 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7333
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7334 CHARRANGE cr = {};
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7335 ::SendMessage(this->m_hWnd, EM_EXGETSEL, 0, (LPARAM)&cr);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7336
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7337 LONG lLen = 0;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7338 LPTSTR lpstrText = strText.GetBufferSetLength(cr.cpMax - cr.cpMin);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7339 if(lpstrText != NULL)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7340 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7341 lLen = (LONG)::SendMessage(this->m_hWnd, EM_GETSELTEXT, 0, (LPARAM)lpstrText);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7342 strText.ReleaseBuffer();
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7343 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7344
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7345 return lLen;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7346 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7347 #endif // __ATLSTR_H__
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7348
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7349 WORD GetSelectionType() const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7350 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7351 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7352 return (WORD)::SendMessage(this->m_hWnd, EM_SELECTIONTYPE, 0, 0L);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7353 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7354
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7355 COLORREF SetBackgroundColor(COLORREF cr)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7356 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7357 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7358 return (COLORREF)::SendMessage(this->m_hWnd, EM_SETBKGNDCOLOR, 0, cr);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7359 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7360
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7361 COLORREF SetBackgroundColor() // sets to system background
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7362 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7363 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7364 return (COLORREF)::SendMessage(this->m_hWnd, EM_SETBKGNDCOLOR, 1, 0);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7365 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7366
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7367 BOOL SetCharFormat(CHARFORMAT& cf, WORD wFlags)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7368 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7369 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7370 cf.cbSize = sizeof(CHARFORMAT);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7371 return (BOOL)::SendMessage(this->m_hWnd, EM_SETCHARFORMAT, (WPARAM)wFlags, (LPARAM)&cf);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7372 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7373
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7374 BOOL SetDefaultCharFormat(CHARFORMAT& cf)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7375 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7376 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7377 cf.cbSize = sizeof(CHARFORMAT);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7378 return (BOOL)::SendMessage(this->m_hWnd, EM_SETCHARFORMAT, 0, (LPARAM)&cf);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7379 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7380
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7381 BOOL SetSelectionCharFormat(CHARFORMAT& cf)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7382 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7383 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7384 cf.cbSize = sizeof(CHARFORMAT);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7385 return (BOOL)::SendMessage(this->m_hWnd, EM_SETCHARFORMAT, SCF_SELECTION, (LPARAM)&cf);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7386 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7387
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7388 BOOL SetWordCharFormat(CHARFORMAT& cf)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7389 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7390 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7391 cf.cbSize = sizeof(CHARFORMAT);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7392 return (BOOL)::SendMessage(this->m_hWnd, EM_SETCHARFORMAT, SCF_SELECTION | SCF_WORD, (LPARAM)&cf);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7393 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7394
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7395 DWORD SetEventMask(DWORD dwEventMask)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7396 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7397 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7398 return (DWORD)::SendMessage(this->m_hWnd, EM_SETEVENTMASK, 0, dwEventMask);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7399 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7400
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7401 BOOL SetParaFormat(PARAFORMAT& pf)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7402 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7403 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7404 pf.cbSize = sizeof(PARAFORMAT);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7405 return (BOOL)::SendMessage(this->m_hWnd, EM_SETPARAFORMAT, 0, (LPARAM)&pf);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7406 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7407
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7408 BOOL SetTargetDevice(HDC hDC, int cxLineWidth)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7409 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7410 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7411 return (BOOL)::SendMessage(this->m_hWnd, EM_SETTARGETDEVICE, (WPARAM)hDC, cxLineWidth);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7412 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7413
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7414 int GetTextLength() const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7415 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7416 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7417 return (int)::SendMessage(this->m_hWnd, WM_GETTEXTLENGTH, 0, 0L);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7418 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7419
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7420 BOOL SetReadOnly(BOOL bReadOnly = TRUE)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7421 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7422 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7423 return (BOOL)::SendMessage(this->m_hWnd, EM_SETREADONLY, bReadOnly, 0L);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7424 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7425
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7426 int GetFirstVisibleLine() const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7427 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7428 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7429 return (int)::SendMessage(this->m_hWnd, EM_GETFIRSTVISIBLELINE, 0, 0L);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7430 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7431
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7432 int GetTextRange(TEXTRANGE* pTextRange) const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7433 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7434 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7435 return (int)::SendMessage(this->m_hWnd, EM_GETTEXTRANGE, 0, (LPARAM)pTextRange);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7436 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7437
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7438 int GetTextRange(LONG nStartChar, LONG nEndChar, LPTSTR lpstrText) const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7439 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7440 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7441 TEXTRANGE tr = {};
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7442 tr.chrg.cpMin = nStartChar;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7443 tr.chrg.cpMax = nEndChar;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7444 tr.lpstrText = lpstrText;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7445 return (int)::SendMessage(this->m_hWnd, EM_GETTEXTRANGE, 0, (LPARAM)&tr);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7446 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7447
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7448 DWORD GetDefaultCharFormat(CHARFORMAT2& cf) const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7449 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7450 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7451 cf.cbSize = sizeof(CHARFORMAT2);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7452 return (DWORD)::SendMessage(this->m_hWnd, EM_GETCHARFORMAT, 0, (LPARAM)&cf);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7453 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7454
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7455 BOOL SetCharFormat(CHARFORMAT2& cf, WORD wFlags)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7456 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7457 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7458 cf.cbSize = sizeof(CHARFORMAT2);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7459 return (BOOL)::SendMessage(this->m_hWnd, EM_SETCHARFORMAT, (WPARAM)wFlags, (LPARAM)&cf);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7460 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7461
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7462 BOOL SetDefaultCharFormat(CHARFORMAT2& cf)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7463 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7464 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7465 cf.cbSize = sizeof(CHARFORMAT2);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7466 return (BOOL)::SendMessage(this->m_hWnd, EM_SETCHARFORMAT, 0, (LPARAM)&cf);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7467 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7468
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7469 DWORD GetSelectionCharFormat(CHARFORMAT2& cf) const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7470 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7471 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7472 cf.cbSize = sizeof(CHARFORMAT2);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7473 return (DWORD)::SendMessage(this->m_hWnd, EM_GETCHARFORMAT, 1, (LPARAM)&cf);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7474 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7475
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7476 BOOL SetSelectionCharFormat(CHARFORMAT2& cf)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7477 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7478 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7479 cf.cbSize = sizeof(CHARFORMAT2);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7480 return (BOOL)::SendMessage(this->m_hWnd, EM_SETCHARFORMAT, SCF_SELECTION, (LPARAM)&cf);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7481 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7482
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7483 BOOL SetWordCharFormat(CHARFORMAT2& cf)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7484 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7485 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7486 cf.cbSize = sizeof(CHARFORMAT2);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7487 return (BOOL)::SendMessage(this->m_hWnd, EM_SETCHARFORMAT, SCF_SELECTION | SCF_WORD, (LPARAM)&cf);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7488 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7489
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7490 DWORD GetParaFormat(PARAFORMAT2& pf) const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7491 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7492 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7493 pf.cbSize = sizeof(PARAFORMAT2);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7494 return (DWORD)::SendMessage(this->m_hWnd, EM_GETPARAFORMAT, 0, (LPARAM)&pf);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7495 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7496
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7497 BOOL SetParaFormat(PARAFORMAT2& pf)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7498 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7499 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7500 pf.cbSize = sizeof(PARAFORMAT2);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7501 return (BOOL)::SendMessage(this->m_hWnd, EM_SETPARAFORMAT, 0, (LPARAM)&pf);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7502 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7503
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7504 TEXTMODE GetTextMode() const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7505 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7506 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7507 return (TEXTMODE)::SendMessage(this->m_hWnd, EM_GETTEXTMODE, 0, 0L);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7508 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7509
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7510 BOOL SetTextMode(TEXTMODE enumTextMode)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7511 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7512 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7513 return !(BOOL)::SendMessage(this->m_hWnd, EM_SETTEXTMODE, enumTextMode, 0L);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7514 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7515
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7516 UNDONAMEID GetUndoName() const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7517 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7518 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7519 return (UNDONAMEID)::SendMessage(this->m_hWnd, EM_GETUNDONAME, 0, 0L);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7520 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7521
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7522 UNDONAMEID GetRedoName() const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7523 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7524 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7525 return (UNDONAMEID)::SendMessage(this->m_hWnd, EM_GETREDONAME, 0, 0L);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7526 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7527
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7528 BOOL CanRedo() const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7529 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7530 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7531 return (BOOL)::SendMessage(this->m_hWnd, EM_CANREDO, 0, 0L);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7532 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7533
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7534 BOOL GetAutoURLDetect() const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7535 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7536 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7537 return (BOOL)::SendMessage(this->m_hWnd, EM_GETAUTOURLDETECT, 0, 0L);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7538 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7539
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7540 BOOL SetAutoURLDetect(BOOL bAutoDetect = TRUE)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7541 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7542 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7543 return !(BOOL)::SendMessage(this->m_hWnd, EM_AUTOURLDETECT, bAutoDetect, 0L);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7544 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7545
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7546 // this method is deprecated, please use SetAutoURLDetect
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7547 BOOL EnableAutoURLDetect(BOOL bEnable = TRUE) { return SetAutoURLDetect(bEnable); }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7548
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7549 UINT SetUndoLimit(UINT uUndoLimit)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7550 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7551 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7552 return (UINT)::SendMessage(this->m_hWnd, EM_SETUNDOLIMIT, uUndoLimit, 0L);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7553 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7554
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7555 void SetPalette(HPALETTE hPalette)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7556 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7557 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7558 ::SendMessage(this->m_hWnd, EM_SETPALETTE, (WPARAM)hPalette, 0L);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7559 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7560
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7561 int GetTextEx(GETTEXTEX* pGetTextEx, LPTSTR lpstrText) const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7562 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7563 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7564 return (int)::SendMessage(this->m_hWnd, EM_GETTEXTEX, (WPARAM)pGetTextEx, (LPARAM)lpstrText);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7565 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7566
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7567 int GetTextEx(LPTSTR lpstrText, int nTextLen, DWORD dwFlags = GT_DEFAULT, UINT uCodePage = CP_ACP, LPCSTR lpDefaultChar = NULL, LPBOOL lpUsedDefChar = NULL) const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7568 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7569 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7570 GETTEXTEX gte = {};
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7571 gte.cb = nTextLen * sizeof(TCHAR);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7572 gte.codepage = uCodePage;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7573 gte.flags = dwFlags;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7574 gte.lpDefaultChar = lpDefaultChar;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7575 gte.lpUsedDefChar = lpUsedDefChar;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7576 return (int)::SendMessage(this->m_hWnd, EM_GETTEXTEX, (WPARAM)&gte, (LPARAM)lpstrText);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7577 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7578
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7579 int GetTextLengthEx(GETTEXTLENGTHEX* pGetTextLengthEx) const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7580 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7581 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7582 return (int)::SendMessage(this->m_hWnd, EM_GETTEXTLENGTHEX, (WPARAM)pGetTextLengthEx, 0L);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7583 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7584
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7585 int GetTextLengthEx(DWORD dwFlags = GTL_DEFAULT, UINT uCodePage = CP_ACP) const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7586 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7587 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7588 GETTEXTLENGTHEX gtle = {};
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7589 gtle.codepage = uCodePage;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7590 gtle.flags = dwFlags;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7591 return (int)::SendMessage(this->m_hWnd, EM_GETTEXTLENGTHEX, (WPARAM)&gtle, 0L);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7592 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7593
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7594 EDITWORDBREAKPROC GetWordBreakProc() const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7595 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7596 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7597 return (EDITWORDBREAKPROC)::SendMessage(this->m_hWnd, EM_GETWORDBREAKPROC, 0, 0L);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7598 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7599
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7600 void SetWordBreakProc(EDITWORDBREAKPROC ewbprc)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7601 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7602 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7603 ::SendMessage(this->m_hWnd, EM_SETWORDBREAKPROC, 0, (LPARAM)ewbprc);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7604 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7605
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7606 int SetTextEx(SETTEXTEX* pSetTextEx, LPCTSTR lpstrText)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7607 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7608 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7609 return (int)::SendMessage(this->m_hWnd, EM_SETTEXTEX, (WPARAM)pSetTextEx, (LPARAM)lpstrText);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7610 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7611
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7612 int SetTextEx(LPCTSTR lpstrText, DWORD dwFlags = ST_DEFAULT, UINT uCodePage = CP_ACP)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7613 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7614 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7615 SETTEXTEX ste = {};
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7616 ste.flags = dwFlags;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7617 ste.codepage = uCodePage;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7618 return (int)::SendMessage(this->m_hWnd, EM_SETTEXTEX, (WPARAM)&ste, (LPARAM)lpstrText);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7619 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7620
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7621 int GetEditStyle() const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7622 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7623 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7624 return (int)::SendMessage(this->m_hWnd, EM_GETEDITSTYLE, 0, 0L);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7625 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7626
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7627 int SetEditStyle(int nStyle, int nMask = -1)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7628 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7629 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7630 if(nMask == -1)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7631 nMask = nStyle; // set everything specified
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7632 return (int)::SendMessage(this->m_hWnd, EM_SETEDITSTYLE, nStyle, nMask);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7633 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7634
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7635 BOOL SetFontSize(int nFontSizeDelta)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7636 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7637 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7638 ATLASSERT((nFontSizeDelta >= -1637) && (nFontSizeDelta <= 1638));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7639 return (BOOL)::SendMessage(this->m_hWnd, EM_SETFONTSIZE, nFontSizeDelta, 0L);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7640 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7641
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7642 void GetScrollPos(LPPOINT lpPoint) const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7643 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7644 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7645 ATLASSERT(lpPoint != NULL);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7646 ::SendMessage(this->m_hWnd, EM_GETSCROLLPOS, 0, (LPARAM)lpPoint);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7647 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7648
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7649 void SetScrollPos(LPPOINT lpPoint)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7650 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7651 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7652 ATLASSERT(lpPoint != NULL);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7653 ::SendMessage(this->m_hWnd, EM_SETSCROLLPOS, 0, (LPARAM)lpPoint);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7654 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7655
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7656 BOOL GetZoom(int& nNum, int& nDen) const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7657 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7658 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7659 return (BOOL)::SendMessage(this->m_hWnd, EM_GETZOOM, (WPARAM)&nNum, (LPARAM)&nDen);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7660 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7661
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7662 BOOL SetZoom(int nNum, int nDen)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7663 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7664 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7665 ATLASSERT((nNum >= 0) && (nNum <= 64));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7666 ATLASSERT((nDen >= 0) && (nDen <= 64));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7667 return (BOOL)::SendMessage(this->m_hWnd, EM_SETZOOM, nNum, nDen);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7668 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7669
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7670 BOOL SetZoomOff()
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7671 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7672 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7673 return (BOOL)::SendMessage(this->m_hWnd, EM_SETZOOM, 0, 0L);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7674 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7675
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7676 void SetMargins(UINT nLeft, UINT nRight, WORD wFlags = EC_LEFTMARGIN | EC_RIGHTMARGIN)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7677 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7678 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7679 ::SendMessage(this->m_hWnd, EM_SETMARGINS, wFlags, MAKELONG(nLeft, nRight));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7680 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7681
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7682 WORD GetTypographyOptions() const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7683 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7684 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7685 return (WORD)::SendMessage(this->m_hWnd, EM_GETTYPOGRAPHYOPTIONS, 0, 0L);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7686 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7687
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7688 BOOL SetTypographyOptions(WORD wOptions, WORD wMask) const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7689 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7690 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7691 return (BOOL)::SendMessage(this->m_hWnd, EM_SETTYPOGRAPHYOPTIONS, wOptions, wMask);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7692 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7693
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7694 // Operations
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7695 void LimitText(LONG nChars = 0)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7696 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7697 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7698 ::SendMessage(this->m_hWnd, EM_EXLIMITTEXT, 0, nChars);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7699 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7700
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7701 int LineFromChar(LONG nIndex) const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7702 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7703 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7704 return (int)::SendMessage(this->m_hWnd, EM_EXLINEFROMCHAR, 0, nIndex);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7705 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7706
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7707 POINT PosFromChar(LONG nChar) const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7708 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7709 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7710 POINT point = {};
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7711 ::SendMessage(this->m_hWnd, EM_POSFROMCHAR, (WPARAM)&point, nChar);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7712 return point;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7713 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7714
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7715 int CharFromPos(POINT pt) const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7716 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7717 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7718 POINTL ptl = { pt.x, pt.y };
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7719 return (int)::SendMessage(this->m_hWnd, EM_CHARFROMPOS, 0, (LPARAM)&ptl);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7720 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7721
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7722 void EmptyUndoBuffer()
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7723 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7724 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7725 ::SendMessage(this->m_hWnd, EM_EMPTYUNDOBUFFER, 0, 0L);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7726 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7727
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7728 int LineIndex(int nLine = -1) const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7729 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7730 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7731 return (int)::SendMessage(this->m_hWnd, EM_LINEINDEX, nLine, 0L);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7732 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7733
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7734 int LineLength(int nLine = -1) const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7735 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7736 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7737 return (int)::SendMessage(this->m_hWnd, EM_LINELENGTH, nLine, 0L);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7738 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7739
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7740 BOOL LineScroll(int nLines)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7741 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7742 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7743 return (BOOL)::SendMessage(this->m_hWnd, EM_LINESCROLL, 0, nLines);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7744 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7745
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7746 void ReplaceSel(LPCTSTR lpszNewText, BOOL bCanUndo = FALSE)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7747 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7748 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7749 ::SendMessage(this->m_hWnd, EM_REPLACESEL, (WPARAM) bCanUndo, (LPARAM)lpszNewText);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7750 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7751
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7752 void SetRect(LPCRECT lpRect)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7753 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7754 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7755 ::SendMessage(this->m_hWnd, EM_SETRECT, 0, (LPARAM)lpRect);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7756 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7757
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7758 BOOL DisplayBand(LPRECT pDisplayRect)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7759 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7760 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7761 return (BOOL)::SendMessage(this->m_hWnd, EM_DISPLAYBAND, 0, (LPARAM)pDisplayRect);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7762 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7763
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7764 LONG FindText(DWORD dwFlags, FINDTEXT& ft) const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7765 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7766 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7767 #ifdef _UNICODE
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7768 return (LONG)::SendMessage(this->m_hWnd, EM_FINDTEXTW, dwFlags, (LPARAM)&ft);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7769 #else
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7770 return (LONG)::SendMessage(this->m_hWnd, EM_FINDTEXT, dwFlags, (LPARAM)&ft);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7771 #endif
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7772 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7773
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7774 LONG FindText(DWORD dwFlags, FINDTEXTEX& ft) const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7775 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7776 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7777 #ifdef _UNICODE
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7778 return (LONG)::SendMessage(this->m_hWnd, EM_FINDTEXTEXW, dwFlags, (LPARAM)&ft);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7779 #else
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7780 return (LONG)::SendMessage(this->m_hWnd, EM_FINDTEXTEX, dwFlags, (LPARAM)&ft);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7781 #endif
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7782 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7783
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7784 LONG FormatRange(FORMATRANGE& fr, BOOL bDisplay = TRUE)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7785 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7786 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7787 return (LONG)::SendMessage(this->m_hWnd, EM_FORMATRANGE, bDisplay, (LPARAM)&fr);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7788 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7789
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7790 LONG FormatRange(FORMATRANGE* pFormatRange, BOOL bDisplay = TRUE)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7791 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7792 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7793 return (LONG)::SendMessage(this->m_hWnd, EM_FORMATRANGE, bDisplay, (LPARAM)pFormatRange);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7794 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7795
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7796 void HideSelection(BOOL bHide = TRUE, BOOL bChangeStyle = FALSE)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7797 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7798 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7799 ::SendMessage(this->m_hWnd, EM_HIDESELECTION, bHide, bChangeStyle);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7800 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7801
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7802 void PasteSpecial(UINT uClipFormat, DWORD dwAspect = 0, HMETAFILE hMF = 0)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7803 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7804 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7805 REPASTESPECIAL reps = { dwAspect, (DWORD_PTR)hMF };
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7806 ::SendMessage(this->m_hWnd, EM_PASTESPECIAL, uClipFormat, (LPARAM)&reps);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7807 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7808
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7809 void RequestResize()
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7810 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7811 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7812 ::SendMessage(this->m_hWnd, EM_REQUESTRESIZE, 0, 0L);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7813 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7814
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7815 LONG StreamIn(UINT uFormat, EDITSTREAM& es)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7816 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7817 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7818 return (LONG)::SendMessage(this->m_hWnd, EM_STREAMIN, uFormat, (LPARAM)&es);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7819 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7820
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7821 LONG StreamOut(UINT uFormat, EDITSTREAM& es)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7822 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7823 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7824 return (LONG)::SendMessage(this->m_hWnd, EM_STREAMOUT, uFormat, (LPARAM)&es);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7825 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7826
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7827 DWORD FindWordBreak(int nCode, LONG nStartChar)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7828 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7829 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7830 return (DWORD)::SendMessage(this->m_hWnd, EM_FINDWORDBREAK, nCode, nStartChar);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7831 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7832
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7833 // Additional operations
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7834 void ScrollCaret()
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7835 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7836 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7837 ::SendMessage(this->m_hWnd, EM_SCROLLCARET, 0, 0L);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7838 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7839
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7840 int InsertText(long nInsertAfterChar, LPCTSTR lpstrText, BOOL bCanUndo = FALSE)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7841 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7842 int nRet = SetSel(nInsertAfterChar, nInsertAfterChar);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7843 ReplaceSel(lpstrText, bCanUndo);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7844 return nRet;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7845 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7846
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7847 int AppendText(LPCTSTR lpstrText, BOOL bCanUndo = FALSE)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7848 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7849 return InsertText(this->GetWindowTextLength(), lpstrText, bCanUndo);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7850 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7851
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7852 // Clipboard operations
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7853 BOOL Undo()
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7854 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7855 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7856 return (BOOL)::SendMessage(this->m_hWnd, EM_UNDO, 0, 0L);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7857 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7858
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7859 void Clear()
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7860 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7861 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7862 ::SendMessage(this->m_hWnd, WM_CLEAR, 0, 0L);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7863 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7864
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7865 void Copy()
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7866 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7867 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7868 ::SendMessage(this->m_hWnd, WM_COPY, 0, 0L);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7869 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7870
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7871 void Cut()
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7872 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7873 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7874 ::SendMessage(this->m_hWnd, WM_CUT, 0, 0L);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7875 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7876
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7877 void Paste()
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7878 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7879 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7880 ::SendMessage(this->m_hWnd, WM_PASTE, 0, 0L);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7881 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7882
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7883 // OLE support
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7884 IRichEditOle* GetOleInterface() const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7885 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7886 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7887 IRichEditOle *pRichEditOle = NULL;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7888 ::SendMessage(this->m_hWnd, EM_GETOLEINTERFACE, 0, (LPARAM)&pRichEditOle);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7889 return pRichEditOle;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7890 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7891
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7892 BOOL SetOleCallback(IRichEditOleCallback* pCallback)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7893 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7894 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7895 return (BOOL)::SendMessage(this->m_hWnd, EM_SETOLECALLBACK, 0, (LPARAM)pCallback);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7896 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7897
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7898 BOOL Redo()
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7899 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7900 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7901 return (BOOL)::SendMessage(this->m_hWnd, EM_REDO, 0, 0L);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7902 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7903
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7904 void StopGroupTyping()
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7905 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7906 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7907 ::SendMessage(this->m_hWnd, EM_STOPGROUPTYPING, 0, 0L);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7908 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7909
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7910 void ShowScrollBar(int nBarType, BOOL bVisible = TRUE)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7911 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7912 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7913 ::SendMessage(this->m_hWnd, EM_SHOWSCROLLBAR, nBarType, bVisible);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7914 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7915
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7916 BOOL SetTabStops(int nTabStops, LPINT rgTabStops)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7917 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7918 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7919 return (BOOL)::SendMessage(this->m_hWnd, EM_SETTABSTOPS, nTabStops, (LPARAM)rgTabStops);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7920 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7921
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7922 BOOL SetTabStops()
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7923 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7924 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7925 return (BOOL)::SendMessage(this->m_hWnd, EM_SETTABSTOPS, 0, 0L);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7926 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7927
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7928 BOOL SetTabStops(const int& cxEachStop) // takes an 'int'
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7929 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7930 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7931 return (BOOL)::SendMessage(this->m_hWnd, EM_SETTABSTOPS, 1, (LPARAM)(LPINT)&cxEachStop);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7932 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7933
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7934 #if (_RICHEDIT_VER >= 0x0800)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7935 AutoCorrectProc GetAutoCorrectProc() const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7936 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7937 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7938 return (AutoCorrectProc)::SendMessage(this->m_hWnd, EM_GETAUTOCORRECTPROC, 0, 0L);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7939 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7940
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7941 BOOL SetAutoCorrectProc(AutoCorrectProc pfn)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7942 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7943 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7944 return (BOOL)::SendMessage(this->m_hWnd, EM_SETAUTOCORRECTPROC, (WPARAM)pfn, 0L);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7945 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7946
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7947 BOOL CallAutoCorrectProc(WCHAR ch)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7948 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7949 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7950 return (BOOL)::SendMessage(this->m_hWnd, EM_CALLAUTOCORRECTPROC, (WPARAM)ch, 0L);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7951 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7952
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7953 DWORD GetEditStyleEx() const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7954 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7955 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7956 return (DWORD)::SendMessage(this->m_hWnd, EM_GETEDITSTYLEEX, 0, 0L);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7957 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7958
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7959 DWORD SetEditStyleEx(DWORD dwStyleEx, DWORD dwMask)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7960 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7961 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7962 return (DWORD)::SendMessage(this->m_hWnd, EM_SETEDITSTYLEEX, dwStyleEx, dwMask);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7963 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7964
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7965 DWORD GetStoryType(int nStoryIndex) const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7966 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7967 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7968 return (DWORD)::SendMessage(this->m_hWnd, EM_GETSTORYTYPE, nStoryIndex, 0L);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7969 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7970
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7971 DWORD SetStoryType(int nStoryIndex, DWORD dwStoryType)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7972 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7973 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7974 return (DWORD)::SendMessage(this->m_hWnd, EM_SETSTORYTYPE, nStoryIndex, dwStoryType);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7975 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7976
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7977 DWORD GetEllipsisMode() const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7978 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7979 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7980
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7981 DWORD dwMode = 0;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7982 BOOL bRet = (BOOL)::SendMessage(this->m_hWnd, EM_GETELLIPSISMODE, 0, (LPARAM)&dwMode);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7983 (void)bRet; // avoid level 4 warning
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7984 ATLASSERT(bRet != FALSE);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7985
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7986 return dwMode;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7987 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7988
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7989 BOOL SetEllipsisMode(DWORD dwEllipsisMode)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7990 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7991 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7992 return (BOOL)::SendMessage(this->m_hWnd, EM_SETELLIPSISMODE, 0, dwEllipsisMode);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7993 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7994
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7995 BOOL GetEllipsisState() const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7996 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7997 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7998 return (BOOL)::SendMessage(this->m_hWnd, EM_GETELLIPSISSTATE, 0, 0L);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7999 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8000
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8001 BOOL GetTouchOptions(int nTouchOptions) const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8002 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8003 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8004 return (BOOL)::SendMessage(this->m_hWnd, EM_GETTOUCHOPTIONS, nTouchOptions, 0L);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8005 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8006
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8007 void SetTouchOptions(int nTouchOptions, BOOL bEnable)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8008 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8009 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8010 ::SendMessage(this->m_hWnd, EM_SETTOUCHOPTIONS, nTouchOptions, bEnable);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8011 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8012
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8013 HRESULT InsertTable(TABLEROWPARMS* pRowParams, TABLECELLPARMS* pCellParams)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8014 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8015 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8016 return (HRESULT)::SendMessage(this->m_hWnd, EM_INSERTTABLE, (WPARAM)pRowParams, (LPARAM)pCellParams);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8017 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8018
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8019 HRESULT GetTableParams(TABLEROWPARMS* pRowParams, TABLECELLPARMS* pCellParams) const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8020 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8021 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8022 return (HRESULT)::SendMessage(this->m_hWnd, EM_GETTABLEPARMS, (WPARAM)pRowParams, (LPARAM)pCellParams);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8023 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8024
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8025 HRESULT SetTableParams(TABLEROWPARMS* pRowParams, TABLECELLPARMS* pCellParams)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8026 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8027 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8028 return (HRESULT)::SendMessage(this->m_hWnd, EM_SETTABLEPARMS, (WPARAM)pRowParams, (LPARAM)pCellParams);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8029 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8030
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8031 HRESULT InsertImage(RICHEDIT_IMAGE_PARAMETERS* pParams)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8032 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8033 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8034 return (HRESULT)::SendMessage(this->m_hWnd, EM_INSERTIMAGE, 0, (LPARAM)pParams);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8035 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8036
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8037 BOOL SetUiaName(LPCTSTR lpstrName)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8038 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8039 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8040 return (BOOL)::SendMessage(this->m_hWnd, EM_SETUIANAME, 0, (LPARAM)lpstrName);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8041 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8042 #endif // (_RICHEDIT_VER >= 0x0800)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8043 };
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8044
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8045 typedef CRichEditCtrlT<ATL::CWindow> CRichEditCtrl;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8046
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8047
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8048 ///////////////////////////////////////////////////////////////////////////////
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8049 // CRichEditCommands - message handlers for standard EDIT commands
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8050
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8051 // Chain to CRichEditCommands message map. Your class must also derive from CRichEditCtrl.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8052 // Example:
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8053 // class CMyRichEdit : public CWindowImpl<CMyRichEdit, CRichEditCtrl>,
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8054 // public CRichEditCommands<CMyRichEdit>
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8055 // {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8056 // public:
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8057 // BEGIN_MSG_MAP(CMyRichEdit)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8058 // // your handlers...
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8059 // CHAIN_MSG_MAP_ALT(CRichEditCommands<CMyRichEdit>, 1)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8060 // END_MSG_MAP()
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8061 // // other stuff...
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8062 // };
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8063
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8064 template <class T>
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8065 class CRichEditCommands : public CEditCommands< T >
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8066 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8067 public:
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8068 BEGIN_MSG_MAP(CRichEditCommands< T >)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8069 ALT_MSG_MAP(1)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8070 COMMAND_ID_HANDLER(ID_EDIT_CLEAR, CEditCommands< T >::OnEditClear)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8071 COMMAND_ID_HANDLER(ID_EDIT_CLEAR_ALL, CEditCommands< T >::OnEditClearAll)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8072 COMMAND_ID_HANDLER(ID_EDIT_COPY, CEditCommands< T >::OnEditCopy)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8073 COMMAND_ID_HANDLER(ID_EDIT_CUT, CEditCommands< T >::OnEditCut)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8074 COMMAND_ID_HANDLER(ID_EDIT_PASTE, CEditCommands< T >::OnEditPaste)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8075 COMMAND_ID_HANDLER(ID_EDIT_SELECT_ALL, CEditCommands< T >::OnEditSelectAll)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8076 COMMAND_ID_HANDLER(ID_EDIT_UNDO, CEditCommands< T >::OnEditUndo)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8077 COMMAND_ID_HANDLER(ID_EDIT_REDO, OnEditRedo)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8078 END_MSG_MAP()
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8079
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8080 LRESULT OnEditRedo(WORD /*wNotifyCode*/, WORD /*wID*/, HWND /*hWndCtl*/, BOOL& /*bHandled*/)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8081 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8082 T* pT = static_cast<T*>(this);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8083 pT->Redo();
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8084 return 0;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8085 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8086
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8087 // State (update UI) helpers
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8088 BOOL CanCut() const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8089 { return HasSelection(); }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8090
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8091 BOOL CanCopy() const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8092 { return HasSelection(); }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8093
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8094 BOOL CanClear() const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8095 { return HasSelection(); }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8096
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8097 // Implementation
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8098 BOOL HasSelection() const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8099 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8100 const T* pT = static_cast<const T*>(this);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8101 return (pT->GetSelectionType() != SEL_EMPTY);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8102 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8103 };
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8104
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8105
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8106 ///////////////////////////////////////////////////////////////////////////////
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8107 // CDragListBox
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8108
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8109 template <class TBase>
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8110 class CDragListBoxT : public CListBoxT< TBase >
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8111 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8112 public:
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8113 // Constructors
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8114 CDragListBoxT(HWND hWnd = NULL) : CListBoxT< TBase >(hWnd)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8115 { }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8116
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8117 CDragListBoxT< TBase >& operator =(HWND hWnd)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8118 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8119 this->m_hWnd = hWnd;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8120 return *this;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8121 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8122
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8123 HWND Create(HWND hWndParent, ATL::_U_RECT rect = NULL, LPCTSTR szWindowName = NULL,
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8124 DWORD dwStyle = 0, DWORD dwExStyle = 0,
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8125 ATL::_U_MENUorID MenuOrID = 0U, LPVOID lpCreateParam = NULL)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8126 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8127 HWND hWnd = TBase::Create(TBase::GetWndClassName(), hWndParent, rect.m_lpRect, szWindowName, dwStyle, dwExStyle, MenuOrID.m_hMenu, lpCreateParam);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8128 if(hWnd != NULL)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8129 MakeDragList();
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8130 return hWnd;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8131 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8132
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8133 // Operations
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8134 BOOL MakeDragList()
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8135 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8136 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8137 ATLASSERT((this->GetStyle() & (LBS_MULTIPLESEL | LBS_EXTENDEDSEL)) == 0);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8138 return ::MakeDragList(this->m_hWnd);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8139 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8140
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8141 int LBItemFromPt(POINT pt, BOOL bAutoScroll = TRUE)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8142 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8143 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8144 return ::LBItemFromPt(this->m_hWnd, pt, bAutoScroll);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8145 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8146
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8147 void DrawInsert(int nItem)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8148 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8149 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8150 ::DrawInsert(this->GetParent(), this->m_hWnd, nItem);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8151 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8152
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8153 static UINT GetDragListMessage()
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8154 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8155 static UINT uDragListMessage = 0;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8156 if(uDragListMessage == 0)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8157 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8158 CStaticDataInitCriticalSectionLock lock;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8159 if(FAILED(lock.Lock()))
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8160 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8161 ATLTRACE2(atlTraceUI, 0, _T("ERROR : Unable to lock critical section in CDragListBox::GetDragListMessage.\n"));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8162 ATLASSERT(FALSE);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8163 return 0;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8164 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8165
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8166 if(uDragListMessage == 0)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8167 uDragListMessage = ::RegisterWindowMessage(DRAGLISTMSGSTRING);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8168
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8169 lock.Unlock();
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8170 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8171 ATLASSERT(uDragListMessage != 0);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8172 return uDragListMessage;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8173 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8174 };
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8175
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8176 typedef CDragListBoxT<ATL::CWindow> CDragListBox;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8177
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8178 template <class T>
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8179 class CDragListNotifyImpl
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8180 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8181 public:
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8182 BEGIN_MSG_MAP(CDragListNotifyImpl< T >)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8183 MESSAGE_HANDLER(CDragListBox::GetDragListMessage(), OnDragListNotify)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8184 END_MSG_MAP()
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8185
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8186 LRESULT OnDragListNotify(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8187 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8188 (void)uMsg; // avoid level 4 warning
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8189 ATLASSERT(uMsg == CDragListBox::GetDragListMessage());
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8190 T* pT = static_cast<T*>(this);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8191 LPDRAGLISTINFO lpDragListInfo = (LPDRAGLISTINFO)lParam;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8192 LRESULT lRet = 0;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8193 switch(lpDragListInfo->uNotification)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8194 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8195 case DL_BEGINDRAG:
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8196 lRet = (LPARAM)pT->OnBeginDrag((int)wParam, lpDragListInfo->hWnd, lpDragListInfo->ptCursor);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8197 break;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8198 case DL_CANCELDRAG:
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8199 pT->OnCancelDrag((int)wParam, lpDragListInfo->hWnd, lpDragListInfo->ptCursor);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8200 break;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8201 case DL_DRAGGING:
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8202 lRet = (LPARAM)pT->OnDragging((int)wParam, lpDragListInfo->hWnd, lpDragListInfo->ptCursor);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8203 break;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8204 case DL_DROPPED:
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8205 pT->OnDropped((int)wParam, lpDragListInfo->hWnd, lpDragListInfo->ptCursor);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8206 break;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8207 default:
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8208 ATLTRACE2(atlTraceUI, 0, _T("Unknown DragListBox notification\n"));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8209 bHandled = FALSE; // don't handle it
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8210 break;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8211 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8212 return lRet;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8213 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8214
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8215 // Overrideables
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8216 BOOL OnBeginDrag(int /*nCtlID*/, HWND /*hWndDragList*/, POINT /*ptCursor*/)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8217 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8218 return TRUE; // allow dragging
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8219 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8220
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8221 void OnCancelDrag(int /*nCtlID*/, HWND /*hWndDragList*/, POINT /*ptCursor*/)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8222 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8223 // nothing to do
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8224 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8225
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8226 int OnDragging(int /*nCtlID*/, HWND /*hWndDragList*/, POINT /*ptCursor*/)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8227 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8228 return 0; // don't change cursor
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8229 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8230
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8231 void OnDropped(int /*nCtlID*/, HWND /*hWndDragList*/, POINT /*ptCursor*/)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8232 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8233 // nothing to do
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8234 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8235 };
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8236
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8237
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8238 ///////////////////////////////////////////////////////////////////////////////
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8239 // CReBarCtrl
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8240
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8241 template <class TBase>
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8242 class CReBarCtrlT : public TBase
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8243 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8244 public:
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8245 // Constructors
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8246 CReBarCtrlT(HWND hWnd = NULL) : TBase(hWnd)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8247 { }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8248
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8249 CReBarCtrlT< TBase >& operator =(HWND hWnd)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8250 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8251 this->m_hWnd = hWnd;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8252 return *this;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8253 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8254
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8255 HWND Create(HWND hWndParent, ATL::_U_RECT rect = NULL, LPCTSTR szWindowName = NULL,
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8256 DWORD dwStyle = 0, DWORD dwExStyle = 0,
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8257 ATL::_U_MENUorID MenuOrID = 0U, LPVOID lpCreateParam = NULL)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8258 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8259 return TBase::Create(GetWndClassName(), hWndParent, rect.m_lpRect, szWindowName, dwStyle, dwExStyle, MenuOrID.m_hMenu, lpCreateParam);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8260 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8261
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8262 // Attributes
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8263 static LPCTSTR GetWndClassName()
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8264 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8265 return REBARCLASSNAME;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8266 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8267
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8268 UINT GetBandCount() const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8269 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8270 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8271 return (UINT)::SendMessage(this->m_hWnd, RB_GETBANDCOUNT, 0, 0L);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8272 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8273
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8274 BOOL GetBandInfo(int nBand, LPREBARBANDINFO lprbbi) const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8275 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8276 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8277 return (BOOL)::SendMessage(this->m_hWnd, RB_GETBANDINFO, nBand, (LPARAM)lprbbi);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8278 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8279
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8280 BOOL SetBandInfo(int nBand, LPREBARBANDINFO lprbbi)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8281 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8282 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8283 return (BOOL)::SendMessage(this->m_hWnd, RB_SETBANDINFO, nBand, (LPARAM)lprbbi);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8284 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8285
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8286 BOOL GetBarInfo(LPREBARINFO lprbi) const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8287 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8288 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8289 return (BOOL)::SendMessage(this->m_hWnd, RB_GETBARINFO, 0, (LPARAM)lprbi);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8290 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8291
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8292 BOOL SetBarInfo(LPREBARINFO lprbi)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8293 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8294 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8295 return (BOOL)::SendMessage(this->m_hWnd, RB_SETBARINFO, 0, (LPARAM)lprbi);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8296 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8297
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8298 CImageList GetImageList() const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8299 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8300 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8301 REBARINFO rbi = {};
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8302 rbi.cbSize = sizeof(REBARINFO);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8303 rbi.fMask = RBIM_IMAGELIST;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8304 BOOL bRet = (BOOL)::SendMessage(this->m_hWnd, RB_GETBARINFO, 0, (LPARAM)&rbi);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8305 return CImageList((bRet != FALSE) ? rbi.himl : NULL);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8306 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8307
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8308 BOOL SetImageList(HIMAGELIST hImageList)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8309 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8310 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8311 REBARINFO rbi = {};
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8312 rbi.cbSize = sizeof(REBARINFO);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8313 rbi.fMask = RBIM_IMAGELIST;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8314 rbi.himl = hImageList;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8315 return (BOOL)::SendMessage(this->m_hWnd, RB_SETBARINFO, 0, (LPARAM)&rbi);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8316 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8317
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8318 UINT GetRowCount() const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8319 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8320 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8321 return (UINT)::SendMessage(this->m_hWnd, RB_GETROWCOUNT, 0, 0L);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8322 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8323
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8324 UINT GetRowHeight(int nBand) const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8325 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8326 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8327 return (UINT)::SendMessage(this->m_hWnd, RB_GETROWHEIGHT, nBand, 0L);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8328 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8329
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8330 COLORREF GetTextColor() const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8331 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8332 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8333 return (COLORREF)::SendMessage(this->m_hWnd, RB_GETTEXTCOLOR, 0, 0L);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8334 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8335
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8336 COLORREF SetTextColor(COLORREF clr)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8337 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8338 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8339 return (COLORREF)::SendMessage(this->m_hWnd, RB_SETTEXTCOLOR, 0, (LPARAM)clr);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8340 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8341
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8342 COLORREF GetBkColor() const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8343 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8344 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8345 return (COLORREF)::SendMessage(this->m_hWnd, RB_GETBKCOLOR, 0, 0L);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8346 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8347
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8348 COLORREF SetBkColor(COLORREF clr)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8349 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8350 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8351 return (COLORREF)::SendMessage(this->m_hWnd, RB_SETBKCOLOR, 0, (LPARAM)clr);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8352 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8353
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8354 UINT GetBarHeight() const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8355 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8356 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8357 return (UINT)::SendMessage(this->m_hWnd, RB_GETBARHEIGHT, 0, 0L);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8358 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8359
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8360 BOOL GetRect(int nBand, LPRECT lpRect) const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8361 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8362 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8363 return (BOOL)::SendMessage(this->m_hWnd, RB_GETRECT, nBand, (LPARAM)lpRect);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8364 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8365
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8366 CToolTipCtrl GetToolTips() const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8367 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8368 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8369 return CToolTipCtrl((HWND)::SendMessage(this->m_hWnd, RB_GETTOOLTIPS, 0, 0L));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8370 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8371
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8372 void SetToolTips(HWND hwndToolTip)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8373 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8374 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8375 ::SendMessage(this->m_hWnd, RB_SETTOOLTIPS, (WPARAM)hwndToolTip, 0L);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8376 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8377
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8378 void GetBandBorders(int nBand, LPRECT lpRect) const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8379 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8380 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8381 ATLASSERT(lpRect != NULL);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8382 ::SendMessage(this->m_hWnd, RB_GETBANDBORDERS, nBand, (LPARAM)lpRect);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8383 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8384
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8385 BOOL GetColorScheme(LPCOLORSCHEME lpColorScheme) const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8386 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8387 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8388 ATLASSERT(lpColorScheme != NULL);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8389 return (BOOL)::SendMessage(this->m_hWnd, RB_GETCOLORSCHEME, 0, (LPARAM)lpColorScheme);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8390 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8391
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8392 void SetColorScheme(LPCOLORSCHEME lpColorScheme)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8393 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8394 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8395 ATLASSERT(lpColorScheme != NULL);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8396 ::SendMessage(this->m_hWnd, RB_SETCOLORSCHEME, 0, (LPARAM)lpColorScheme);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8397 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8398
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8399 HPALETTE GetPalette() const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8400 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8401 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8402 return (HPALETTE)::SendMessage(this->m_hWnd, RB_GETPALETTE, 0, 0L);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8403 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8404
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8405 HPALETTE SetPalette(HPALETTE hPalette)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8406 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8407 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8408 return (HPALETTE)::SendMessage(this->m_hWnd, RB_SETPALETTE, 0, (LPARAM)hPalette);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8409 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8410
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8411 BOOL GetUnicodeFormat() const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8412 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8413 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8414 return (BOOL)::SendMessage(this->m_hWnd, RB_GETUNICODEFORMAT, 0, 0L);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8415 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8416
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8417 BOOL SetUnicodeFormat(BOOL bUnicode = TRUE)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8418 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8419 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8420 return (BOOL)::SendMessage(this->m_hWnd, RB_SETUNICODEFORMAT, bUnicode, 0L);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8421 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8422
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8423 // requires uxtheme.h to be included to use MARGINS struct
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8424 #ifndef _UXTHEME_H_
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8425 typedef struct _MARGINS* PMARGINS;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8426 #endif // !_UXTHEME_H_
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8427 void GetBandMargins(PMARGINS pMargins) const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8428 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8429 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8430 ::SendMessage(this->m_hWnd, RB_GETBANDMARGINS, 0, (LPARAM)pMargins);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8431 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8432
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8433 void SetWindowTheme(LPCWSTR lpstrTheme)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8434 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8435 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8436 ::SendMessage(this->m_hWnd, RB_SETWINDOWTHEME, 0, (LPARAM)lpstrTheme);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8437 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8438
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8439 DWORD GetExtendedStyle() const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8440 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8441 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8442 return (DWORD)::SendMessage(this->m_hWnd, RB_GETEXTENDEDSTYLE, 0, 0L);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8443 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8444
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8445 DWORD SetExtendedStyle(DWORD dwStyle, DWORD dwMask)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8446 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8447 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8448 return (DWORD)::SendMessage(this->m_hWnd, RB_SETEXTENDEDSTYLE, dwMask, dwStyle);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8449 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8450
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8451 // Operations
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8452 BOOL InsertBand(int nBand, LPREBARBANDINFO lprbbi)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8453 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8454 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8455 return (BOOL)::SendMessage(this->m_hWnd, RB_INSERTBAND, nBand, (LPARAM)lprbbi);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8456 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8457
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8458 BOOL AddBand(LPREBARBANDINFO lprbbi)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8459 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8460 return InsertBand(-1, lprbbi);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8461 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8462
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8463 BOOL DeleteBand(int nBand)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8464 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8465 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8466 return (BOOL)::SendMessage(this->m_hWnd, RB_DELETEBAND, nBand, 0L);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8467 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8468
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8469 ATL::CWindow SetNotifyWnd(HWND hWnd)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8470 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8471 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8472 return ATL::CWindow((HWND)::SendMessage(this->m_hWnd, RB_SETPARENT, (WPARAM)hWnd, 0L));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8473 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8474
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8475 void BeginDrag(int nBand, DWORD dwPos)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8476 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8477 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8478 ::SendMessage(this->m_hWnd, RB_BEGINDRAG, nBand, dwPos);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8479 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8480
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8481 void BeginDrag(int nBand, int xPos, int yPos)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8482 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8483 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8484 ::SendMessage(this->m_hWnd, RB_BEGINDRAG, nBand, MAKELPARAM(xPos, yPos));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8485 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8486
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8487 void EndDrag()
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8488 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8489 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8490 ::SendMessage(this->m_hWnd, RB_ENDDRAG, 0, 0L);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8491 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8492
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8493 void DragMove(DWORD dwPos)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8494 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8495 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8496 ::SendMessage(this->m_hWnd, RB_DRAGMOVE, 0, dwPos);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8497 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8498
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8499 void DragMove(int xPos, int yPos)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8500 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8501 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8502 ::SendMessage(this->m_hWnd, RB_DRAGMOVE, 0, MAKELPARAM(xPos, yPos));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8503 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8504
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8505 void GetDropTarget(IDropTarget** ppDropTarget) const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8506 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8507 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8508 ::SendMessage(this->m_hWnd, RB_GETDROPTARGET, 0, (LPARAM)ppDropTarget);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8509 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8510
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8511 void MaximizeBand(int nBand, BOOL bIdeal = FALSE)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8512 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8513 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8514 ::SendMessage(this->m_hWnd, RB_MAXIMIZEBAND, nBand, bIdeal);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8515 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8516
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8517 void MinimizeBand(int nBand)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8518 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8519 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8520 ::SendMessage(this->m_hWnd, RB_MINIMIZEBAND, nBand, 0L);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8521 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8522
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8523 BOOL SizeToRect(LPRECT lpRect)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8524 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8525 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8526 return (BOOL)::SendMessage(this->m_hWnd, RB_SIZETORECT, 0, (LPARAM)lpRect);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8527 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8528
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8529 int IdToIndex(UINT uBandID) const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8530 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8531 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8532 return (int)::SendMessage(this->m_hWnd, RB_IDTOINDEX, uBandID, 0L);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8533 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8534
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8535 int HitTest(LPRBHITTESTINFO lprbht) const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8536 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8537 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8538 return (int)::SendMessage(this->m_hWnd, RB_HITTEST, 0, (LPARAM)lprbht);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8539 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8540
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8541 BOOL ShowBand(int nBand, BOOL bShow)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8542 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8543 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8544 return (BOOL)::SendMessage(this->m_hWnd, RB_SHOWBAND, nBand, bShow);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8545 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8546
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8547 BOOL MoveBand(int nBand, int nNewPos)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8548 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8549 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8550 ATLASSERT((nNewPos >= 0) && (nNewPos <= ((int)GetBandCount() - 1)));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8551 return (BOOL)::SendMessage(this->m_hWnd, RB_MOVEBAND, nBand, nNewPos);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8552 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8553
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8554 void PushChevron(int nBand, LPARAM lAppValue)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8555 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8556 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8557 ::SendMessage(this->m_hWnd, RB_PUSHCHEVRON, nBand, lAppValue);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8558 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8559
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8560 // Extra operations
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8561 void LockBands(bool bLock)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8562 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8563 int nBandCount = GetBandCount();
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8564 for(int i =0; i < nBandCount; i++)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8565 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8566 REBARBANDINFO rbbi = { RunTimeHelper::SizeOf_REBARBANDINFO() };
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8567 rbbi.fMask = RBBIM_STYLE;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8568 BOOL bRet = GetBandInfo(i, &rbbi);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8569 ATLASSERT(bRet);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8570
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8571 if((rbbi.fStyle & RBBS_GRIPPERALWAYS) == 0)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8572 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8573 rbbi.fStyle |= RBBS_GRIPPERALWAYS;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8574 bRet = SetBandInfo(i, &rbbi);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8575 ATLASSERT(bRet);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8576 rbbi.fStyle &= ~RBBS_GRIPPERALWAYS;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8577 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8578
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8579 if(bLock)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8580 rbbi.fStyle |= RBBS_NOGRIPPER;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8581 else
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8582 rbbi.fStyle &= ~RBBS_NOGRIPPER;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8583
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8584 bRet = SetBandInfo(i, &rbbi);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8585 ATLASSERT(bRet);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8586 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8587 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8588
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8589 #if (_WIN32_WINNT >= 0x0600)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8590 BOOL SetBandWidth(int nBand, int cxWidth)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8591 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8592 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8593 return (BOOL)::SendMessage(this->m_hWnd, RB_SETBANDWIDTH, nBand, cxWidth);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8594 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8595 #endif // (_WIN32_WINNT >= 0x0600)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8596 };
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8597
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8598 typedef CReBarCtrlT<ATL::CWindow> CReBarCtrl;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8599
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8600
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8601 ///////////////////////////////////////////////////////////////////////////////
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8602 // CComboBoxEx
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8603
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8604 template <class TBase>
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8605 class CComboBoxExT : public CComboBoxT< TBase >
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8606 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8607 public:
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8608 // Constructors
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8609 CComboBoxExT(HWND hWnd = NULL) : CComboBoxT< TBase >(hWnd)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8610 { }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8611
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8612 CComboBoxExT< TBase >& operator =(HWND hWnd)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8613 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8614 this->m_hWnd = hWnd;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8615 return *this;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8616 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8617
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8618 HWND Create(HWND hWndParent, ATL::_U_RECT rect = NULL, LPCTSTR szWindowName = NULL,
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8619 DWORD dwStyle = 0, DWORD dwExStyle = 0,
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8620 ATL::_U_MENUorID MenuOrID = 0U, LPVOID lpCreateParam = NULL)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8621 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8622 return TBase::Create(GetWndClassName(), hWndParent, rect.m_lpRect, szWindowName, dwStyle, dwExStyle, MenuOrID.m_hMenu, lpCreateParam);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8623 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8624
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8625 // Attributes
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8626 static LPCTSTR GetWndClassName()
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8627 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8628 return WC_COMBOBOXEX;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8629 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8630
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8631 CImageList GetImageList() const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8632 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8633 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8634 return CImageList((HIMAGELIST)::SendMessage(this->m_hWnd, CBEM_GETIMAGELIST, 0, 0L));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8635 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8636
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8637 CImageList SetImageList(HIMAGELIST hImageList)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8638 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8639 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8640 return CImageList((HIMAGELIST)::SendMessage(this->m_hWnd, CBEM_SETIMAGELIST, 0, (LPARAM)hImageList));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8641 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8642
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8643 DWORD GetExtendedStyle() const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8644 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8645 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8646 return (DWORD)::SendMessage(this->m_hWnd, CBEM_GETEXTENDEDSTYLE, 0, 0L);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8647 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8648
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8649 DWORD SetExtendedStyle(DWORD dwExMask, DWORD dwExStyle)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8650 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8651 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8652 return (DWORD)::SendMessage(this->m_hWnd, CBEM_SETEXTENDEDSTYLE, dwExMask, dwExStyle);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8653 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8654
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8655 BOOL GetUnicodeFormat() const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8656 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8657 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8658 return (BOOL)::SendMessage(this->m_hWnd, CBEM_GETUNICODEFORMAT, 0, 0L);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8659 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8660
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8661 BOOL SetUnicodeFormat(BOOL bUnicode = TRUE)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8662 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8663 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8664 return (BOOL)::SendMessage(this->m_hWnd, CBEM_SETUNICODEFORMAT, bUnicode, 0L);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8665 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8666
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8667 void SetWindowTheme(LPCWSTR lpstrTheme)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8668 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8669 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8670 ::SendMessage(this->m_hWnd, CBEM_SETWINDOWTHEME, 0, (LPARAM)lpstrTheme);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8671 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8672
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8673 // Operations
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8674 int InsertItem(const COMBOBOXEXITEM* lpcCBItem)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8675 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8676 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8677 return (int)::SendMessage(this->m_hWnd, CBEM_INSERTITEM, 0, (LPARAM)lpcCBItem);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8678 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8679
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8680 int InsertItem(UINT nMask, int nIndex, LPCTSTR lpszItem, int nImage, int nSelImage,
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8681 int iIndent, int iOverlay, LPARAM lParam)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8682 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8683 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8684 COMBOBOXEXITEM cbex = {};
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8685 cbex.mask = nMask;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8686 cbex.iItem = nIndex;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8687 cbex.pszText = (LPTSTR) lpszItem;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8688 cbex.iImage = nImage;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8689 cbex.iSelectedImage = nSelImage;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8690 cbex.iIndent = iIndent;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8691 cbex.iOverlay = iOverlay;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8692 cbex.lParam = lParam;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8693 return (int)::SendMessage(this->m_hWnd, CBEM_INSERTITEM, 0, (LPARAM)&cbex);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8694 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8695
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8696 int InsertItem(int nIndex, LPCTSTR lpszItem, int nImage, int nSelImage, int iIndent, LPARAM lParam = 0)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8697 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8698 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8699 COMBOBOXEXITEM cbex = {};
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8700 cbex.mask = CBEIF_TEXT | CBEIF_IMAGE | CBEIF_SELECTEDIMAGE | CBEIF_INDENT | CBEIF_LPARAM;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8701 cbex.iItem = nIndex;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8702 cbex.pszText = (LPTSTR) lpszItem;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8703 cbex.iImage = nImage;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8704 cbex.iSelectedImage = nSelImage;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8705 cbex.iIndent = iIndent;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8706 cbex.lParam = lParam;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8707 return (int)::SendMessage(this->m_hWnd, CBEM_INSERTITEM, 0, (LPARAM)&cbex);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8708 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8709
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8710 int AddItem(UINT nMask, LPCTSTR lpszItem, int nImage, int nSelImage, int iIndent, int iOverlay, LPARAM lParam)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8711 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8712 return InsertItem(nMask, -1, lpszItem, nImage, nSelImage, iIndent, iOverlay, lParam);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8713 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8714
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8715 int AddItem(LPCTSTR lpszItem, int nImage, int nSelImage, int iIndent, LPARAM lParam = 0)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8716 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8717 return InsertItem(-1, lpszItem, nImage, nSelImage, iIndent, lParam);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8718 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8719
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8720 int DeleteItem(int nIndex)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8721 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8722 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8723 return (int)::SendMessage(this->m_hWnd, CBEM_DELETEITEM, nIndex, 0L);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8724 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8725
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8726 BOOL GetItem(PCOMBOBOXEXITEM pCBItem) const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8727 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8728 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8729 return (BOOL)::SendMessage(this->m_hWnd, CBEM_GETITEM, 0, (LPARAM)pCBItem);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8730 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8731
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8732 BOOL SetItem(const COMBOBOXEXITEM* lpcCBItem)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8733 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8734 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8735 return (BOOL)::SendMessage(this->m_hWnd, CBEM_SETITEM, 0, (LPARAM)lpcCBItem);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8736 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8737
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8738 int SetItem(int nIndex, UINT nMask, LPCTSTR lpszItem, int nImage, int nSelImage,
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8739 int iIndent, int iOverlay, LPARAM lParam)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8740 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8741 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8742 COMBOBOXEXITEM cbex = {};
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8743 cbex.mask = nMask;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8744 cbex.iItem = nIndex;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8745 cbex.pszText = (LPTSTR) lpszItem;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8746 cbex.iImage = nImage;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8747 cbex.iSelectedImage = nSelImage;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8748 cbex.iIndent = iIndent;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8749 cbex.iOverlay = iOverlay;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8750 cbex.lParam = lParam;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8751 return (int)::SendMessage(this->m_hWnd, CBEM_SETITEM, 0, (LPARAM)&cbex);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8752 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8753
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8754 BOOL GetItemText(int nIndex, LPTSTR lpszItem, int nLen) const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8755 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8756 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8757 ATLASSERT(lpszItem != NULL);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8758
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8759 COMBOBOXEXITEM cbex = {};
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8760 cbex.mask = CBEIF_TEXT;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8761 cbex.iItem = nIndex;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8762 cbex.pszText = lpszItem;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8763 cbex.cchTextMax = nLen;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8764
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8765 return (BOOL)::SendMessage(this->m_hWnd, CBEM_GETITEM, 0, (LPARAM)&cbex);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8766 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8767
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8768 BOOL GetItemText(int nIndex, BSTR& bstrText) const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8769 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8770 USES_CONVERSION;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8771 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8772 ATLASSERT(bstrText == NULL);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8773
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8774 COMBOBOXEXITEM cbex = {};
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8775 cbex.mask = CBEIF_TEXT;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8776 cbex.iItem = nIndex;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8777
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8778 LPTSTR lpstrText = NULL;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8779 BOOL bRet = FALSE;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8780 for(int nLen = 256; ; nLen *= 2)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8781 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8782 ATLTRY(lpstrText = new TCHAR[nLen]);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8783 if(lpstrText == NULL)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8784 break;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8785 lpstrText[0] = NULL;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8786 cbex.pszText = lpstrText;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8787 cbex.cchTextMax = nLen;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8788 bRet = (BOOL)::SendMessage(this->m_hWnd, CBEM_GETITEM, 0, (LPARAM)&cbex);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8789 if(!bRet || (lstrlen(cbex.pszText) < (nLen - 1)))
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8790 break;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8791 delete [] lpstrText;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8792 lpstrText = NULL;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8793 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8794
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8795 if(lpstrText != NULL)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8796 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8797 if(bRet)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8798 bstrText = ::SysAllocString(T2OLE(lpstrText));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8799 delete [] lpstrText;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8800 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8801
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8802 return (bstrText != NULL) ? TRUE : FALSE;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8803 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8804
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8805 #ifdef __ATLSTR_H__
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8806 BOOL GetItemText(int nIndex, ATL::CString& strText) const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8807 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8808 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8809
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8810 COMBOBOXEXITEM cbex = {};
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8811 cbex.mask = CBEIF_TEXT;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8812 cbex.iItem = nIndex;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8813
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8814 strText.Empty();
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8815 BOOL bRet = FALSE;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8816 for(int nLen = 256; ; nLen *= 2)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8817 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8818 cbex.pszText = strText.GetBufferSetLength(nLen);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8819 if(cbex.pszText == NULL)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8820 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8821 bRet = FALSE;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8822 break;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8823 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8824 cbex.cchTextMax = nLen;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8825 bRet = (BOOL)::SendMessage(this->m_hWnd, CBEM_GETITEM, 0, (LPARAM)&cbex);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8826 if(!bRet || (lstrlen(cbex.pszText) < (nLen - 1)))
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8827 break;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8828 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8829 strText.ReleaseBuffer();
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8830 return bRet;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8831 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8832 #endif // __ATLSTR_H__
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8833
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8834 BOOL SetItemText(int nIndex, LPCTSTR lpszItem)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8835 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8836 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8837 return SetItem(nIndex, CBEIF_TEXT, lpszItem, 0, 0, 0, 0, 0);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8838 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8839
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8840 CComboBox GetComboCtrl() const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8841 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8842 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8843 return CComboBox((HWND)::SendMessage(this->m_hWnd, CBEM_GETCOMBOCONTROL, 0, 0L));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8844 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8845
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8846 CEdit GetEditCtrl() const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8847 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8848 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8849 return CEdit((HWND)::SendMessage(this->m_hWnd, CBEM_GETEDITCONTROL, 0, 0L));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8850 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8851
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8852 BOOL HasEditChanged() const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8853 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8854 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8855 return (BOOL)::SendMessage(this->m_hWnd, CBEM_HASEDITCHANGED, 0, 0L);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8856 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8857
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8858 // Non-functional
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8859 int AddString(LPCTSTR /*lpszItem*/)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8860 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8861 ATLASSERT(FALSE); // Not available in CComboBoxEx; use InsertItem
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8862 return 0;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8863 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8864
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8865 int InsertString(int /*nIndex*/, LPCTSTR /*lpszString*/)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8866 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8867 ATLASSERT(FALSE); // Not available in CComboBoxEx; use InsertItem
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8868 return 0;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8869 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8870
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8871 int Dir(UINT /*attr*/, LPCTSTR /*lpszWildCard*/)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8872 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8873 ATLASSERT(FALSE); // Not available in CComboBoxEx
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8874 return 0;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8875 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8876
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8877 int FindString(int /*nStartAfter*/, LPCTSTR /*lpszString*/) const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8878 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8879 ATLASSERT(FALSE); // Not available in CComboBoxEx; try FindStringExact
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8880 return 0;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8881 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8882 };
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8883
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8884 typedef CComboBoxExT<ATL::CWindow> CComboBoxEx;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8885
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8886
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8887 ///////////////////////////////////////////////////////////////////////////////
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8888 // CMonthCalendarCtrl
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8889
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8890 template <class TBase>
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8891 class CMonthCalendarCtrlT : public TBase
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8892 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8893 public:
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8894 // Constructors
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8895 CMonthCalendarCtrlT(HWND hWnd = NULL) : TBase(hWnd)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8896 { }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8897
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8898 CMonthCalendarCtrlT< TBase >& operator =(HWND hWnd)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8899 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8900 this->m_hWnd = hWnd;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8901 return *this;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8902 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8903
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8904 HWND Create(HWND hWndParent, ATL::_U_RECT rect = NULL, LPCTSTR szWindowName = NULL,
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8905 DWORD dwStyle = 0, DWORD dwExStyle = 0,
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8906 ATL::_U_MENUorID MenuOrID = 0U, LPVOID lpCreateParam = NULL)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8907 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8908 return TBase::Create(GetWndClassName(), hWndParent, rect.m_lpRect, szWindowName, dwStyle, dwExStyle, MenuOrID.m_hMenu, lpCreateParam);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8909 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8910
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8911 // Attributes
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8912 static LPCTSTR GetWndClassName()
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8913 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8914 return MONTHCAL_CLASS;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8915 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8916
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8917 COLORREF GetColor(int nColorType) const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8918 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8919 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8920 return (COLORREF)::SendMessage(this->m_hWnd, MCM_GETCOLOR, nColorType, 0L);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8921 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8922
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8923 COLORREF SetColor(int nColorType, COLORREF clr)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8924 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8925 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8926 return (COLORREF)::SendMessage(this->m_hWnd, MCM_SETCOLOR, nColorType, clr);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8927 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8928
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8929 BOOL GetCurSel(LPSYSTEMTIME lpSysTime) const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8930 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8931 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8932 return (BOOL)::SendMessage(this->m_hWnd, MCM_GETCURSEL, 0, (LPARAM)lpSysTime);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8933 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8934
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8935 BOOL SetCurSel(LPSYSTEMTIME lpSysTime)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8936 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8937 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8938 return (BOOL)::SendMessage(this->m_hWnd, MCM_SETCURSEL, 0, (LPARAM)lpSysTime);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8939 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8940
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8941 int GetFirstDayOfWeek(BOOL* pbLocaleVal = NULL) const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8942 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8943 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8944 DWORD dwRet = (DWORD)::SendMessage(this->m_hWnd, MCM_GETFIRSTDAYOFWEEK, 0, 0L);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8945 if(pbLocaleVal != NULL)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8946 *pbLocaleVal = (BOOL)HIWORD(dwRet);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8947 return (int)(short)LOWORD(dwRet);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8948 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8949
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8950 int SetFirstDayOfWeek(int nDay, BOOL* pbLocaleVal = NULL)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8951 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8952 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8953 DWORD dwRet = (DWORD)::SendMessage(this->m_hWnd, MCM_SETFIRSTDAYOFWEEK, 0, nDay);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8954 if(pbLocaleVal != NULL)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8955 *pbLocaleVal = (BOOL)HIWORD(dwRet);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8956 return (int)(short)LOWORD(dwRet);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8957 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8958
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8959 int GetMaxSelCount() const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8960 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8961 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8962 return (int)::SendMessage(this->m_hWnd, MCM_GETMAXSELCOUNT, 0, 0L);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8963 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8964
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8965 BOOL SetMaxSelCount(int nMax)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8966 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8967 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8968 return (BOOL)::SendMessage(this->m_hWnd, MCM_SETMAXSELCOUNT, nMax, 0L);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8969 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8970
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8971 int GetMonthDelta() const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8972 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8973 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8974 return (int)::SendMessage(this->m_hWnd, MCM_GETMONTHDELTA, 0, 0L);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8975 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8976
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8977 int SetMonthDelta(int nDelta)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8978 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8979 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8980 return (int)::SendMessage(this->m_hWnd, MCM_SETMONTHDELTA, nDelta, 0L);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8981 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8982
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8983 DWORD GetRange(LPSYSTEMTIME lprgSysTimeArray) const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8984 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8985 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8986 return (DWORD)::SendMessage(this->m_hWnd, MCM_GETRANGE, 0, (LPARAM)lprgSysTimeArray);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8987 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8988
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8989 BOOL SetRange(DWORD dwFlags, LPSYSTEMTIME lprgSysTimeArray)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8990 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8991 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8992 return (BOOL)::SendMessage(this->m_hWnd, MCM_SETRANGE, dwFlags, (LPARAM)lprgSysTimeArray);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8993 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8994
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8995 BOOL GetSelRange(LPSYSTEMTIME lprgSysTimeArray) const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8996 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8997 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8998 return (BOOL)::SendMessage(this->m_hWnd, MCM_GETSELRANGE, 0, (LPARAM)lprgSysTimeArray);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8999 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9000
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9001 BOOL SetSelRange(LPSYSTEMTIME lprgSysTimeArray)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9002 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9003 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9004 return (BOOL)::SendMessage(this->m_hWnd, MCM_SETSELRANGE, 0, (LPARAM)lprgSysTimeArray);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9005 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9006
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9007 BOOL GetToday(LPSYSTEMTIME lpSysTime) const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9008 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9009 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9010 return (BOOL)::SendMessage(this->m_hWnd, MCM_GETTODAY, 0, (LPARAM)lpSysTime);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9011 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9012
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9013 void SetToday(LPSYSTEMTIME lpSysTime)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9014 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9015 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9016 ::SendMessage(this->m_hWnd, MCM_SETTODAY, 0, (LPARAM)lpSysTime);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9017 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9018
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9019 BOOL GetMinReqRect(LPRECT lpRectInfo) const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9020 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9021 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9022 return (BOOL)::SendMessage(this->m_hWnd, MCM_GETMINREQRECT, 0, (LPARAM)lpRectInfo);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9023 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9024
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9025 int GetMaxTodayWidth() const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9026 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9027 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9028 return (int)::SendMessage(this->m_hWnd, MCM_GETMAXTODAYWIDTH, 0, 0L);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9029 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9030
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9031 BOOL GetUnicodeFormat() const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9032 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9033 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9034 return (BOOL)::SendMessage(this->m_hWnd, MCM_GETUNICODEFORMAT, 0, 0L);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9035 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9036
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9037 BOOL SetUnicodeFormat(BOOL bUnicode = TRUE)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9038 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9039 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9040 return (BOOL)::SendMessage(this->m_hWnd, MCM_SETUNICODEFORMAT, bUnicode, 0L);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9041 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9042
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9043 #if defined(NTDDI_VERSION) && (NTDDI_VERSION >= NTDDI_LONGHORN)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9044 DWORD GetCurrentView() const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9045 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9046 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9047 return (DWORD)::SendMessage(this->m_hWnd, MCM_GETCURRENTVIEW, 0, 0L);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9048 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9049
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9050 BOOL SetCurrentView(DWORD dwView)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9051 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9052 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9053 return (BOOL)::SendMessage(this->m_hWnd, MCM_SETCURRENTVIEW, 0, dwView);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9054 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9055
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9056 DWORD GetCalendarCount() const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9057 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9058 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9059 return (DWORD)::SendMessage(this->m_hWnd, MCM_GETCALENDARCOUNT, 0, 0L);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9060 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9061
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9062 BOOL GetCalendarGridInfo(PMCGRIDINFO pGridInfo) const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9063 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9064 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9065 return (BOOL)::SendMessage(this->m_hWnd, MCM_GETCALENDARGRIDINFO, 0, (LPARAM)pGridInfo);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9066 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9067
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9068 CALID GetCALID() const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9069 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9070 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9071 return (CALID)::SendMessage(this->m_hWnd, MCM_GETCALID, 0, 0L);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9072 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9073
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9074 void SetCALID(CALID calid)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9075 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9076 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9077 ::SendMessage(this->m_hWnd, MCM_SETCALID, (LPARAM)calid, 0L);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9078 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9079
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9080 int GetCalendarBorder() const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9081 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9082 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9083 return (int)::SendMessage(this->m_hWnd, MCM_GETCALENDARBORDER, 0, 0L);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9084 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9085
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9086 void SetCalendarBorder(int cxyBorder, BOOL bSet = TRUE)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9087 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9088 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9089 ::SendMessage(this->m_hWnd, MCM_SETCALENDARBORDER, (WPARAM)bSet, (LPARAM)cxyBorder);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9090 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9091 #endif // defined(NTDDI_VERSION) && (NTDDI_VERSION >= NTDDI_LONGHORN)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9092
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9093 // Operations
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9094 int GetMonthRange(DWORD dwFlags, LPSYSTEMTIME lprgSysTimeArray) const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9095 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9096 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9097 return (int)::SendMessage(this->m_hWnd, MCM_GETMONTHRANGE, dwFlags, (LPARAM)lprgSysTimeArray);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9098 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9099
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9100 BOOL SetDayState(int nMonths, LPMONTHDAYSTATE lpDayStateArray)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9101 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9102 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9103 return (BOOL)::SendMessage(this->m_hWnd, MCM_SETDAYSTATE, nMonths, (LPARAM)lpDayStateArray);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9104 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9105
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9106 DWORD HitTest(PMCHITTESTINFO pMCHitTest) const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9107 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9108 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9109 return (DWORD)::SendMessage(this->m_hWnd, MCM_HITTEST, 0, (LPARAM)pMCHitTest);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9110 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9111
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9112 #if defined(NTDDI_VERSION) && (NTDDI_VERSION >= NTDDI_LONGHORN)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9113 void SizeRectToMin(LPRECT lpRect)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9114 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9115 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9116 ::SendMessage(this->m_hWnd, MCM_SIZERECTTOMIN, 0, (LPARAM)lpRect);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9117 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9118 #endif // defined(NTDDI_VERSION) && (NTDDI_VERSION >= NTDDI_LONGHORN)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9119 };
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9120
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9121 typedef CMonthCalendarCtrlT<ATL::CWindow> CMonthCalendarCtrl;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9122
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9123
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9124 ///////////////////////////////////////////////////////////////////////////////
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9125 // CDateTimePickerCtrl
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9126
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9127 template <class TBase>
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9128 class CDateTimePickerCtrlT : public TBase
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9129 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9130 public:
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9131 // Constructors
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9132 CDateTimePickerCtrlT(HWND hWnd = NULL) : TBase(hWnd)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9133 { }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9134
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9135 CDateTimePickerCtrlT< TBase >& operator =(HWND hWnd)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9136 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9137 this->m_hWnd = hWnd;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9138 return *this;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9139 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9140
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9141 HWND Create(HWND hWndParent, ATL::_U_RECT rect = NULL, LPCTSTR szWindowName = NULL,
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9142 DWORD dwStyle = 0, DWORD dwExStyle = 0,
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9143 ATL::_U_MENUorID MenuOrID = 0U, LPVOID lpCreateParam = NULL)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9144 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9145 return TBase::Create(GetWndClassName(), hWndParent, rect.m_lpRect, szWindowName, dwStyle, dwExStyle, MenuOrID.m_hMenu, lpCreateParam);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9146 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9147
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9148 // Operations
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9149 static LPCTSTR GetWndClassName()
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9150 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9151 return DATETIMEPICK_CLASS;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9152 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9153
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9154 BOOL SetFormat(LPCTSTR lpszFormat)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9155 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9156 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9157 return (BOOL)::SendMessage(this->m_hWnd, DTM_SETFORMAT, 0, (LPARAM)lpszFormat);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9158 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9159
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9160 COLORREF GetMonthCalColor(int nColorType) const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9161 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9162 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9163 return (COLORREF)::SendMessage(this->m_hWnd, DTM_GETMCCOLOR, nColorType, 0L);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9164 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9165
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9166 COLORREF SetMonthCalColor(int nColorType, COLORREF clr)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9167 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9168 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9169 return (COLORREF)::SendMessage(this->m_hWnd, DTM_SETMCCOLOR, nColorType, clr);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9170 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9171
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9172 DWORD GetRange(LPSYSTEMTIME lpSysTimeArray) const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9173 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9174 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9175 return (DWORD)::SendMessage(this->m_hWnd, DTM_GETRANGE, 0, (LPARAM)lpSysTimeArray);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9176 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9177
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9178 BOOL SetRange(DWORD dwFlags, LPSYSTEMTIME lpSysTimeArray)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9179 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9180 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9181 return (BOOL)::SendMessage(this->m_hWnd, DTM_SETRANGE, dwFlags, (LPARAM)lpSysTimeArray);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9182 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9183
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9184 DWORD GetSystemTime(LPSYSTEMTIME lpSysTime) const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9185 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9186 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9187 return (DWORD)::SendMessage(this->m_hWnd, DTM_GETSYSTEMTIME, 0, (LPARAM)lpSysTime);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9188 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9189
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9190 BOOL SetSystemTime(DWORD dwFlags, LPSYSTEMTIME lpSysTime)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9191 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9192 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9193 return (BOOL)::SendMessage(this->m_hWnd, DTM_SETSYSTEMTIME, dwFlags, (LPARAM)lpSysTime);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9194 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9195
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9196 CMonthCalendarCtrl GetMonthCal() const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9197 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9198 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9199 return CMonthCalendarCtrl((HWND)::SendMessage(this->m_hWnd, DTM_GETMONTHCAL, 0, 0L));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9200 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9201
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9202 CFontHandle GetMonthCalFont() const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9203 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9204 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9205 return CFontHandle((HFONT)::SendMessage(this->m_hWnd, DTM_GETMCFONT, 0, 0L));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9206 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9207
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9208 void SetMonthCalFont(HFONT hFont, BOOL bRedraw = TRUE)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9209 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9210 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9211 ::SendMessage(this->m_hWnd, DTM_SETMCFONT, (WPARAM)hFont, MAKELPARAM(bRedraw, 0));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9212 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9213
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9214 #if defined(NTDDI_VERSION) && (NTDDI_VERSION >= NTDDI_LONGHORN)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9215 DWORD GetMonthCalStyle() const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9216 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9217 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9218 return (DWORD)::SendMessage(this->m_hWnd, DTM_GETMCSTYLE, 0, 0L);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9219 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9220
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9221 DWORD SetMonthCalStyle(DWORD dwStyle)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9222 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9223 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9224 return (DWORD)::SendMessage(this->m_hWnd, DTM_SETMCSTYLE, 0, (LPARAM)dwStyle);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9225 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9226
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9227 void GetDateTimePickerInfo(LPDATETIMEPICKERINFO lpPickerInfo) const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9228 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9229 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9230 ::SendMessage(this->m_hWnd, DTM_GETDATETIMEPICKERINFO, 0, (LPARAM)lpPickerInfo);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9231 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9232
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9233 BOOL GetIdealSize(LPSIZE lpSize) const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9234 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9235 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9236 return (BOOL)::SendMessage(this->m_hWnd, DTM_GETIDEALSIZE, 0, (LPARAM)lpSize);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9237 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9238
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9239 void CloseMonthCal()
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9240 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9241 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9242 ::SendMessage(this->m_hWnd, DTM_CLOSEMONTHCAL, 0, 0L);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9243 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9244 #endif // defined(NTDDI_VERSION) && (NTDDI_VERSION >= NTDDI_LONGHORN)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9245 };
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9246
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9247 typedef CDateTimePickerCtrlT<ATL::CWindow> CDateTimePickerCtrl;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9248
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9249
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9250 ///////////////////////////////////////////////////////////////////////////////
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9251 // CFlatScrollBarImpl - support for flat scroll bars
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9252
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9253 template <class T>
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9254 class CFlatScrollBarImpl
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9255 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9256 public:
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9257 // Initialization
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9258 BOOL FlatSB_Initialize()
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9259 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9260 T* pT = static_cast<T*>(this);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9261 ATLASSERT(::IsWindow(pT->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9262 return ::InitializeFlatSB(pT->m_hWnd);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9263 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9264
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9265 HRESULT FlatSB_Uninitialize()
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9266 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9267 T* pT = static_cast<T*>(this);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9268 ATLASSERT(::IsWindow(pT->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9269 return ::UninitializeFlatSB(pT->m_hWnd);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9270 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9271
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9272 // Flat scroll bar properties
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9273 BOOL FlatSB_GetScrollProp(UINT uIndex, LPINT lpnValue) const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9274 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9275 const T* pT = static_cast<const T*>(this);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9276 ATLASSERT(::IsWindow(pT->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9277 return ::FlatSB_GetScrollProp(pT->m_hWnd, uIndex, lpnValue);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9278 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9279
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9280 BOOL FlatSB_SetScrollProp(UINT uIndex, int nValue, BOOL bRedraw = TRUE)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9281 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9282 T* pT = static_cast<T*>(this);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9283 ATLASSERT(::IsWindow(pT->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9284 return ::FlatSB_SetScrollProp(pT->m_hWnd, uIndex, nValue, bRedraw);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9285 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9286
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9287 // Attributes
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9288 int FlatSB_GetScrollPos(int nBar) const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9289 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9290 const T* pT = static_cast<const T*>(this);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9291 ATLASSERT(::IsWindow(pT->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9292 return ::FlatSB_GetScrollPos(pT->m_hWnd, nBar);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9293 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9294
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9295 int FlatSB_SetScrollPos(int nBar, int nPos, BOOL bRedraw = TRUE)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9296 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9297 T* pT = static_cast<T*>(this);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9298 ATLASSERT(::IsWindow(pT->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9299 return ::FlatSB_SetScrollPos(pT->m_hWnd, nBar, nPos, bRedraw);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9300 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9301
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9302 BOOL FlatSB_GetScrollRange(int nBar, LPINT lpMinPos, LPINT lpMaxPos) const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9303 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9304 const T* pT = static_cast<const T*>(this);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9305 ATLASSERT(::IsWindow(pT->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9306 return ::FlatSB_GetScrollRange(pT->m_hWnd, nBar, lpMinPos, lpMaxPos);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9307 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9308
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9309 BOOL FlatSB_SetScrollRange(int nBar, int nMinPos, int nMaxPos, BOOL bRedraw = TRUE)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9310 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9311 T* pT = static_cast<T*>(this);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9312 ATLASSERT(::IsWindow(pT->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9313 return ::FlatSB_SetScrollRange(pT->m_hWnd, nBar, nMinPos, nMaxPos, bRedraw);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9314 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9315
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9316 BOOL FlatSB_GetScrollInfo(int nBar, LPSCROLLINFO lpScrollInfo) const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9317 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9318 const T* pT = static_cast<const T*>(this);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9319 ATLASSERT(::IsWindow(pT->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9320 return ::FlatSB_GetScrollInfo(pT->m_hWnd, nBar, lpScrollInfo);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9321 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9322
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9323 int FlatSB_SetScrollInfo(int nBar, LPSCROLLINFO lpScrollInfo, BOOL bRedraw = TRUE)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9324 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9325 T* pT = static_cast<T*>(this);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9326 ATLASSERT(::IsWindow(pT->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9327 return ::FlatSB_SetScrollInfo(pT->m_hWnd, nBar, lpScrollInfo, bRedraw);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9328 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9329
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9330 // Operations
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9331 BOOL FlatSB_ShowScrollBar(UINT nBar, BOOL bShow = TRUE)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9332 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9333 T* pT = static_cast<T*>(this);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9334 ATLASSERT(::IsWindow(pT->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9335 return ::FlatSB_ShowScrollBar(pT->m_hWnd, nBar, bShow);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9336 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9337
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9338 BOOL FlatSB_EnableScrollBar(UINT uSBFlags, UINT uArrowFlags = ESB_ENABLE_BOTH)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9339 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9340 T* pT = static_cast<T*>(this);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9341 ATLASSERT(::IsWindow(pT->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9342 return ::FlatSB_EnableScrollBar(pT->m_hWnd, uSBFlags, uArrowFlags);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9343 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9344 };
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9345
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9346 template <class TBase>
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9347 class CFlatScrollBarT : public TBase, public CFlatScrollBarImpl<CFlatScrollBarT< TBase > >
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9348 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9349 public:
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9350 CFlatScrollBarT(HWND hWnd = NULL) : TBase(hWnd)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9351 { }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9352
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9353 CFlatScrollBarT< TBase >& operator =(HWND hWnd)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9354 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9355 this->m_hWnd = hWnd;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9356 return *this;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9357 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9358 };
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9359
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9360 typedef CFlatScrollBarT<ATL::CWindow> CFlatScrollBar;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9361
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9362
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9363 ///////////////////////////////////////////////////////////////////////////////
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9364 // CIPAddressCtrl
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9365
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9366 template <class TBase>
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9367 class CIPAddressCtrlT : public TBase
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9368 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9369 public:
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9370 // Constructors
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9371 CIPAddressCtrlT(HWND hWnd = NULL) : TBase(hWnd)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9372 { }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9373
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9374 CIPAddressCtrlT< TBase >& operator =(HWND hWnd)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9375 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9376 this->m_hWnd = hWnd;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9377 return *this;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9378 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9379
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9380 HWND Create(HWND hWndParent, ATL::_U_RECT rect = NULL, LPCTSTR szWindowName = NULL,
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9381 DWORD dwStyle = 0, DWORD dwExStyle = 0,
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9382 ATL::_U_MENUorID MenuOrID = 0U, LPVOID lpCreateParam = NULL)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9383 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9384 return TBase::Create(GetWndClassName(), hWndParent, rect.m_lpRect, szWindowName, dwStyle, dwExStyle, MenuOrID.m_hMenu, lpCreateParam);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9385 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9386
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9387 // Atteributes
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9388 static LPCTSTR GetWndClassName()
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9389 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9390 return WC_IPADDRESS;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9391 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9392
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9393 BOOL IsBlank() const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9394 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9395 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9396 return (BOOL)::SendMessage(this->m_hWnd, IPM_ISBLANK, 0, 0L);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9397 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9398
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9399 int GetAddress(LPDWORD lpdwAddress) const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9400 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9401 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9402 return (int)::SendMessage(this->m_hWnd, IPM_GETADDRESS, 0, (LPARAM)lpdwAddress);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9403 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9404
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9405 void SetAddress(DWORD dwAddress)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9406 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9407 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9408 ::SendMessage(this->m_hWnd, IPM_SETADDRESS, 0, dwAddress);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9409 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9410
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9411 void ClearAddress()
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9412 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9413 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9414 ::SendMessage(this->m_hWnd, IPM_CLEARADDRESS, 0, 0L);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9415 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9416
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9417 void SetRange(int nField, WORD wRange)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9418 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9419 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9420 ::SendMessage(this->m_hWnd, IPM_SETRANGE, nField, wRange);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9421 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9422
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9423 void SetRange(int nField, BYTE nMin, BYTE nMax)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9424 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9425 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9426 ::SendMessage(this->m_hWnd, IPM_SETRANGE, nField, MAKEIPRANGE(nMin, nMax));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9427 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9428
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9429 void SetFocus(int nField)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9430 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9431 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9432 ::SendMessage(this->m_hWnd, IPM_SETFOCUS, nField, 0L);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9433 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9434 };
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9435
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9436 typedef CIPAddressCtrlT<ATL::CWindow> CIPAddressCtrl;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9437
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9438
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9439 ///////////////////////////////////////////////////////////////////////////////
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9440 // CPagerCtrl
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9441
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9442 template <class TBase>
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9443 class CPagerCtrlT : public TBase
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9444 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9445 public:
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9446 // Constructors
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9447 CPagerCtrlT(HWND hWnd = NULL) : TBase(hWnd)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9448 { }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9449
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9450 CPagerCtrlT< TBase >& operator =(HWND hWnd)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9451 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9452 this->m_hWnd = hWnd;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9453 return *this;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9454 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9455
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9456 HWND Create(HWND hWndParent, ATL::_U_RECT rect = NULL, LPCTSTR szWindowName = NULL,
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9457 DWORD dwStyle = 0, DWORD dwExStyle = 0,
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9458 ATL::_U_MENUorID MenuOrID = 0U, LPVOID lpCreateParam = NULL)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9459 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9460 return TBase::Create(GetWndClassName(), hWndParent, rect.m_lpRect, szWindowName, dwStyle, dwExStyle, MenuOrID.m_hMenu, lpCreateParam);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9461 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9462
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9463 // Attributes
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9464 static LPCTSTR GetWndClassName()
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9465 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9466 return WC_PAGESCROLLER;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9467 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9468
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9469 int GetButtonSize() const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9470 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9471 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9472 return (int)::SendMessage(this->m_hWnd, PGM_GETBUTTONSIZE, 0, 0L);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9473 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9474
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9475 int SetButtonSize(int nButtonSize)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9476 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9477 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9478 return (int)::SendMessage(this->m_hWnd, PGM_SETBUTTONSIZE, 0, nButtonSize);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9479 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9480
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9481 DWORD GetButtonState(int nButton) const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9482 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9483 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9484 ATLASSERT((nButton == PGB_TOPORLEFT) || (nButton == PGB_BOTTOMORRIGHT));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9485 return (DWORD)::SendMessage(this->m_hWnd, PGM_GETBUTTONSTATE, 0, nButton);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9486 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9487
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9488 COLORREF GetBkColor() const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9489 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9490 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9491 return (COLORREF)::SendMessage(this->m_hWnd, PGM_GETBKCOLOR, 0, 0L);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9492 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9493
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9494 COLORREF SetBkColor(COLORREF clrBk)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9495 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9496 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9497 return (COLORREF)::SendMessage(this->m_hWnd, PGM_SETBKCOLOR, 0, (LPARAM)clrBk);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9498 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9499
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9500 int GetBorder() const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9501 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9502 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9503 return (int)::SendMessage(this->m_hWnd, PGM_GETBORDER, 0, 0L);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9504 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9505
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9506 int SetBorder(int nBorderSize)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9507 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9508 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9509 return (int)::SendMessage(this->m_hWnd, PGM_SETBORDER, 0, nBorderSize);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9510 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9511
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9512 int GetPos() const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9513 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9514 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9515 return (int)::SendMessage(this->m_hWnd, PGM_GETPOS, 0, 0L);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9516 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9517
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9518 int SetPos(int nPos)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9519 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9520 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9521 return (int)::SendMessage(this->m_hWnd, PGM_SETPOS, 0, nPos);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9522 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9523
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9524 // Operations
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9525 void SetChild(HWND hWndChild)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9526 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9527 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9528 ::SendMessage(this->m_hWnd, PGM_SETCHILD, 0, (LPARAM)hWndChild);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9529 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9530
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9531 void ForwardMouse(BOOL bForward = TRUE)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9532 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9533 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9534 ::SendMessage(this->m_hWnd, PGM_FORWARDMOUSE, bForward, 0L);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9535 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9536
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9537 void RecalcSize()
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9538 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9539 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9540 ::SendMessage(this->m_hWnd, PGM_RECALCSIZE, 0, 0L);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9541 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9542
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9543 void GetDropTarget(IDropTarget** ppDropTarget)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9544 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9545 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9546 ATLASSERT(ppDropTarget != NULL);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9547 ::SendMessage(this->m_hWnd, PGM_GETDROPTARGET, 0, (LPARAM)ppDropTarget);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9548 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9549 };
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9550
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9551 typedef CPagerCtrlT<ATL::CWindow> CPagerCtrl;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9552
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9553
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9554 ///////////////////////////////////////////////////////////////////////////////
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9555 // CLinkCtrl - Windows SYSLINK control
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9556
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9557 template <class TBase>
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9558 class CLinkCtrlT : public TBase
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9559 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9560 public:
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9561 // Constructors
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9562 CLinkCtrlT(HWND hWnd = NULL) : TBase(hWnd)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9563 { }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9564
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9565 CLinkCtrlT< TBase >& operator =(HWND hWnd)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9566 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9567 this->m_hWnd = hWnd;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9568 return *this;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9569 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9570
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9571 HWND Create(HWND hWndParent, ATL::_U_RECT rect = NULL, LPCTSTR szWindowName = NULL,
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9572 DWORD dwStyle = 0, DWORD dwExStyle = 0,
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9573 ATL::_U_MENUorID MenuOrID = 0U, LPVOID lpCreateParam = NULL)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9574 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9575 return TBase::Create(GetWndClassName(), hWndParent, rect.m_lpRect, szWindowName, dwStyle, dwExStyle, MenuOrID.m_hMenu, lpCreateParam);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9576 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9577
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9578 // Attributes
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9579 static LPCTSTR GetWndClassName()
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9580 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9581 #ifdef _UNICODE
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9582 return WC_LINK;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9583 #else // !_UNICODE
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9584 return "SysLink";
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9585 #endif // !_UNICODE
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9586 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9587
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9588 int GetIdealHeight(int cxMaxWidth = 0) const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9589 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9590 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9591 return (int)::SendMessage(this->m_hWnd, LM_GETIDEALHEIGHT, cxMaxWidth, 0L);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9592 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9593
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9594 BOOL GetItem(PLITEM pLItem) const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9595 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9596 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9597 return (BOOL)::SendMessage(this->m_hWnd, LM_GETITEM, 0, (LPARAM)pLItem);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9598 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9599
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9600 BOOL SetItem(PLITEM pLItem)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9601 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9602 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9603 return (BOOL)::SendMessage(this->m_hWnd, LM_SETITEM, 0, (LPARAM)pLItem);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9604 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9605
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9606 // Vista only
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9607 int GetIdealSize(SIZE& size, int cxMaxWidth = 0) const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9608 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9609 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9610 return (int)::SendMessage(this->m_hWnd, LM_GETIDEALSIZE, cxMaxWidth, (LPARAM)&size);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9611 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9612
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9613 // Operations
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9614 BOOL HitTest(PLHITTESTINFO pLHitTestInfo) const
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9615 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9616 ATLASSERT(::IsWindow(this->m_hWnd));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9617 return (BOOL)::SendMessage(this->m_hWnd, LM_HITTEST, 0, (LPARAM)pLHitTestInfo);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9618 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9619 };
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9620
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9621 typedef CLinkCtrlT<ATL::CWindow> CLinkCtrl;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9622
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9623
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9624 ///////////////////////////////////////////////////////////////////////////////
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9625 // CCustomDraw - MI class for custom-draw support
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9626
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9627 template <class T>
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9628 class CCustomDraw
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9629 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9630 public:
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9631 // Message map and handlers
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9632 BEGIN_MSG_MAP(CCustomDraw< T >)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9633 NOTIFY_CODE_HANDLER(NM_CUSTOMDRAW, OnCustomDraw)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9634 ALT_MSG_MAP(1)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9635 REFLECTED_NOTIFY_CODE_HANDLER(NM_CUSTOMDRAW, OnCustomDraw)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9636 END_MSG_MAP()
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9637
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9638 // message handler
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9639 LRESULT OnCustomDraw(int idCtrl, LPNMHDR pnmh, BOOL& bHandled)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9640 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9641 T* pT = static_cast<T*>(this);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9642 pT->SetMsgHandled(TRUE);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9643 LPNMCUSTOMDRAW lpNMCustomDraw = (LPNMCUSTOMDRAW)pnmh;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9644 DWORD dwRet = 0;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9645 switch(lpNMCustomDraw->dwDrawStage)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9646 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9647 case CDDS_PREPAINT:
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9648 dwRet = pT->OnPrePaint(idCtrl, lpNMCustomDraw);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9649 break;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9650 case CDDS_POSTPAINT:
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9651 dwRet = pT->OnPostPaint(idCtrl, lpNMCustomDraw);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9652 break;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9653 case CDDS_PREERASE:
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9654 dwRet = pT->OnPreErase(idCtrl, lpNMCustomDraw);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9655 break;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9656 case CDDS_POSTERASE:
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9657 dwRet = pT->OnPostErase(idCtrl, lpNMCustomDraw);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9658 break;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9659 case CDDS_ITEMPREPAINT:
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9660 dwRet = pT->OnItemPrePaint(idCtrl, lpNMCustomDraw);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9661 break;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9662 case CDDS_ITEMPOSTPAINT:
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9663 dwRet = pT->OnItemPostPaint(idCtrl, lpNMCustomDraw);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9664 break;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9665 case CDDS_ITEMPREERASE:
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9666 dwRet = pT->OnItemPreErase(idCtrl, lpNMCustomDraw);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9667 break;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9668 case CDDS_ITEMPOSTERASE:
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9669 dwRet = pT->OnItemPostErase(idCtrl, lpNMCustomDraw);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9670 break;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9671 case (CDDS_ITEMPREPAINT | CDDS_SUBITEM):
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9672 dwRet = pT->OnSubItemPrePaint(idCtrl, lpNMCustomDraw);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9673 break;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9674 default:
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9675 pT->SetMsgHandled(FALSE);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9676 break;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9677 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9678 bHandled = pT->IsMsgHandled();
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9679 return dwRet;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9680 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9681
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9682 // Overrideables
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9683 DWORD OnPrePaint(int /*idCtrl*/, LPNMCUSTOMDRAW /*lpNMCustomDraw*/)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9684 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9685 return CDRF_DODEFAULT;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9686 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9687
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9688 DWORD OnPostPaint(int /*idCtrl*/, LPNMCUSTOMDRAW /*lpNMCustomDraw*/)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9689 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9690 return CDRF_DODEFAULT;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9691 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9692
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9693 DWORD OnPreErase(int /*idCtrl*/, LPNMCUSTOMDRAW /*lpNMCustomDraw*/)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9694 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9695 return CDRF_DODEFAULT;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9696 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9697
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9698 DWORD OnPostErase(int /*idCtrl*/, LPNMCUSTOMDRAW /*lpNMCustomDraw*/)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9699 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9700 return CDRF_DODEFAULT;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9701 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9702
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9703 DWORD OnItemPrePaint(int /*idCtrl*/, LPNMCUSTOMDRAW /*lpNMCustomDraw*/)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9704 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9705 return CDRF_DODEFAULT;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9706 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9707
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9708 DWORD OnItemPostPaint(int /*idCtrl*/, LPNMCUSTOMDRAW /*lpNMCustomDraw*/)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9709 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9710 return CDRF_DODEFAULT;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9711 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9712
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9713 DWORD OnItemPreErase(int /*idCtrl*/, LPNMCUSTOMDRAW /*lpNMCustomDraw*/)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9714 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9715 return CDRF_DODEFAULT;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9716 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9717
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9718 DWORD OnItemPostErase(int /*idCtrl*/, LPNMCUSTOMDRAW /*lpNMCustomDraw*/)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9719 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9720 return CDRF_DODEFAULT;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9721 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9722
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9723 DWORD OnSubItemPrePaint(int /*idCtrl*/, LPNMCUSTOMDRAW /*lpNMCustomDraw*/)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9724 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9725 return CDRF_DODEFAULT;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9726 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9727 };
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9728
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9729 } // namespace WTL
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9730
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9731 #endif // __ATLCTRLS_H__