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 "GUICheckBox.h"
13#include "GUIStaticText.h"
14#include "GUIListCtrl.h"
15#include "GUIListCtrlMassive.h"
17#include "GUIDialogBase.h"
35 class CInternalDialog;
74 friend class CGUILayoutBase;
75 friend class CGUIBoxLayout;
76 friend class CGUIGridLayout;
77 friend class CGUIPaneDialog;
78 friend class CGUIManagerViewImageObjectImageFigure;
88 CGUIDialog(UINT nIDTemplate, CWnd* pParent = NULL);
89 CGUIDialog(LPCTSTR lpszTemplateName, CWnd* pParentWnd = NULL);
93 virtual BOOL Create(LPCTSTR lpszTemplateName, CWnd* pParentWnd = NULL)
override;
94 virtual BOOL Create(UINT nIDTemplate, CWnd* pParentWnd = NULL)
override;
95 virtual BOOL CreateIndirect(LPCDLGTEMPLATE lpDialogTemplate, CWnd* pParentWnd = NULL,
void* lpDialogInit = NULL)
override;
96 virtual BOOL CreateIndirect(HGLOBAL hDialogTemplate, CWnd* pParentWnd = NULL)
override;
100 virtual void ShowCaption(
bool bShow =
true);
101 virtual bool IsCaptionVisible()
const;
103 virtual void ShowCloseButtonOnCaption(
bool bShow =
true);
104 virtual bool IsCloseButtonOnCaptionVisible()
const;
105 virtual bool SetCloseButtonOnCaptionCallback(CWndCtrlProcedure* pFunc,
bool bAutoDestroy =
true);
106 virtual CWndCtrlProcedure* GetCloseButtonOnCaptionCallback()
const;
107 virtual int32_t GetCloseButtonOnCaptionClickCount()
const;
108 virtual void SetCloseButtonOnCaptionClickCount(int32_t i32ClickCount);
109 virtual void ClearCloseButtonOnCaptionClickCount();
111 virtual void ShowMinimizeButtonOnCaption(
bool bShow =
false);
112 virtual bool IsMinimizeButtonOnCaptionVisible()
const;
114 virtual void SetMinimizeWidth(int32_t i32Width = 120);
115 virtual int32_t GetMinimizeWidth()
const;
117 virtual void EnableScroll(
bool bEnable,
bool bIncludeButtons =
true);
118 virtual bool IsScrollEnabled()
const;
120 virtual void ShowOkButton(
bool bShow);
121 virtual void ShowCancelButton(
bool bShow);
122 virtual void ShowYesButton(
bool bShow);
123 virtual void ShowNoButton(
bool bShow);
125 virtual void EnableOkButton(
bool bEnable);
126 virtual bool IsOkButtonEnabled()
const;
127 virtual void EnableCancelButton(
bool bEnable);
128 virtual bool IsCancelButtonEnabled()
const;
129 virtual void EnableYesButton(
bool bEnable);
130 virtual bool IsYesButtonEnabled()
const;
131 virtual void EnableNoButton(
bool bEnable);
132 virtual bool IsNoButtonEnabled()
const;
134 virtual void SetMarginLeft(int32_t i32Margin);
135 virtual int32_t GetMarginLeft()
const;
136 virtual void SetMarginTop(int32_t i32Margin);
137 virtual int32_t GetMarginTop()
const;
138 virtual void SetMarginRight(int32_t i32Margin);
139 virtual int32_t GetMarginRight()
const;
140 virtual void SetMarginBottom(int32_t i32Margin);
141 virtual int32_t GetMarginBottom()
const;
143 virtual void SetIntervalSpacing(int32_t i32IntervalSpacing);
144 virtual int32_t GetIntervalSpacing()
const;
146 virtual void SetTitleHeight(int32_t i32Height);
147 virtual int32_t GetTitleHeight()
const;
153 virtual void SetOkButtonCallback(CWndCtrlProcedure* pFunc,
bool bAutoDestroy =
true);
154 virtual void SetCancelButtonCallback(CWndCtrlProcedure* pFunc,
bool bAutoDestroy =
true);
155 virtual void SetYesButtonCallback(CWndCtrlProcedure* pFunc,
bool bAutoDestroy =
true);
156 virtual void SetNoButtonCallback(CWndCtrlProcedure* pFunc,
bool bAutoDestroy =
true);
158 virtual bool AdjustLayout();
162 virtual void UpdateTheme();
163 virtual void SetWindowSize(int32_t i32Width, int32_t i32Height);
166 #ifdef AFX_DESIGN_TIME
169 IDD = IDD_DIALOG_CUSTOM
172 DECLARE_MESSAGE_MAP()
174 virtual
void PostNcDestroy();
175 virtual int32_t Add(CGUILayoutBase* pLayout);
176 virtual CGUILayoutBase* GetAt(int32_t i32Index);
177 virtual BOOL OnInitDialog() override;
178 virtual
bool SetFocusWnd(CGUIGridLayout* pLayout, int32_t i32Row, int32_t i32Col);
179 virtual
bool SetFocusWnd(CGUIBoxLayout* pLayout, int32_t i32Idx);
182 virtual INT_PTR DoModal()override;
185 virtual
void InitDefaults();
186 virtual
void InternalSetWindowPosMinimized();
189 virtual BOOL PreTranslateMessage(MSG* pMsg);
191 virtual
void OnCancel();
192 virtual
void OnYes();
194 virtual
void DrawBorder(CDC* pDC);
195 virtual
void DrawCloseButton(CDC* pDC);
196 virtual
void DrawMinButton(CDC* pDC);
197 virtual
void DrawTitleRect(CDC* pDC);
199 virtual BOOL OnNotify(WPARAM wParam, LPARAM lParam, LRESULT* pResult);
200 virtual
bool CreateButton();
201 virtual
bool AdjustLayoutButton(int32_t i32BtnW, int32_t i32BtnH, int32_t i32BtnMargin, int32_t i32BtnSpace, int32_t i32BtnTop);
202 virtual BOOL HitTestGrip(MSG* pMsg);
204 DeclareGetClassType();
209 int32_t m_i32MinWidth;
210 int32_t m_i32MinHeight;
214 int32_t m_i32WndowWidthUserDefined;
215 int32_t m_i32WndowHeightUserDefined;
216 int32_t m_i32ContentsW;
217 int32_t m_i32ContentsH;
218 int32_t m_i32MarginL;
219 int32_t m_i32MarginT;
220 int32_t m_i32MarginR;
221 int32_t m_i32MarginB;
225 int32_t m_i32WndCtrlCnt;
229 int32_t m_i32TitleHeight;
230 bool m_bShowWindowOnAdjustLayout;
233 CInternalDialog* m_pInternal;
245 bool m_bLockWindowUpdate;
249 CRect m_rcMinimizeBtn;
253 int32_t m_i32IntervalSpacing;
254 int32_t m_i32HoveringBtn;
255 int32_t m_i32HoveringBtnBf;
256 COLORREF m_clrBorder;
257 COLORREF m_clrBorderActive;
258 COLORREF m_clrClientFill;
259 std::vector<CGUILayoutBase*>& m_vctLayout;
260 std::vector<CGUIDialogLayoutElement*>& m_vctInputWnd;
264 Base::CFLString<
wchar_t> m_strTitle;
266 Base::CFLString<
wchar_t> m_strOkBtnName;
267 Base::CFLString<
wchar_t> m_strCancelBtnName;
268 Base::CFLString<
wchar_t> m_strYesBtnName;
269 Base::CFLString<
wchar_t> m_strNoBtnName;
271 CGUIScrollWnd* m_pScrollWnd;
277 CGUIDialogLayoutElement* m_pWndCtrlOK;
278 CGUIDialogLayoutElement* m_pWndCtrlCancel;
279 CGUIDialogLayoutElement* m_pWndCtrlYes;
280 CGUIDialogLayoutElement* m_pWndCtrlNo;
281 CGUIPaneDialog* m_pParentPaneDialog;
284 bool m_bEnableScroll;
285 bool m_bScrollWndIncludeButtons;
287 bool m_bCenterWindowDone;
289 bool m_bShowCaptionMinBtn;
290 bool m_bShowCaptionCloseBtn;
292 bool m_bShowCancelBtn;
296 bool m_bEnableCancelBtn;
297 bool m_bEnableYesBtn;
301 bool m_bAlreadyInsideProcedure;
304 int32_t m_i32MinimizeWidth;
307 CGUILayoutBase* m_pFocusLayout;
309 int32_t m_i32FocusIdx;
310 int32_t m_i32FocusIdxRow;
311 int32_t m_i32FocusIdxCol;
313 CWndCtrlProcedure* m_pProcedureOfCloseButtonOnCaption;
314 bool m_bProcedureOfCloseButtonOnCaptionAutoDestroy;
315 int32_t m_i32CloseButtonOnCaptionClickCount;
318 afx_msg BOOL OnEraseBkgnd(CDC* pDC);
319 afx_msg
void OnPaint();
320 afx_msg
void OnNcPaint();
321 afx_msg
void OnMouseMove(UINT nFlags, CPoint point);
322 afx_msg
void OnLButtonDown(UINT nFlags, CPoint point);
323 afx_msg
void OnLButtonUp(UINT nFlags, CPoint point);
324 afx_msg
void OnSetFocus(CWnd* pOldWnd);
325 afx_msg
void OnKillFocus(CWnd* pNewWnd);
326 afx_msg BOOL OnSetCursor(CWnd* pWnd, UINT nHitTest, UINT message);
327 afx_msg
void OnDestroy();
328 afx_msg HBRUSH OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor);
329 afx_msg
void OnSize(UINT nType,
int cx,
int cy);
330 afx_msg BOOL OnNcActivate(BOOL bActive);
331 afx_msg
void OnMouseLeave();
332 afx_msg
void OnNcMouseMove(UINT nHitTest, CPoint point);
333 afx_msg
void OnNcMouseLeave();
334 virtual
void PreSubclassWindow();
335 afx_msg
void OnSysCommand(UINT nID, LPARAM lParam);
Template type 의 문자열 클래스
Definition FLString.h:34
콤보박스 클래스
Definition GUIComboBox.h:29
virtual void OnReceiveBroadcast(const Base::CBroadcastMessage *pMessage) override
Callback 함수. BroadcastMessage를 수신받는 함수
CGUIDialog(CWnd *pParent=nullptr)
기본 생성자
문자열 편집 창 클래스
Definition GUIEditCtrl.h:30
저장할 데이터가 매우 많은 경우의 리스트 컨트롤 클래스
Definition GUIListCtrlMassive.h:39
Definition AESCryptography.h:18
Definition D2DObject.h:12
EOrientation
방향
Definition DefinitionsGUI.h:9247
ELayout
다이얼로그의 레이아웃
Definition GUIDialog.h:45
@ BoxLayout
박스 레이아웃
Definition GUIDialog.h:61
@ GridLayout
격자 레이아웃
Definition GUIDialog.h:52