|
#if !defined(__NGDialog_H__)
#define __NGDialog_H__
/************************************************************************
*
* Extended dialog classes
*
* Written by Anna Metcalfe (code@annasplace.me.uk)
*
************************************************************************
*
* Filename : NGDialog.h
*
* Compiler : Microsoft Visual C++ 6.0, Service Pack 3 or later
* Microsoft Visual C++.NET
*
* Target
* Environment : Win98/Me/NT/2000/XP
*
* NOTE:
*
* Your are free to use this code in your own products, PROVIDED
* this notice is not removed or modified.
*
************************************************************************/
#if _MSC_VER >= 1000
#pragma once
#endif // _MSC_VER >= 1000
// NGDialog.h : header file
//
/////////////////////////////////////////////////////////////////////////////
// Classes declared in this file
class CNGDialog;
class CNGPropertyPage;
class CNGPropertySheet;
/////////////////////////////////////////////////////////////////////////////
// CNGDialog dialog
#define CNGDialog_BASE CDialog
class NGLIB_EXT_CLASS CNGDialog : public CDialog
{
DECLARE_DYNAMIC(CNGDialog);
// Construction
public:
CNGDialog(UINT uID = 0, CWnd* pParentWnd = NULL);
virtual ~CNGDialog(void);
// Attributes
public:
CObject* m_pServer;
CDocument* m_pDoc;
BOOL m_bModified;
CRect m_rectInitialPosition;
CRect m_rectPosition;
// Dialog Data
//{{AFX_DATA(CNGDialog)
//}}AFX_DATA
// Operations
public:
BOOL SetServer(CObject* pServer);
BOOL SetDocument(CDocument* pDocument);
void SetModified(BOOL bChanged = TRUE);
BOOL EnableDlgControl(UINT nID, BOOL bEnable);
BOOL ShowDlgControl(UINT nID, BOOL bShow);
BOOL SetReadOnly(UINT uID, BOOL bReadOnly = TRUE);
BOOL UpdateData(BOOL bSaveAndValidate = TRUE);
protected:
// Overrides
// ClassWizard generate virtual function overrides
//{{AFX_VIRTUAL(CNGDialog)
protected:
virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support
virtual BOOL OnCommand(WPARAM wParam, LPARAM lParam);
virtual void OnOK(void);
virtual BOOL OnInitDialog(void);
//}}AFX_VIRTUAL
public:
virtual void OnInitData(void);
protected:
virtual BOOL OnCtrlValueChanging(UINT uCtrlID, HWND hWnd, int nCode);
// Implementation
protected:
bool m_bLockCtrlUpdates;
void SetInitialPosition(void);
// Generated message map functions
//{{AFX_MSG(CNGDialog)
afx_msg void OnMove(int x, int y);
afx_msg BOOL OnHelpInfo(HELPINFO* pHelpInfo);
afx_msg void OnContextMenu(CWnd* pWnd, CPoint point);
//}}AFX_MSG
DECLARE_MESSAGE_MAP()
};
// CPropertySheetEx and CPropertyPageEx are depreciated in Visual C++ .NET 2002
//
// Thanks to Thorir Sandholt for pointing this out.
//
#if _MFC_VER >= 0x0700
#define CNGPropertyPage_BASE CPropertyPage // Visual C++ .NET 2002
#else
#define CNGPropertyPage_BASE CPropertyPageEx // Visual C++ 6.0
#endif
class NGLIB_EXT_CLASS CNGPropertyPage : public CNGPropertyPage_BASE
{
DECLARE_DYNAMIC(CNGPropertyPage)
// Construction
public:
CNGPropertyPage( UINT uID = 0,
UINT uIDCaption = 0,
UINT uTitleID = 0,
UINT uSubtitleID = 0);
CNGPropertyPage( LPCTSTR pszCaption,
UINT uIDCaption = 0,
UINT uTitleID = 0,
UINT uSubtitleID = 0);
virtual ~CNGPropertyPage(void);
protected:
// Dialog Data
//{{AFX_DATA(CNGPropertyPage)
//}}AFX_DATA
CObject* m_pObject; // obsolete
CObject* m_pServer;
CDocument* m_pDoc;
BOOL m_bModified;
// Operations
public:
BOOL SetObject(CObject* pObject); // obsolete
BOOL SetServer(CObject* pServer);
BOOL SetDocument(CDocument* pDocument);
void SetModified(BOOL bChanged = TRUE);
BOOL EnableDlgControl(UINT nID, BOOL bEnable);
BOOL ShowDlgControl(UINT nID, BOOL bShow);
BOOL SetReadOnly(UINT uID, BOOL bReadOnly = TRUE);
BOOL UpdateData(BOOL bSaveAndValidate = TRUE);
protected:
// Overrides
// ClassWizard generate virtual function overrides
//{{AFX_VIRTUAL(CNGPropertyPage)
protected:
virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support
virtual BOOL OnCommand(WPARAM wParam, LPARAM lParam);
virtual BOOL OnSetActive(void);
virtual BOOL OnKillActive(void);
virtual BOOL OnInitDialog(void);
virtual BOOL OnApply(void);
//}}AFX_VIRTUAL
public:
virtual void OnInitData(void);
protected:
virtual BOOL OnCtrlValueChanging(UINT uCtrlID, HWND hWnd, int nCode);
// Implementation
protected:
bool m_bLockCtrlUpdates;
// Generated message map functions
//{{AFX_MSG(CNGPropertyPage)
//}}AFX_MSG
DECLARE_MESSAGE_MAP()
};
/////////////////////////////////////////////////////////////////////////////
// CNGPropertySheet
// CPropertySheetEx and CPropertyPageEx are depreciated in Visual C++ .NET 2002
//
// Thanks to Thorir Sandholt for pointing this out.
//
#if _MFC_VER >= 0x0700
#define CNGPropertySheet_BASE CPropertySheet // Visual C++ .NET 2002
#else
#define CNGPropertySheet_BASE CPropertySheetEx // Visual C++ 6.0
#endif
class NGLIB_EXT_CLASS CNGPropertySheet : public CNGPropertySheet_BASE
{
DECLARE_DYNAMIC(CNGPropertySheet)
// Construction
public:
CNGPropertySheet(UINT nIDCaption, CWnd* pParentWnd = NULL, UINT iSelectPage = 0);
CNGPropertySheet(LPCTSTR pszCaption, CWnd* pParentWnd = NULL, UINT iSelectPage = 0);
virtual ~CNGPropertySheet(void);
// Attributes
public:
CRect m_rectInitialPosition;
CRect m_rectPosition;
// Operations
public:
BOOL EnableDlgControl(UINT uID, BOOL bEnable);
BOOL ShowDlgControl(UINT uID, BOOL bShow);
BOOL UpdateData(BOOL bSaveAndValidate = TRUE);
// Overrides
// ClassWizard generated virtual function overrides
//{{AFX_VIRTUAL(CNGPropertySheet)
public:
virtual BOOL OnInitDialog(void);
virtual BOOL OnCommand(WPARAM wParam, LPARAM lParam);
//}}AFX_VIRTUAL
virtual void OnSetActive(CPropertyPage* pPage);
virtual void OnKillActive(CPropertyPage* pPage);
// Implementation
protected:
void SetInitialPosition(void);
// Generated message map functions
protected:
//{{AFX_MSG(CNGPropertySheet)
afx_msg void OnMove(int x, int y);
afx_msg BOOL OnHelpInfo(HELPINFO* pHelpInfo);
afx_msg void OnContextMenu(CWnd* pWnd, CPoint point);
//}}AFX_MSG
DECLARE_MESSAGE_MAP()
};
//{{AFX_INSERT_LOCATION}}
// Microsoft Developer Studio will insert additional declarations immediately before the previous line.
#endif // !defined(__NGDialog_H__)
|
By viewing downloads associated with this article you agree to the Terms of Service and the article's licence.
If a file you wish to view isn't highlighted, and is a text file (not binary), please
let us know and we'll add colourisation support for it.
I haven't always written software for a living. When I graduated from Surrey University in 1989, it was with an Electronic Engineering degree, but unfortunately that never really gave me the opportunity to do anything particularly interesting (with the possible exception of designing
Darth Vader's Codpiece * for the UK Army in 1990).
* Also known as the Standard Army Bootswitch. But that's another story...
Since the opportunity arose to lead a software team developing C++ software for
Avionic Test Systems in 1996, I've not looked back. More recently I've been involved in the development of subsea acoustic navigation systems, digital TV broadcast systems, port security/tracking systems, and most recently software development tools with my own company,
Riverblade Ltd.
One of my personal specialities is IDE plug-in development.
ResOrg was my first attempt at a plug-in, but my day to day work is with
Visual Lint, an interactive code analysis tool environment with works within the Visual Studio and Eclipse IDEs or on build servers.
I love lots of things, but particularly music, photography and anything connected with history or engineering. I
despise ignorant, intolerant and obstructive people - and it shows...I can be a bolshy cow if you wind me up the wrong way...
I'm currently based 15 minutes walk from the beach in Bournemouth on the south coast of England. Since I moved here I've grown to love the place - even if it is full of grockles in Summer!