#if !defined(AFX_CDXCDYNAMICDIALOG_H__E8F2A005_63C6_11D3_802B_000000000000__INCLUDED_)
#define AFX_CDXCDYNAMICDIALOG_H__E8F2A005_63C6_11D3_802B_000000000000__INCLUDED_
#if _MSC_VER >= 1000
#pragma once
#endif // _MSC_VER >= 1000
// cdxCDynamicDialog.h : header file
//
#include "cdxCDynamicWndEx.h"
/*
* cdxCDynamicDialog
* =================
* A new resizable dialog.
* This should be the base-class for your normal dialogs.
* This class supports:
* - A sizing icon
* - AutoPositioning (stores last position automatically and stuff)
* - Anti-Flickering system.
* - And of course, it provides
* the Dynamic child control system DcCS by codex design
*/
class cdxCDynamicDialog : public CDialog, public cdxCDynamicWndEx
{
DECLARE_DYNAMIC(cdxCDynamicDialog);
public:
enum { flDefault = flAntiFlicker|flSizeIcon };
public:
cdxCDynamicDialog(UINT idd = 0, CWnd* pParent = NULL, Freedom fd = fdAll, UINT nFlags = flDefault);
cdxCDynamicDialog(LPCTSTR lpszTemplateName, CWnd* pParent = NULL, Freedom fd = fdAll, UINT nFlags = flDefault);
virtual ~cdxCDynamicDialog() { DoOnDestroy(); }
public:
virtual BOOL DestroyWindow();
protected:
virtual BOOL OnInitDialog();
afx_msg void OnGetMinMaxInfo(MINMAXINFO FAR* lpMMI);
afx_msg void OnDestroy();
afx_msg void OnParentNotify(UINT message, LPARAM lParam);
afx_msg void OnSize(UINT nType, int cx, int cy);
afx_msg void OnSizing(UINT fwSide, LPRECT pRect);
afx_msg void OnTimer(UINT nIDEvent);
DECLARE_MESSAGE_MAP();
};
/*
* cdxCDynamicChildDlg
* ===================
* Use this dialog class instead of cdxCDynamicDialog if
* you create dialogs which you want to embedd as child
* controls.
* In that case, this dialog is far more straight forward.
* This class provides:
* - NO sizing icon
* - NO auto anti-flickering (since the dialog itself won't be moved by hand)
* - NO auto-positioning
* - But of course, it provides
* the Dynamic child control system DcCS by codex design
*/
class cdxCDynamicChildDlg : public cdxCDynamicDialog
{
DECLARE_DYNAMIC(cdxCDynamicChildDlg);
public:
enum { flDefault = flAntiFlicker };
public:
cdxCDynamicChildDlg(UINT idd = 0, CWnd* pParent = NULL, Freedom fd = fdAll, UINT nFlags = flDefault);
cdxCDynamicChildDlg(LPCTSTR lpszTemplateName, CWnd* pParent = NULL, Freedom fd = fdAll, UINT nFlags = flDefault);
virtual ~cdxCDynamicChildDlg() { DoOnDestroy(); }
};
/////////////////////////////////////////////////////////////////////////////
// cdxCDynamicDialog Inlines
/////////////////////////////////////////////////////////////////////////////
inline cdxCDynamicDialog::cdxCDynamicDialog(UINT idd, CWnd* pParent, Freedom fd, UINT nFlags)
: CDialog(idd,pParent),
cdxCDynamicWndEx(fd,nFlags)
{
if(idd)
ActivateAutoPos(idd);
}
inline cdxCDynamicDialog::cdxCDynamicDialog(LPCTSTR lpszTemplateName, CWnd* pParent, Freedom fd, UINT nFlags)
: CDialog(lpszTemplateName,pParent),
cdxCDynamicWndEx(fd,nFlags)
{
if(lpszTemplateName && *lpszTemplateName)
ActivateAutoPos(lpszTemplateName);
}
/////////////////////////////////////////////////////////////////////////////
// cdxCDynamicChildDlg Inlines
/////////////////////////////////////////////////////////////////////////////
inline cdxCDynamicChildDlg::cdxCDynamicChildDlg(UINT idd, CWnd* pParent, Freedom fd, UINT nFlags)
: cdxCDynamicDialog(idd,pParent,fd,nFlags)
{
m_bUseScrollPos = true; // if you create scollbars I will use them ;)
NoAutoPos(); // not in this case....
}
inline cdxCDynamicChildDlg::cdxCDynamicChildDlg(LPCTSTR lpszTemplateName, CWnd* pParent, Freedom fd, UINT nFlags)
: cdxCDynamicDialog(lpszTemplateName,pParent,fd,nFlags)
{
m_bUseScrollPos = true; // if you create scollbars I will use them ;)
NoAutoPos(); // not in this case....
}
//{{AFX_INSERT_LOCATION}}
// Microsoft Developer Studio will insert additional declarations immediately before the previous line.
#endif // !defined(AFX_CDXCDYNAMICDIALOG_H__E8F2A005_63C6_11D3_802B_000000000000__INCLUDED_)
syntax highlighted by Code2HTML, v. 0.9.1