|
|
//+--------------------------------------------------------------------------
//
// Microsoft Windows
// Copyright (C) Microsoft Corporation, 1994 - 1997.
//
// File: dlg.hxx
//
// Contents: Simple windows modeless dialog wrapper base class.
//
// History: 1-29-1997 DavidMun Created
//
//---------------------------------------------------------------------------
#ifndef __DLG_HXX_
#define __DLG_HXX_
//+--------------------------------------------------------------------------
//
// Class: CDlg (dlg)
//
// Purpose: Abstract base class that invokes a modeless or modal dialog
//
// History: 4-22-1997 DavidMun Created
//
//---------------------------------------------------------------------------
class CDlg { public:
CDlg();
virtual ~CDlg();
static INT_PTR _DlgProc( HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam);
HWND GetHwnd();
protected:
INT_PTR _DoModalDlg( HWND hwndParent, INT idd);
HWND _DoModelessDlg( HWND hwndParent, INT idd);
virtual void _OnHelp( UINT message, WPARAM wParam, LPARAM lParam);
virtual HRESULT _OnInit( bool *pfSetFocus);
virtual bool _OnCommand( WPARAM wParam, LPARAM lParam);
virtual bool _OnMinMaxInfo( LPMINMAXINFO lpmmi);
virtual INT_PTR _OnStaticCtlColor( HDC hdcStatic, HWND hwndStatic);
virtual bool _OnNotify( WPARAM wParam, LPARAM lParam);
virtual bool _OnSize( WPARAM wParam, LPARAM lParam);
virtual void _OnSysColorChange();
virtual bool _OnDrawItem( WPARAM wParam, LPARAM lParam);
virtual void _OnDestroy();
//
// Utility functions
//
HWND _hCtrl( ULONG iddControl);
void _GetChildWindowRect( HWND hwndChild, RECT *prc);
HWND m_hwnd; };
//+--------------------------------------------------------------------------
//
// Member: CDlg::_hCtrl
//
// Synopsis: Return window handle of dialog control [iddControl].
//
// History: 12-14-1996 DavidMun Created
//
//---------------------------------------------------------------------------
inline HWND CDlg::_hCtrl(ULONG iddControl) { HWND hwndControl = GetDlgItem(m_hwnd, iddControl); //ASSERT(IsWindow(hwndControl));
return hwndControl; }
//+--------------------------------------------------------------------------
//
// Member: CDlg::GetHwnd
//
// Synopsis: Return dialog handle, NULL if dialog not opened
//
// History: 09-18-1997 DavidMun Created
//
//---------------------------------------------------------------------------
inline HWND CDlg::GetHwnd() { return m_hwnd; }
//
// Default do-nothing implementations
//
inline void CDlg::_OnHelp( UINT message, WPARAM wParam, LPARAM lParam) { }
inline HRESULT CDlg::_OnInit( bool *pfSetFocus) { return S_OK; }
inline bool CDlg::_OnCommand( WPARAM wParam, LPARAM lParam) { return true; }
inline bool CDlg::_OnMinMaxInfo( LPMINMAXINFO lpmmi) { return true; }
inline bool CDlg::_OnSize( WPARAM wParam, LPARAM lParam) { return true; }
inline bool CDlg::_OnDrawItem( WPARAM wParam, LPARAM lParam) { return false; }
inline bool CDlg::_OnNotify( WPARAM wParam, LPARAM lParam) { return false; }
inline void CDlg::_OnSysColorChange() { }
inline void CDlg::_OnDestroy() { }
inline INT_PTR CDlg::_OnStaticCtlColor( HDC hdcStatic, HWND hwndStatic) { return FALSE; }
#endif // __DLG_HXX_
|