#if !defined(AFX_CDXCDYNAMICPROPSHEET_H__82427297_6456_11D3_802D_000000000000__INCLUDED_)
#define AFX_CDXCDYNAMICPROPSHEET_H__82427297_6456_11D3_802D_000000000000__INCLUDED_
#if _MSC_VER >= 1000
#pragma once
#endif // _MSC_VER >= 1000
// cdxCDynamicPropSheet.h : header file
//
#include "cdxCDynamicWndEx.h"
#pragma warning(disable: 4100)
class cdxCDynamicPropPage;
/*
* cdxCDynamicPropSheet
* ====================
* Dynamic property sheet.
*/
class cdxCDynamicPropSheet : public CPropertySheet, public cdxCDynamicWndEx
{
DECLARE_DYNCREATE(cdxCDynamicPropSheet);
enum { flDefault = flAntiFlicker|flSizeIcon|flSWPCopyBits };
friend class cdxCDynamicPropPage;
private:
Position m_PagePos;
bool m_bHasPos;
public:
cdxCDynamicPropSheet(Freedom fd = fdAll, UINT nFlags = flDefault);
cdxCDynamicPropSheet(UINT nIDCaption, CWnd* pParentWnd = NULL, UINT iSelectPage = 0, Freedom fd = fdAll, UINT nFlags = flDefault);
cdxCDynamicPropSheet(LPCTSTR pszCaption, CWnd* pParentWnd = NULL, UINT iSelectPage = 0, Freedom fd = fdAll, UINT nFlags = flDefault);
cdxCDynamicPropSheet(UINT sheetAutoPosID, UINT nIDCaption, CWnd* pParentWnd = NULL, UINT iSelectPage = 0, Freedom fd = fdAll, UINT nFlags = flDefault);
cdxCDynamicPropSheet(UINT sheetAutoPosID, LPCTSTR pszCaption, CWnd* pParentWnd = NULL, UINT iSelectPage = 0, Freedom fd = fdAll, UINT nFlags = flDefault);
cdxCDynamicPropSheet(LPCTSTR lpszSheetAutoPosID, UINT nIDCaption, CWnd* pParentWnd = NULL, UINT iSelectPage = 0, Freedom fd = fdAll, UINT nFlags = flDefault);
cdxCDynamicPropSheet(LPCTSTR lpszSheetAutoPosID, LPCTSTR pszCaption, CWnd* pParentWnd = NULL, UINT iSelectPage = 0, Freedom fd = fdAll, UINT nFlags = flDefault);
virtual ~cdxCDynamicPropSheet() { DoOnDestroy(); }
// ops
public:
virtual void AddPage( cdxCDynamicPropPage & rPage );
virtual void RemovePage( cdxCDynamicPropPage & rPage );
void AddPage( cdxCDynamicPropPage *pPage ) { ASSERT(pPage != NULL); AddPage(*pPage); }
void RemovePage( cdxCDynamicPropPage *pPage ) { ASSERT(pPage != NULL); RemovePage(*pPage); }
void RemovePage( int nPage );
BOOL IsWizard() const { return (m_psh.dwFlags & PSH_WIZARD) != 0; }
// events
protected:
virtual void OnInitPage(cdxCDynamicPropPage & rPage);
virtual void OnSetActive(cdxCDynamicPropPage & rPage, BOOL bStatus) { if(IsWindow() && IsWizard()) Layout(); }
virtual void OnKillActive(cdxCDynamicPropPage & rPage, BOOL bStatus) {}
// Overrides
// ClassWizard generated virtual function overrides
//{{AFX_VIRTUAL(cdxCDynamicPropSheet)
public:
virtual BOOL DestroyWindow();
//}}AFX_VIRTUAL
// Implementation
public:
// Generated message map functions
protected:
//{{AFX_MSG(cdxCDynamicPropSheet)
virtual BOOL OnInitDialog();
afx_msg void OnClose();
afx_msg void OnDestroy();
afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct);
afx_msg void OnSize(UINT nType, int cx, int cy);
afx_msg void OnSizing(UINT fwSide, LPRECT pRect);
afx_msg void OnTimer(UINT nIDEvent);
afx_msg void OnGetMinMaxInfo(MINMAXINFO FAR* lpMMI);
//}}AFX_MSG
DECLARE_MESSAGE_MAP();
DECLARE_DYNAMIC_MAP();
};
/*
* cdxCDynamicPropPage
* ===================
* The page for our sheet.
*/
class cdxCDynamicPropPage : public CPropertyPage, public cdxCDynamicWnd
{
DECLARE_DYNCREATE(cdxCDynamicPropPage)
friend class cdxCDynamicPropSheet;
enum { flDefault = flAntiFlicker };
private:
cdxCDynamicPropSheet *m_pSheet;
bool m_bFirstHit;
public:
cdxCDynamicPropPage() : cdxCDynamicWnd(fdAll,flDefault), m_pSheet(NULL), m_bFirstHit(false) {}
cdxCDynamicPropPage(UINT nID, UINT nIDCaption = 0) : CPropertyPage(nID,nIDCaption), cdxCDynamicWnd(fdAll,flDefault), m_pSheet(NULL), m_bFirstHit(false) {}
cdxCDynamicPropPage(LPCTSTR lpszID, UINT nIDCaption = 0) : CPropertyPage(lpszID,nIDCaption), cdxCDynamicWnd(fdAll,flDefault), m_pSheet(NULL), m_bFirstHit(false) {}
virtual ~cdxCDynamicPropPage() { DoOnDestroy(); }
cdxCDynamicPropSheet *GetSheet() const { return m_pSheet; }
// Dialog Data
//{{AFX_DATA(cdxCDynamicPropPage)
// NOTE - ClassWizard will add data members here.
// DO NOT EDIT what you see in these blocks of generated code !
//}}AFX_DATA
// Overrides
// ClassWizard generate virtual function overrides
//{{AFX_VIRTUAL(cdxCDynamicPropPage)
public:
virtual BOOL OnSetActive();
virtual BOOL OnKillActive();
protected:
virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support
//}}AFX_VIRTUAL
// Implementation
protected:
// Generated message map functions
//{{AFX_MSG(cdxCDynamicPropPage)
afx_msg void OnSize(UINT nType, int cx, int cy);
afx_msg void OnTimer(UINT nIDEvent);
virtual BOOL OnInitDialog();
afx_msg void OnDestroy();
afx_msg void OnSizing(UINT fwSide, LPRECT pRect);
afx_msg void OnGetMinMaxInfo(MINMAXINFO FAR* lpMMI);
afx_msg void OnParentNotify(UINT message, LPARAM lParam);
//}}AFX_MSG
DECLARE_MESSAGE_MAP()
};
//////////////////////////////////////////////////////////////////////
// inlines
//////////////////////////////////////////////////////////////////////
inline cdxCDynamicPropSheet::cdxCDynamicPropSheet(Freedom fd, UINT nFlags)
: cdxCDynamicWndEx(fd,nFlags),
m_bHasPos(false)
{
}
inline cdxCDynamicPropSheet::cdxCDynamicPropSheet(UINT nIDCaption, CWnd* pParentWnd, UINT iSelectPage, Freedom fd, UINT nFlags)
: CPropertySheet(nIDCaption,pParentWnd,iSelectPage),
cdxCDynamicWndEx(fd,nFlags),
m_bHasPos(false)
{
}
inline cdxCDynamicPropSheet::cdxCDynamicPropSheet(LPCTSTR pszCaption, CWnd* pParentWnd, UINT iSelectPage, Freedom fd, UINT nFlags)
: CPropertySheet(pszCaption,pParentWnd,iSelectPage),
cdxCDynamicWndEx(fd,nFlags),
m_bHasPos(false)
{
}
inline cdxCDynamicPropSheet::cdxCDynamicPropSheet(UINT sheetAutoPosID, UINT nIDCaption, CWnd* pParentWnd, UINT iSelectPage, Freedom fd, UINT nFlags)
: CPropertySheet(nIDCaption,pParentWnd,iSelectPage),
cdxCDynamicWndEx(fd,nFlags),
m_bHasPos(false)
{
if(sheetAutoPosID)
ActivateAutoPos(sheetAutoPosID);
}
inline cdxCDynamicPropSheet::cdxCDynamicPropSheet(UINT sheetAutoPosID, LPCTSTR pszCaption, CWnd* pParentWnd, UINT iSelectPage, Freedom fd, UINT nFlags)
: CPropertySheet(pszCaption,pParentWnd,iSelectPage),
cdxCDynamicWndEx(fd,nFlags),
m_bHasPos(false)
{
if(sheetAutoPosID)
ActivateAutoPos(sheetAutoPosID);
}
inline cdxCDynamicPropSheet::cdxCDynamicPropSheet(LPCTSTR lpszSheetAutoPosID, UINT nIDCaption, CWnd* pParentWnd, UINT iSelectPage, Freedom fd, UINT nFlags)
: CPropertySheet(nIDCaption,pParentWnd,iSelectPage),
cdxCDynamicWndEx(fd,nFlags),
m_bHasPos(false)
{
if(lpszSheetAutoPosID && *lpszSheetAutoPosID)
ActivateAutoPos(lpszSheetAutoPosID);
}
inline cdxCDynamicPropSheet::cdxCDynamicPropSheet(LPCTSTR lpszSheetAutoPosID, LPCTSTR pszCaption, CWnd* pParentWnd, UINT iSelectPage, Freedom fd, UINT nFlags)
: CPropertySheet(pszCaption,pParentWnd,iSelectPage),
cdxCDynamicWndEx(fd,nFlags),
m_bHasPos(false)
{
if(lpszSheetAutoPosID && *lpszSheetAutoPosID)
ActivateAutoPos(lpszSheetAutoPosID);
}
#pragma warning(default: 4100)
//{{AFX_INSERT_LOCATION}}
// Microsoft Developer Studio will insert additional declarations immediately before the previous line.
#endif // !defined(AFX_CDXCDYNAMICPROPSHEET_H__82427297_6456_11D3_802D_000000000000__INCLUDED_)
syntax highlighted by Code2HTML, v. 0.9.1