ControlsWnd.h
上传用户:yangzi5763
上传日期:2007-01-02
资源大小:239k
文件大小:11k
源码类别:

ActiveX/DCOM/ATL

开发平台:

Visual C++

  1. /************************************
  2.   REVISION LOG ENTRY
  3.   Revision By: Mihai Filimon
  4.   Revised on 10/16/98 1:42:53 PM
  5.   Comments: ControlsWnd.h: interface for the CControlsWnd class.
  6.  ************************************/
  7. #if !defined(AFX_CONTROLSWND_H__F0626F83_64E1_11D2_86BF_0040055C08D9__INCLUDED_)
  8. #define AFX_CONTROLSWND_H__F0626F83_64E1_11D2_86BF_0040055C08D9__INCLUDED_
  9. #if _MSC_VER >= 1000
  10. #pragma once
  11. #endif // _MSC_VER >= 1000
  12. #include "stdafx.h"
  13. #include "AsControls.h"
  14. #include "rttim.h"
  15. #include "DropListBox.h" // Added by ClassView
  16. #include "DropEdit.h" // Added by ClassView
  17. #include "ColourPicker.h" // Added by ClassView
  18. #include "ReflectShellTree.h" // Added by ClassView
  19. #include "ADORMultiColumnComboBox.h" // Added by ClassView
  20. #include "TreeListCtrl.h"
  21. class CPageListCtrl;
  22. class CXPropertiesWndCtrl;
  23. class CControlsWnd;
  24. #include "_utils.h"
  25. class CControlsWnd : public CObject
  26. {
  27. public:
  28. void Add2NDelete(CControlsWnd* pControl);
  29. void RefreshNDelete(CControlsWnd* pControl, int nSelectedItemNew);
  30. static CControlsWnd* LookupControl(CPageListCtrl* pNotifyWnd, int nSelectedItem);
  31. void Kill();
  32. protected:
  33. static TMapIdx2Ctrl* LookupPage(CPageListCtrl* pNotifyWnd);
  34. public:
  35. // In CControlsWnd_CGroup
  36. virtual BOOL IsGroup();
  37. virtual VARIANT GetValue(long nColumn = 0);
  38. virtual void SetValue(VARIANT vVariant, long nColumn = 0);
  39. // These are only implemented in CControlsWnd_CADORComboBox
  40. virtual void SetColumnKey(long nColumnKey) {;};
  41. virtual long GetColumnKey() {return -1;};
  42. virtual void SetColumnWidth(long nColumn, long nColumnWidth) {;};
  43. virtual long GetColumnWidth(long nColumn) {return -1;};
  44. virtual void SetColumnName(long nColumn, LPCTSTR lpszColumnName) {;};
  45. virtual LPCTSTR GetColumnName(long nColumn) {return NULL;};
  46. virtual void SetColumnHeader(BOOL bShow) {;};
  47. virtual BOOL GetColumnHeader() {return FALSE;};
  48. virtual void SetDropDownWidth(double nRateWidth) {;};
  49. virtual double GetDropDownWidth() { return -1.0;};
  50. virtual void SetDropDownHeight(long nMulHeight) {;};
  51. virtual long GetDropDownHeight() { return -1;};
  52. virtual BOOL Refresh() { return FALSE;};
  53. // End
  54. // Called when this have to be deleted
  55. virtual CControlsWnd* Delete();
  56. long GetSelectedItem() { return m_nSelectedItem; }
  57. DECLARE_BASE_CLASS(CControlsWnd);
  58. DECLARE_DYNAMIC(CControlsWnd)
  59. CWnd* GetWindow();
  60. CPageListCtrl* GetWindowNotify();
  61. CXPropertiesWndCtrl* GetControl();
  62. static CControlsWnd* Create(LPCTSTR lpszAs, CPageListCtrl* pNotifyWnd, int nSelectedItem, int nSelectedSubItem);
  63. // Overidable functions...
  64. virtual CWnd* Create() { return NULL; };
  65. virtual void Show(LPARAM lParam = 0);
  66. virtual void Close(BOOL bCancel);
  67. virtual void OnSelectItem(CString& newValue, LPARAM lParam);
  68. virtual void OnNextItem() {};
  69. // End Overidable functions...
  70. virtual void Load() {};
  71. CControlsWnd();
  72. virtual ~CControlsWnd();
  73. virtual BOOL IsVisible();
  74. protected:
  75. static long m_nFreezeEvent;
  76. virtual void RefreshColor();
  77. virtual CRect GetRect();
  78. virtual CString GetDefaultValue();
  79. int m_nSelectedItem;
  80. int m_nSelectedSubItem;
  81. CWnd* m_pWnd;
  82. CPageListCtrl* m_pNotifyWnd;
  83. static CAsControls m_asControl;
  84. };
  85. class CControlsWnd_CComboBox : public CControlsWnd
  86. {
  87. public:
  88. DECLARE_DERIVED_CLASS(CControlsWnd_CComboBox);
  89. DECLARE_DYNAMIC(CControlsWnd_CComboBox)
  90. CControlsWnd_CComboBox();
  91. virtual ~CControlsWnd_CComboBox();
  92. //Overidable functions
  93. virtual CWnd* Create();
  94. virtual void Show(LPARAM lParam);
  95. virtual void Close(BOOL bCancel);
  96. virtual void OnSelectItem(CString& newValue, LPARAM lParam);
  97. //End overidable functions
  98. virtual void Load();
  99. virtual void OnNextItem();
  100. protected:
  101. CDropListBox m_dropListBox;
  102. };
  103. #include "NCombo.h"
  104. class CControlsWnd_CNComboBox : public CControlsWnd_CComboBox
  105. {
  106. public:
  107. DECLARE_DERIVED_CLASS(CControlsWnd_CNComboBox);
  108. DECLARE_DYNAMIC(CControlsWnd_CNComboBox)
  109. CControlsWnd_CNComboBox();
  110. virtual ~CControlsWnd_CNComboBox();
  111. virtual CWnd* Create();
  112. virtual void Show(LPARAM lParam = 6);
  113. virtual void Close(BOOL bCancel);
  114. virtual CControlsWnd* Delete();
  115. virtual void Load() {};
  116. virtual void OnNextItem();
  117. virtual VARIANT GetValue(long nColumn = 0);
  118. virtual void OnSelectItem(CString& newValue, LPARAM lParam);
  119. protected:
  120. CNCombo m_wndNCBox;
  121. CFont m_font;
  122. };
  123. class CControlsWnd_CNADORComboBox : public CControlsWnd_CNComboBox
  124. {
  125. public:
  126. DECLARE_DERIVED_CLASS(CControlsWnd_CNADORComboBox);
  127. DECLARE_DYNAMIC(CControlsWnd_CNADORComboBox)
  128. CControlsWnd_CNADORComboBox();
  129. virtual ~CControlsWnd_CNADORComboBox();
  130. virtual void Load();
  131. protected:
  132. BOOL m_bLoaded;
  133. };
  134. class CControlsWnd_CBoolComboBox : public CControlsWnd_CComboBox  
  135. {
  136. public:
  137. DECLARE_DERIVED_CLASS(CControlsWnd_CBoolComboBox);
  138. DECLARE_DYNAMIC(CControlsWnd_CBoolComboBox)
  139. CControlsWnd_CBoolComboBox();
  140. virtual ~CControlsWnd_CBoolComboBox();
  141. // Overwrite only Load function
  142. virtual void Load();
  143. virtual void Show(LPARAM lParam = 0);
  144. };
  145. class CControlsWnd_CEdit : public CControlsWnd  
  146. {
  147. public:
  148. DECLARE_DERIVED_CLASS(CControlsWnd_CEdit);
  149. DECLARE_DYNAMIC(CControlsWnd_CEdit)
  150. CControlsWnd_CEdit();
  151. virtual ~CControlsWnd_CEdit();
  152. virtual CWnd* Create();
  153. virtual void Show(LPARAM lParam);
  154. virtual void Close(BOOL bCancel);
  155. virtual void OnSelectItem(CString& newValue, LPARAM lParam);
  156. protected:
  157. CDropEdit m_dropEdit;
  158. };
  159. class CControlsWnd_CButton : public CControlsWnd  
  160. {
  161. public:
  162. DECLARE_DERIVED_CLASS(CControlsWnd_CButton);
  163. DECLARE_DYNAMIC(CControlsWnd_CButton)
  164. CControlsWnd_CButton();
  165. virtual ~CControlsWnd_CButton();
  166. virtual CWnd* Create();
  167. virtual void Show(LPARAM lParam = 0);
  168. virtual void OnNextItem();
  169. virtual void Close(BOOL bCancel) {};
  170. protected:
  171. CButton m_button;
  172. };
  173. class CControlsWnd_CGroup : public CControlsWnd  
  174. {
  175. friend class CPageTreeCtrl;
  176. public:
  177. virtual BOOL IsExtended();
  178. virtual void InsertChild(int nItem);
  179. virtual TArrayIDItem* GetChilds();
  180. virtual void Update(CTreeListCtrl* pListCtrl);
  181. DECLARE_DERIVED_CLASS(CControlsWnd_CGroup);
  182. DECLARE_DYNAMIC(CControlsWnd_CGroup)
  183. CControlsWnd_CGroup();
  184. virtual ~CControlsWnd_CGroup();
  185. // Overidable functions
  186. virtual CControlsWnd* Delete();
  187. virtual CWnd* Create();
  188. virtual void OnNextItem();
  189. virtual BOOL IsGroup();
  190. virtual void Close(BOOL bCancel) {};
  191. protected:
  192. CButton m_btnTemp;
  193. TArrayIDItem m_arChilds;
  194. BOOL m_bExpanded;
  195. };
  196. class CControlsWnd_CReturn: public CControlsWnd_CButton
  197. {
  198. DECLARE_DERIVED_CLASS(CControlsWnd_CReturn);
  199. DECLARE_DYNAMIC(CControlsWnd_CReturn);
  200. };
  201. class CControlsWnd_CLink: public CControlsWnd_CButton
  202. {
  203. DECLARE_DERIVED_CLASS(CControlsWnd_CLink);
  204. DECLARE_DYNAMIC(CControlsWnd_CLink);
  205. };
  206. class CControlsWnd_CFont: public CControlsWnd_CButton
  207. {
  208. DECLARE_DERIVED_CLASS(CControlsWnd_CFont);
  209. DECLARE_DYNAMIC(CControlsWnd_CFont);
  210. public:
  211. virtual LOGFONT* GetLogFont();
  212. virtual void SetLogFont(LOGFONT* pLogFont);
  213. virtual COLORREF GetColorFont();
  214. virtual void SetColorFont(COLORREF rgbColor);
  215. CControlsWnd_CFont();
  216. virtual void Show(LPARAM lParam = 0);
  217. virtual CWnd* Create();
  218. virtual CControlsWnd* Delete();
  219. virtual VARIANT GetValue(long nColumn = 0);
  220. virtual void SetValue(VARIANT vVariant, long nColumn = 0);
  221. virtual void OnSelectItem(CString& newValue, LPARAM lParam);
  222. protected:
  223. virtual long GetHeight(CY size);
  224. virtual CY GetSize();
  225. virtual CString GetName();
  226. LOGFONT m_logFont;
  227. COLORREF m_rgbColor;
  228. };
  229. class CControlsWnd_CUserComboBox : public CControlsWnd  
  230. {
  231. public:
  232. DECLARE_DERIVED_CLASS(CControlsWnd_CUserComboBox);
  233. DECLARE_DYNAMIC(CControlsWnd_CUserComboBox)
  234. CControlsWnd_CUserComboBox();
  235. virtual ~CControlsWnd_CUserComboBox();
  236. virtual CWnd* Create();
  237. virtual void Show(LPARAM lParam = 0);
  238. virtual void Close(BOOL bCancel);
  239. virtual void OnSelectItem(CString& newValue, LPARAM lParam);
  240. virtual void OnNextItem();
  241. protected:
  242. };
  243. class CControlsWnd_CColorComboBox : public CControlsWnd_CUserComboBox
  244. {
  245. public:
  246. virtual BOOL IsVisible();
  247. DECLARE_DERIVED_CLASS(CControlsWnd_CColorComboBox);
  248. DECLARE_DYNAMIC(CControlsWnd_CColorComboBox)
  249. CControlsWnd_CColorComboBox();
  250. virtual ~CControlsWnd_CColorComboBox();
  251. virtual VARIANT GetValue(long nColumn = 0);
  252. virtual void SetValue(VARIANT vVariant, long nColumn = 0);
  253. virtual CWnd* Create();
  254. virtual void Show(LPARAM lParam = 0);
  255. virtual void Close(BOOL bCancel);
  256. virtual void OnSelectItem(CString& newValue, LPARAM lParam);
  257. virtual void OnNextItem();
  258. static LRESULT CALLBACK HookColourPopupWndProc( int nCode, WPARAM wParam, LPARAM lParam );
  259. static HHOOK m_hHook;
  260. static CControlsWnd_CColorComboBox* m_pThis;
  261. static COLORREF GetColor(CString sColor);
  262. protected:
  263. static CString GetName(COLORREF color);
  264. void OnDestroy();
  265. private:
  266. CColourPicker m_btnPicker;
  267. };
  268. class CControlsWnd_CShellFolder : public CControlsWnd
  269. {
  270. public:
  271. DECLARE_DERIVED_CLASS(CControlsWnd_CShellFolder);
  272. DECLARE_DYNAMIC(CControlsWnd_CShellFolder)
  273. CControlsWnd_CShellFolder();
  274. virtual ~CControlsWnd_CShellFolder();
  275. //Overidable functions
  276. virtual CWnd* Create();
  277. virtual void Show(LPARAM lParam);
  278. virtual void OnSelectItem(CString& newValue, LPARAM lParam);
  279. virtual void Close(BOOL bCancel) {};
  280. //End overidable functions
  281. void OnDestroy();
  282. protected:
  283. CReflectShellTree m_dropShellFolder;
  284. };
  285. class CControlsWnd_CADORComboBox : public CControlsWnd
  286. {
  287. public:
  288. virtual VARIANT GetValue(long nColumn = 0);
  289. // Specific only CControlsWnd_CADORComboBox
  290. virtual void SetColumnKey(long nColumnKey);
  291. virtual long GetColumnKey();
  292. virtual void SetColumnWidth(long nColumn, long nColumnWidth);
  293. virtual long GetColumnWidth(long nColumn);
  294. virtual void SetColumnName(long nColumn, LPCTSTR lpszColumnName);
  295. virtual LPCTSTR GetColumnName(long nColumn);
  296. virtual void SetColumnHeader(BOOL bShow);
  297. virtual BOOL GetColumnHeader();
  298. virtual void SetDropDownWidth(double nRateWidth);
  299. virtual double GetDropDownWidth();
  300. virtual void SetDropDownHeight(long nMulHeight);
  301. virtual long GetDropDownHeight();
  302. virtual BOOL Refresh();
  303. // end
  304. DECLARE_DERIVED_CLASS(CControlsWnd_CADORComboBox);
  305. DECLARE_DYNAMIC(CControlsWnd_CADORComboBox)
  306. CControlsWnd_CADORComboBox();
  307. virtual ~CControlsWnd_CADORComboBox();
  308. //Overidable functions
  309. virtual CControlsWnd* Delete();
  310. virtual CWnd* Create();
  311. virtual void Show(LPARAM lParam);
  312. virtual void OnSelectItem(CString& newValue, LPARAM lParam);
  313. virtual void Close(BOOL bCancel) {};
  314. //End overidable functions
  315. protected:
  316. CADORMultiColumnComboBox m_wndADORComboBox;
  317. };
  318. #include "DateComboBox.h" // Added by ClassView
  319. class CControlsWnd_CDataComboBox : public CControlsWnd
  320. {
  321. public:
  322. DECLARE_DERIVED_CLASS(CControlsWnd_CDataComboBox);
  323. DECLARE_DYNAMIC(CControlsWnd_CDataComboBox)
  324. CControlsWnd_CDataComboBox();
  325. virtual ~CControlsWnd_CDataComboBox();
  326. //Overidable functions
  327. virtual CControlsWnd* Delete();
  328. virtual CWnd* Create();
  329. virtual void Show(LPARAM lParam);
  330. virtual void OnSelectItem(CString& newValue, LPARAM lParam);
  331. virtual void Close(BOOL bCancel) {};
  332. //End overidable functions
  333. protected:
  334. CDateComboBox m_wndDate;
  335. };
  336. #endif // !defined(AFX_CONTROLSWND_H__F0626F83_64E1_11D2_86BF_0040055C08D9__INCLUDED_)