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