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;
132 CGUIDialog(UINT nIDTemplate, CWnd* pParent = NULL);
133 CGUIDialog(LPCTSTR lpszTemplateName, CWnd* pParentWnd = NULL);
137 virtual BOOL Create(LPCTSTR lpszTemplateName, CWnd* pParentWnd = NULL)
override;
138 virtual BOOL Create(UINT nIDTemplate, CWnd* pParentWnd = NULL)
override;
139 virtual BOOL CreateIndirect(LPCDLGTEMPLATE lpDialogTemplate, CWnd* pParentWnd = NULL,
void* lpDialogInit = NULL)
override;
140 virtual BOOL CreateIndirect(HGLOBAL hDialogTemplate, CWnd* pParentWnd = NULL)
override;
144 virtual void ShowCaption(
bool bShow =
true);
145 virtual bool IsCaptionVisible()
const;
147 virtual void ShowCloseButtonOnCaption(
bool bShow =
true);
148 virtual bool IsCloseButtonOnCaptionVisible()
const;
149 virtual bool SetCloseButtonOnCaptionCallback(CWndCtrlProcedure* pFunc,
bool bAutoDestroy =
true);
150 virtual CWndCtrlProcedure* GetCloseButtonOnCaptionCallback()
const;
151 virtual int32_t GetCloseButtonOnCaptionClickCount()
const;
152 virtual void SetCloseButtonOnCaptionClickCount(int32_t i32ClickCount);
153 virtual void ClearCloseButtonOnCaptionClickCount();
155 virtual void ShowMinimizeButtonOnCaption(
bool bShow =
false);
156 virtual bool IsMinimizeButtonOnCaptionVisible()
const;
158 virtual void SetMinimizeWidth(int32_t i32Width = 120);
159 virtual int32_t GetMinimizeWidth()
const;
161 virtual void EnableScroll(
bool bEnable,
bool bIncludeButtons =
true);
162 virtual bool IsScrollEnabled()
const;
164 virtual void ShowOkButton(
bool bShow);
165 virtual void ShowCancelButton(
bool bShow);
166 virtual void ShowYesButton(
bool bShow);
167 virtual void ShowNoButton(
bool bShow);
169 virtual void EnableOkButton(
bool bEnable);
170 virtual bool IsOkButtonEnabled()
const;
171 virtual void EnableCancelButton(
bool bEnable);
172 virtual bool IsCancelButtonEnabled()
const;
173 virtual void EnableYesButton(
bool bEnable);
174 virtual bool IsYesButtonEnabled()
const;
175 virtual void EnableNoButton(
bool bEnable);
176 virtual bool IsNoButtonEnabled()
const;
178 virtual void SetMarginLeft(int32_t i32Margin);
179 virtual int32_t GetMarginLeft()
const;
180 virtual void SetMarginTop(int32_t i32Margin);
181 virtual int32_t GetMarginTop()
const;
182 virtual void SetMarginRight(int32_t i32Margin);
183 virtual int32_t GetMarginRight()
const;
184 virtual void SetMarginBottom(int32_t i32Margin);
185 virtual int32_t GetMarginBottom()
const;
187 virtual void SetIntervalSpacing(int32_t i32IntervalSpacing);
188 virtual int32_t GetIntervalSpacing()
const;
190 virtual void SetTitleHeight(int32_t i32Height);
191 virtual int32_t GetTitleHeight()
const;
197 virtual void SetOkButtonCallback(CWndCtrlProcedure* pFunc,
bool bAutoDestroy =
true);
198 virtual void SetCancelButtonCallback(CWndCtrlProcedure* pFunc,
bool bAutoDestroy =
true);
199 virtual void SetYesButtonCallback(CWndCtrlProcedure* pFunc,
bool bAutoDestroy =
true);
200 virtual void SetNoButtonCallback(CWndCtrlProcedure* pFunc,
bool bAutoDestroy =
true);
202 virtual bool AdjustLayout();
206 virtual void UpdateTheme();
207 virtual void SetWindowSize(int32_t i32Width, int32_t i32Height);
210 #ifdef AFX_DESIGN_TIME
213 IDD = IDD_DIALOG_CUSTOM
216 DECLARE_MESSAGE_MAP()
218 virtual
void PostNcDestroy();
219 virtual int32_t Add(CGUILayoutBase* pLayout);
220 virtual CGUILayoutBase* GetAt(int32_t i32Index);
221 virtual BOOL OnInitDialog() override;
222 virtual
bool SetFocusWnd(CGUIGridLayout* pLayout, int32_t i32Row, int32_t i32Col);
223 virtual
bool SetFocusWnd(CGUIBoxLayout* pLayout, int32_t i32Idx);
224 virtual
bool SetFocusWnd(
CGUIDialog::EButton eButtonId);
227 virtual INT_PTR DoModal()override;
230 virtual
void InitDefaults();
231 virtual
void InternalSetWindowPosMinimized();
234 virtual BOOL PreTranslateMessage(MSG* pMsg);
236 virtual
void OnCancel();
237 virtual
void OnYes();
239 virtual
void DrawBorder(CDC* pDC);
240 virtual
void DrawCloseButton(CDC* pDC);
241 virtual
void DrawMinButton(CDC* pDC);
242 virtual
void DrawTitleRect(CDC* pDC);
244 virtual BOOL OnNotify(WPARAM wParam, LPARAM lParam, LRESULT* pResult);
245 virtual
bool CreateButton();
246 virtual
bool AdjustLayoutButton(int32_t i32BtnW, int32_t i32BtnH, int32_t i32BtnMargin, int32_t i32BtnSpace, int32_t i32BtnTop);
247 virtual BOOL HitTestGrip(MSG* pMsg);
249 virtual
bool IsExternalParent();
251 DeclareGetClassType();
256 int32_t m_i32MinWidth;
257 int32_t m_i32MinHeight;
261 int32_t m_i32WndowWidthUserDefined;
262 int32_t m_i32WndowHeightUserDefined;
263 int32_t m_i32ContentsW;
264 int32_t m_i32ContentsH;
265 int32_t m_i32MarginL;
266 int32_t m_i32MarginT;
267 int32_t m_i32MarginR;
268 int32_t m_i32MarginB;
272 int32_t m_i32WndCtrlCnt;
276 int32_t m_i32TitleHeight;
277 bool m_bShowWindowOnAdjustLayout;
280 CInternalDialog* m_pInternal;
292 bool m_bLockWindowUpdate;
296 CRect m_rcMinimizeBtn;
300 int32_t m_i32IntervalSpacing;
301 int32_t m_i32HoveringBtn;
302 int32_t m_i32HoveringBtnBf;
303 COLORREF m_clrBorder;
304 COLORREF m_clrBorderActive;
305 COLORREF m_clrClientFill;
306 std::vector<CGUILayoutBase*>& m_vctLayout;
307 std::vector<CGUIDialogLayoutElement*>& m_vctInputWnd;
311 Base::CFLString<
wchar_t> m_strTitle;
313 Base::CFLString<
wchar_t> m_strOkBtnName;
314 Base::CFLString<
wchar_t> m_strCancelBtnName;
315 Base::CFLString<
wchar_t> m_strYesBtnName;
316 Base::CFLString<
wchar_t> m_strNoBtnName;
318 CGUIScrollWnd* m_pScrollWnd;
324 CGUIDialogLayoutElement* m_pWndCtrlOK;
325 CGUIDialogLayoutElement* m_pWndCtrlCancel;
326 CGUIDialogLayoutElement* m_pWndCtrlYes;
327 CGUIDialogLayoutElement* m_pWndCtrlNo;
328 CGUIPaneDialog* m_pParentPaneDialog;
331 bool m_bEnableScroll;
332 bool m_bScrollWndIncludeButtons;
334 bool m_bCenterWindowDone;
336 bool m_bShowCaptionMinBtn;
337 bool m_bShowCaptionCloseBtn;
339 bool m_bShowCancelBtn;
343 bool m_bEnableCancelBtn;
344 bool m_bEnableYesBtn;
348 bool m_bAlreadyInsideProcedure;
351 int32_t m_i32MinimizeWidth;
354 CGUILayoutBase* m_pFocusLayout;
356 int32_t m_i32FocusIdx;
357 int32_t m_i32FocusIdxRow;
358 int32_t m_i32FocusIdxCol;
360 CWndCtrlProcedure* m_pProcedureOfCloseButtonOnCaption;
361 bool m_bProcedureOfCloseButtonOnCaptionAutoDestroy;
362 int32_t m_i32CloseButtonOnCaptionClickCount;
365 afx_msg BOOL OnEraseBkgnd(CDC* pDC);
366 afx_msg
void OnPaint();
367 afx_msg
void OnNcPaint();
368 afx_msg
void OnMouseMove(UINT nFlags, CPoint point);
369 afx_msg
void OnLButtonDown(UINT nFlags, CPoint point);
370 afx_msg
void OnLButtonUp(UINT nFlags, CPoint point);
371 afx_msg
void OnSetFocus(CWnd* pOldWnd);
372 afx_msg
void OnKillFocus(CWnd* pNewWnd);
373 afx_msg BOOL OnSetCursor(CWnd* pWnd, UINT nHitTest, UINT message);
374 afx_msg
void OnDestroy();
375 afx_msg HBRUSH OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor);
376 afx_msg
void OnSize(UINT nType,
int cx,
int cy);
377 afx_msg BOOL OnNcActivate(BOOL bActive);
378 afx_msg
void OnMouseLeave();
379 afx_msg
void OnNcMouseMove(UINT nHitTest, CPoint point);
380 afx_msg
void OnNcMouseLeave();
381 virtual
void PreSubclassWindow();
382 afx_msg
void OnSysCommand(UINT nID, LPARAM lParam);
383 afx_msg
void OnWindowPosChanging(WINDOWPOS* lpwndpos);
384 afx_msg
void OnDisplayChange(UINT nBitsPerPixel,
int cx,
int cy);
385 afx_msg
void OnShowWindow(BOOL bShow, UINT nStatus);
386 afx_msg
void OnClose();
Template type 의 문자열 클래스
Definition FLString.h:34
콤보박스 클래스
Definition GUIComboBox.h:29
다이얼로그 클래스
Definition GUIDialog.h:72
virtual void OnReceiveBroadcast(const Base::CBroadcastMessage *pMessage) override
Callback 함수. BroadcastMessage를 수신받는 함수
EButton
다이얼로그의 버튼
Definition GUIDialog.h:90
@ EButton_Yes
Yes 버튼
Definition GUIDialog.h:113
@ EButton_Cancel
Cancel 버튼
Definition GUIDialog.h:105
@ EButton_Ok
Ok 버튼
Definition GUIDialog.h:97
@ EButton_No
No 버튼
Definition GUIDialog.h:121
CGUIDialog(CWnd *pParent=nullptr)
기본 생성자
문자열 편집 창 클래스
Definition GUIEditCtrl.h:30
저장할 데이터가 매우 많은 경우의 리스트 컨트롤 클래스
Definition GUIListCtrlMassive.h:39
Definition FLImagingBase/AESCryptography.h:18
Definition D2DObject.h:12
EOrientation
방향
Definition FLImagingGUI/DefinitionsGUI.h:9905
ELayout
다이얼로그의 레이아웃
Definition GUIDialog.h:45
@ BoxLayout
박스 레이아웃
Definition GUIDialog.h:61
@ GridLayout
격자 레이아웃
Definition GUIDialog.h:52