|
|
//+--------------------------------------------------------------------------
//
// 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) const;
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 BOOL _OnSetFocus( HWND hwndLosingFocus); */
virtual void _OnDestroy();
//
// Utility functions
//
HWND _hCtrl( ULONG iddControl) const;
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) const { 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 BOOL CDlg::_OnSetFocus( HWND hwndLosingFocus) { return TRUE; // not processed
} */
inline void CDlg::_OnDestroy() { }
inline INT_PTR CDlg::_OnStaticCtlColor( HDC hdcStatic, HWND hwndStatic) { return FALSE; }
#endif // __DLG_HXX_
|