DynDialogEx.h 5.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157
  1. #if !defined(AFX_DYNDIALOGEX_H__CF5AF5E8_BD00_11D3_AA7C_0008C7083CA9__INCLUDED_)
  2. #define AFX_DYNDIALOGEX_H__CF5AF5E8_BD00_11D3_AA7C_0008C7083CA9__INCLUDED_
  3. #if _MSC_VER > 1000
  4. #pragma once
  5. #endif // _MSC_VER > 1000
  6. // DynDialogEx.h : header file
  7. //
  8. #include "DynDialogItemEx.h"
  9. // Control styles
  10. #define STYLE_EDIT (WS_VISIBLE | WS_CHILD | WS_TABSTOP | SS_LEFT)
  11. #define STYLE_MULTIEDIT (WS_VISIBLE | WS_CHILD | WS_TABSTOP | SS_LEFT | ES_MULTILINE | ES_AUTOVSCROLL | WS_VSCROLL | ES_WANTRETURN)
  12. #define STYLE_STATIC (WS_VISIBLE | WS_CHILD | SS_LEFT)
  13. #define STYLE_STATIC_CENTER (WS_VISIBLE | WS_CHILD | SS_CENTER)
  14. #define STYLE_STATIC_RIGHT (WS_VISIBLE | WS_CHILD | SS_RIGHT)
  15. #define STYLE_RADIO (WS_VISIBLE | WS_CHILD | BS_AUTORADIOBUTTON)
  16. #define STYLE_RADIO_GROUP (STYLE_RADIO| WS_GROUP | WS_TABSTOP)
  17. #define STYLE_BUTTON (WS_VISIBLE | WS_CHILD | WS_TABSTOP | BS_PUSHBUTTON)
  18. #define STYLE_GROUPBOX (WS_VISIBLE | WS_CHILD | BS_GROUPBOX)
  19. #define STYLE_CHECKBOX (WS_VISIBLE | WS_CHILD | WS_TABSTOP | WS_GROUP | BS_AUTOCHECKBOX)
  20. #define STYLE_COMBOBOX_DROPDOWN (WS_VISIBLE | WS_CHILD | WS_TABSTOP | WS_GROUP | WS_VSCROLL | CBS_DROPDOWN | CBS_SORT | CBS_AUTOHSCROLL) // | CBS_DISABLENOSCROLL)
  21. #define STYLE_COMBOBOX_DROPDOWN_NOSORT (WS_VISIBLE | WS_CHILD | WS_TABSTOP | WS_GROUP | WS_VSCROLL | CBS_DROPDOWN | CBS_AUTOHSCROLL) // | CBS_DISABLENOSCROLL)
  22. #define STYLE_COMBOBOX_SIMPLE (WS_VISIBLE | WS_CHILD | WS_TABSTOP | WS_GROUP | WS_VSCROLL | CBS_SIMPLE | CBS_SORT | CBS_AUTOHSCROLL) // | CBS_DISABLENOSCROLL)
  23. #define STYLE_COMBOBOX_SIMPLE_NOSORT (WS_VISIBLE | WS_CHILD | WS_TABSTOP | WS_GROUP | WS_VSCROLL | CBS_SIMPLE | CBS_AUTOHSCROLL) // | CBS_DISABLENOSCROLL)
  24. #define STYLE_COMBOBOX_DROPDOWNLIST (WS_VISIBLE | WS_CHILD | WS_TABSTOP | WS_GROUP | WS_VSCROLL | CBS_DROPDOWNLIST | CBS_SORT | CBS_AUTOHSCROLL) // | CBS_DISABLENOSCROLL)
  25. #define STYLE_COMBOBOX_DROPDOWNLIST_NOSORT (WS_VISIBLE | WS_CHILD | WS_TABSTOP | WS_GROUP | WS_VSCROLL | CBS_DROPDOWNLIST | CBS_AUTOHSCROLL) // | CBS_DISABLENOSCROLL)
  26. #define STYLE_LISTBOX (WS_VISIBLE | WS_CHILD | WS_TABSTOP | LBS_STANDARD)
  27. #define STYLE_DATETIMEPICKER (WS_VISIBLE | WS_CHILD | WS_TABSTOP | DTS_RIGHTALIGN)
  28. #define STYLE_TIMEPICKER (WS_VISIBLE | WS_CHILD | WS_TABSTOP | DTS_RIGHTALIGN | DTS_TIMEFORMAT)
  29. // Default combo-style
  30. #define STYLE_COMBOBOX (STYLE_COMBOBOX_DROPDOWNLIST)
  31. #define STYLE_COMBOBOX_NOSORT (STYLE_COMBOBOX_DROPDOWNLIST_NOSORT)
  32. // Control Extended styles
  33. #define EXSTYLE_EDIT (WS_EX_CLIENTEDGE)
  34. #define EXSTYLE_MULTIEDIT (WS_EX_CLIENTEDGE)
  35. #define EXSTYLE_LISTBOX (WS_EX_CLIENTEDGE)
  36. #define EXSTYLE_STATIC (0)
  37. #define EXSTYLE_RADIO (0)
  38. #define EXSTYLE_BUTTON (0)
  39. #define EXSTYLE_GROUPBOX (0)
  40. #define EXSTYLE_CHECKBOX (0)
  41. #define EXSTYLE_COMBOBOX (0)
  42. #define EXSTYLE_DATETIMEPICKER (0)
  43. #define EXSTYLE_TIMEPICKER (0)
  44. #define ROWSTEPSIZE 12
  45. #define FIRSTROW1 10
  46. #define FIRSTROW2 37
  47. #define FIXEDCOL1 10
  48. #define FIXEDCOL2 120
  49. #define INPUTCOL 150
  50. #define GROWLIMIT 6
  51. #define MAX_COLS_PER_DESCR 25 // Just a number..
  52. /////////////////////////////////////////////////////////////////////////////
  53. // CDynDialogEx dialog
  54. class CDynDialogEx : public CDialog
  55. {
  56. // Construction
  57. public:
  58. CDynDialogEx(CWnd* pParent = NULL); // standard constructor
  59. ~CDynDialogEx();
  60. virtual CWnd *GetParent();
  61. // Dialog Data
  62. //{{AFX_DATA(CDynDialogEx)
  63. // NOTE: the ClassWizard will add data members here
  64. //}}AFX_DATA
  65. virtual UINT AddDlgControl(DLGITEMTEMPLATECONTROLS TypeControl,
  66. LPCTSTR lpszCaption,
  67. DWORD dwStyle,
  68. DWORD dwExtendedStyle,
  69. LPRECT pRect = NULL,
  70. void *pData = NULL,
  71. UINT nID = 0);
  72. virtual UINT AddDlgControl(LPCSTR lpszClassName,
  73. LPCTSTR lpszCaption,
  74. DWORD dwStyle,
  75. DWORD dwExtendedStyle,
  76. LPRECT pRect = NULL,
  77. void *pData = NULL,
  78. UINT nID = 0);
  79. virtual UINT AddSubclassedDlgControl(LPCSTR lpszClassName,
  80. LPCTSTR lpszCaption,
  81. DWORD dwStyle,
  82. DWORD dwExtendedStyle,
  83. LPRECT pRect = NULL,
  84. UINT nID = 0);
  85. void SetWindowTitle(LPCSTR lpszCaption);
  86. void SetFont(CFont *pFont);
  87. CFont *GetFont();
  88. void SetFontSize(WORD wSize);
  89. WORD GetFontSize();
  90. void SetUseSystemButtons(BOOL bUse = TRUE);
  91. void SetUseModeless(BOOL bModelessDlg = TRUE);
  92. long GetNumberOfConrols() {return long(m_arrDlgItemPtr.GetSize());}
  93. //Additional functions by Tom Daffin
  94. void AddStyles(DWORD dwStyles);
  95. void RemoveStyles(DWORD dwStyles);
  96. // Overrides
  97. // ClassWizard generated virtual function overrides
  98. //{{AFX_VIRTUAL(CDynDialogEx)
  99. public:
  100. virtual int DoModal();
  101. protected:
  102. virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support
  103. virtual void OnCancel();
  104. virtual BOOL OnCommand(WPARAM wParam, LPARAM lParam);
  105. virtual void OnOK();
  106. //}}AFX_VIRTUAL
  107. virtual void OnHelp(); // To be overridden..
  108. protected:
  109. CWnd *m_pParentWnd;
  110. CString m_strCaption;
  111. CFont *m_pFont;
  112. WORD m_wFontSize;
  113. long m_nCurRow;
  114. BOOL m_bAddSystemButtons;
  115. BOOL m_bIsFontCreated;
  116. BOOL m_bModelessDlg;
  117. DLGTEMPLATE m_DialogTemplate;
  118. CArray<CDynDialogItemEx*, CDynDialogItemEx*> m_arrDlgItemPtr;
  119. // Implementation
  120. protected:
  121. void AddSystemButtons();
  122. void GetDlgRect(LPRECT lpRect);
  123. void SetDlgRect(LPRECT lpRect);
  124. void SetDlgRectangle(LPRECT pRect);
  125. // Generated message map functions
  126. //{{AFX_MSG(CDynDialogEx)
  127. virtual BOOL OnInitDialog();
  128. afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct);
  129. //}}AFX_MSG
  130. afx_msg LRESULT OnHelpMsg(WPARAM wParam, LPARAM lParam);
  131. DECLARE_MESSAGE_MAP()
  132. };
  133. //{{AFX_INSERT_LOCATION}}
  134. // Microsoft Visual C++ will insert additional declarations immediately before the previous line.
  135. #endif // !defined(AFX_DYNDIALOGEX_H__CF5AF5E8_BD00_11D3_AA7C_0008C7083CA9__INCLUDED_)