4#include "GUIWndCtrlBase.h"
5#include "GUIEditCtrl.h"
6#include "GUILayoutBase.h"
7#include "GUIBoxLayout.h"
8#include "GUIGridLayout.h"
11#include "GUIComboBox.h"
12#include "GUIComboBox.h"
13#include "GUICheckBox.h"
14#include "GUIStaticText.h"
15#include "GUIListCtrl.h"
16#include "GUIListCtrlMassive.h"
18#include "GUIDialogBase.h"
36 class CInternalDialog;
75 friend class CGUILayoutBase;
76 friend class CGUIBoxLayout;
77 friend class CGUIGridLayout;
78 friend class CGUIPaneDialog;
79 friend class CGUIManagerViewImageObjectImageFigure;
89 CGUIDialog(UINT nIDTemplate, CWnd* pParent = NULL);
90 CGUIDialog(LPCTSTR lpszTemplateName, CWnd* pParentWnd = NULL);
94 virtual BOOL Create(LPCTSTR lpszTemplateName, CWnd* pParentWnd = NULL)
override;
95 virtual BOOL Create(UINT nIDTemplate, CWnd* pParentWnd = NULL)
override;
96 virtual BOOL CreateIndirect(LPCDLGTEMPLATE lpDialogTemplate, CWnd* pParentWnd = NULL,
void* lpDialogInit = NULL)
override;
97 virtual BOOL CreateIndirect(HGLOBAL hDialogTemplate, CWnd* pParentWnd = NULL)
override;
101 virtual void ShowCaption(
bool bShow);
102 virtual bool IsCaptionVisible()
const;
104 virtual void EnableScroll(
bool bEnable,
bool bIncludeButtons =
true);
105 virtual bool IsScrollEnabled()
const;
107 virtual void ShowOkButton(
bool bShow);
108 virtual void ShowCancelButton(
bool bShow);
109 virtual void ShowYesButton(
bool bShow);
110 virtual void ShowNoButton(
bool bShow);
112 virtual void EnableOkButton(
bool bEnable);
113 virtual bool IsOkButtonEnabled()
const;
114 virtual void EnableCancelButton(
bool bEnable);
115 virtual bool IsCancelButtonEnabled()
const;
116 virtual void EnableYesButton(
bool bEnable);
117 virtual bool IsYesButtonEnabled()
const;
118 virtual void EnableNoButton(
bool bEnable);
119 virtual bool IsNoButtonEnabled()
const;
121 virtual void SetMarginLeft(int32_t i32Margin);
122 virtual int32_t GetMarginLeft()
const;
123 virtual void SetMarginTop(int32_t i32Margin);
124 virtual int32_t GetMarginTop()
const;
125 virtual void SetMarginRight(int32_t i32Margin);
126 virtual int32_t GetMarginRight()
const;
127 virtual void SetMarginBottom(int32_t i32Margin);
128 virtual int32_t GetMarginBottom()
const;
130 virtual void SetIntervalSpacing(int32_t i32IntervalSpacing);
131 virtual int32_t GetIntervalSpacing()
const;
133 virtual void SetTitleHeight(int32_t i32Height);
134 virtual int32_t GetTitleHeight()
const;
141 virtual bool AdjustLayout();
145 virtual void UpdateTheme();
146 virtual void SetWindowSize(int32_t i32Width, int32_t i32Height);
149 #ifdef AFX_DESIGN_TIME
152 IDD = IDD_DIALOG_CUSTOM
155 DECLARE_MESSAGE_MAP()
157 virtual
void PostNcDestroy();
158 virtual int32_t Add(CGUILayoutBase* pLayout);
159 virtual CGUILayoutBase* GetAt(int32_t i32Index);
160 virtual BOOL OnInitDialog() override;
161 virtual
bool SetFocusWnd(CGUIGridLayout* pLayout, int32_t i32Row, int32_t i32Col);
162 virtual
bool SetFocusWnd(CGUIBoxLayout* pLayout, int32_t i32Idx);
165 virtual INT_PTR DoModal()override;
168 virtual
void InitDefaults();
171 virtual BOOL PreTranslateMessage(MSG* pMsg);
173 virtual
void OnCancel();
174 virtual
void OnYes();
176 virtual
void DrawBorder(CDC* pDC);
177 virtual
void DrawCloseButton(CDC* pDC);
178 virtual
void DrawTitleRect(CDC* pDC);
180 virtual BOOL OnNotify(WPARAM wParam, LPARAM lParam, LRESULT* pResult);
181 virtual
bool CreateButton();
182 virtual
bool AdjustLayoutButton(int32_t i32BtnW, int32_t i32BtnH, int32_t i32BtnMargin, int32_t i32BtnSpace, int32_t i32BtnTop);
183 virtual BOOL HitTestGrip(MSG* pMsg);
185 DeclareGetClassType();
190 int32_t m_i32MinWidth;
191 int32_t m_i32MinHeight;
195 int32_t m_i32WndowWidthUserDefined;
196 int32_t m_i32WndowHeightUserDefined;
197 int32_t m_i32ContentsW;
198 int32_t m_i32ContentsH;
199 int32_t m_i32MarginL;
200 int32_t m_i32MarginT;
201 int32_t m_i32MarginR;
202 int32_t m_i32MarginB;
206 int32_t m_i32WndCtrlCnt;
209 int32_t m_i32TitleHeight;
210 bool m_bShowWindowOnAdjustLayout;
213 CInternalDialog* m_pInternal;
225 bool m_bLockWindowUpdate;
231 int32_t m_i32IntervalSpacing;
232 int32_t m_i32HoveringBtn;
233 int32_t m_i32HoveringBtnBf;
234 COLORREF m_clrBorder;
235 COLORREF m_clrBorderActive;
236 COLORREF m_clrClientFill;
237 std::vector<CGUILayoutBase*>& m_vctLayout;
238 std::vector<CGUIDialogLayoutElement*>& m_vctInputWnd;
242 Base::CFLString<
wchar_t> m_strTitle;
244 Base::CFLString<
wchar_t> m_strOkBtnName;
245 Base::CFLString<
wchar_t> m_strCancelBtnName;
246 Base::CFLString<
wchar_t> m_strYesBtnName;
247 Base::CFLString<
wchar_t> m_strNoBtnName;
249 CGUIScrollWnd* m_pScrollWnd;
255 CGUIDialogLayoutElement* m_pWndCtrlOK;
256 CGUIDialogLayoutElement* m_pWndCtrlCancel;
257 CGUIDialogLayoutElement* m_pWndCtrlYes;
258 CGUIDialogLayoutElement* m_pWndCtrlNo;
259 CGUIPaneDialog* m_pParentPaneDialog;
262 bool m_bEnableScroll;
263 bool m_bScrollWndIncludeButtons;
265 bool m_bCenterWindowDone;
268 bool m_bShowCancelBtn;
272 bool m_bEnableCancelBtn;
273 bool m_bEnableYesBtn;
277 bool m_bAlreadyInsideProcedure;
282 CGUILayoutBase* m_pFocusLayout;
284 int32_t m_i32FocusIdx;
285 int32_t m_i32FocusIdxRow;
286 int32_t m_i32FocusIdxCol;
289 afx_msg BOOL OnEraseBkgnd(CDC* pDC);
290 afx_msg
void OnPaint();
291 afx_msg
void OnNcPaint();
292 afx_msg
void OnMouseMove(UINT nFlags, CPoint point);
293 afx_msg
void OnLButtonDown(UINT nFlags, CPoint point);
294 afx_msg
void OnLButtonUp(UINT nFlags, CPoint point);
295 afx_msg
void OnSetFocus(CWnd* pOldWnd);
296 afx_msg
void OnKillFocus(CWnd* pNewWnd);
297 afx_msg BOOL OnSetCursor(CWnd* pWnd, UINT nHitTest, UINT message);
298 afx_msg
void OnDestroy();
299 afx_msg HBRUSH OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor);
300 afx_msg
void OnSize(UINT nType,
int cx,
int cy);
301 afx_msg BOOL OnNcActivate(BOOL bActive);
302 afx_msg
void OnMouseLeave();
303 afx_msg
void OnNcMouseMove(UINT nHitTest, CPoint point);
304 afx_msg
void OnNcMouseLeave();
Template type 의 문자열 클래스
Definition FLString.h:34
콤보박스 클래스
Definition GUIComboBox.h:28
virtual void OnReceiveBroadcast(const Base::CBroadcastMessage *pMessage) override
Callback 함수. BroadcastMessage를 수신받는 함수
CGUIDialog(CWnd *pParent=nullptr)
기본 생성자
문자열 편집 창 클래스
Definition GUIEditCtrl.h:30
저장할 데이터가 매우 많은 경우의 리스트 컨트롤 클래스
Definition GUIListCtrlMassive.h:38
Definition AESCryptography.h:18
Definition D2DObject.h:12
EOrientation
방향
Definition DefinitionsGUI.h:5798
ELayout
다이얼로그의 레이아웃
Definition GUIDialog.h:46
@ BoxLayout
박스 레이아웃
Definition GUIDialog.h:62
@ GridLayout
격자 레이아웃
Definition GUIDialog.h:53