264 lines
3.8 KiB
C++
264 lines
3.8 KiB
C++
//+--------------------------------------------------------------------------
|
|
//
|
|
// 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_
|
|
|