00001 #pragma once 00002 #include "stdafx.h" 00003 #include "CTList.h" 00004 00005 #define CTRL_DIALOG 666 00006 #define CTRL_BUTTON 0 00007 #define CTRL_TEXTBOX 1 00008 #define CTRL_STATICTEXT 2 00009 #define CTRL_CHECKBUTTON 3 00010 #define CTRL_RADIOBUTTON 4 00011 #define CTRL_GROUPBOX 5 00012 #define CTRL_HSCROLLBAR 6 00013 #define CTRL_VSCROLLBAR 7 00014 #define CTRL_SLIDER 8 00015 #define CTRL_COMBOBOX 9 00016 #define CTRL_LISTBOX 10 00017 #define CTRL_PICTURE 11 00018 #define CTRL_TREECONTROL 12 00019 #define CTRL_TABCONTROL 13 00020 #define CTRL_PROGRESSBAR 14 00021 #define CTRL_SPIN 15 00022 #define CTRL_HOTKEY 16 00023 #define CTRL_IPADDRESS 17 00024 #define CTRL_LISTCONTROL 18 00025 #define CTRL_DATETIMEPICKER 19 00026 #define CTRL_GRID 20 00027 #define CTRL_RICHEDIT 21 00028 #define CTRL_CALENDAR 22 00029 #define CTRL_PANEL 23 00030 #define CTRL_BUTTONEDIT 24 00031 #define CTRL_MENU 25 00032 #define CTRL_POPUPMENU 26 00033 00034 #define CTRL_MAX 27 00035 #define DEF_HEIGHT 21 00036 #define CLASS_MAX 20 00037 00038 struct CClassInfo 00039 { 00040 char * strClass; 00041 int nWidth; 00042 int nHeight; 00043 }; 00044 00045 struct CCtrlInfo 00046 { 00047 int nCtrlID; 00048 int nWidth; 00049 int nHeight; 00050 int nCount; 00051 char * strClass; 00052 char * strCaption; 00053 CClassInfo * pClassType; 00054 DWORD dwCtrlFalgs; 00055 DWORD dwCtrlFalgsEx; 00056 00057 }; 00058 00059 struct CObjectProperties 00060 { 00061 int nNum; 00062 CString strName; 00063 00064 }; 00065 00066 extern CCtrlInfo cCtrlInfo[]; 00067 00068 00069 class CTObject 00070 { 00071 00072 public: 00073 00074 CTObject() 00075 { 00076 } 00077 00078 ~CTObject() 00079 { 00080 00081 } 00082 00083 int m_nType; 00084 int m_nClass; // index w tablicy klas 00085 00086 CRect m_curRect; /* ramka kontrolki (względna) */ 00087 CRect m_oldRect; /* poprzednia ramka kontrolki */ 00088 CRect m_tmpRect; /* tymczasowa ramka kontrolki */ 00089 CRect m_numRect; /* ramka numerka (rzeczywista) */ 00090 00091 CString m_strName; 00092 CString m_strCaption; 00093 CString m_strInfo; 00094 CString m_strGuid; 00095 00096 int m_nBorderLeft; 00097 int m_nBorderTop; 00098 int m_nID; 00099 00100 int m_nPage; /* numer zakładki na której leży kontrolka */ 00101 int m_nCurPage; /* ważna tylko gdy kontrolka to TPageControl */ 00102 /* numer aktualnie widocznej zakładki */ 00103 00104 CWnd * m_pObject; 00105 CTObject * m_pTParent; 00106 00107 bool m_bEnabled; 00108 bool m_bVisible; 00109 00110 CToolTipCtrl * m_pToolTip; 00111 CTList<CTObject *> m_objects; 00112 CTList<CObjectProperties *> m_properties; /* właściwości obiektu np. nazwa kolumny, 00113 albo pozycji w menu itp */ 00114 00115 CTList<CTObject *> m_object; /* wskaźnik na ten sam obiekt ale w poprzednim stanie. 00116 Taki obiekt nie zawiera podobiektów, a jedynie kopię 00117 swoich właściwości. Pole wymagane przez opcję Undo */ 00118 00119 void StoreCurrent(); 00120 void RestoreLast(); 00121 void RestoreNext(); 00122 00123 00124 };