www.pudn.com > LED.rar > cdxCDynamicDialog.h


#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_)