windows-nt/Source/XPSP1/NT/base/cluster/admin/common/dlgitemutils.h
2020-09-26 16:20:57 +08:00

113 lines
2.7 KiB
C++

/////////////////////////////////////////////////////////////////////////////
//
// Copyright (c) 1996-1998 Microsoft Corporation
//
// Module Name:
// DlgItemUtils.h
//
// Abstract:
// Definition of the CDlgItemUtils class.
//
// Author:
// David Potter (davidp) February 10, 1998
//
// Revision History:
//
// Notes:
//
/////////////////////////////////////////////////////////////////////////////
#ifndef __DLGITEMUTILS_H_
#define __DLGITEMUTILS_H_
/////////////////////////////////////////////////////////////////////////////
// Forward Class Declarations
/////////////////////////////////////////////////////////////////////////////
class CDlgItemUtils;
/////////////////////////////////////////////////////////////////////////////
// External Class Declarations
/////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////
// Include Files
/////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////
// Type Definitions
/////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////
//
// class CDlgItemUtils
//
// Purpose:
// Utilities for manipulating dialog items.
//
// Inheritance:
// CDlgItemUtils
//
/////////////////////////////////////////////////////////////////////////////
class CDlgItemUtils
{
public:
//
// Construction
//
public:
//
// CDlgItemUtils public methods.
//
// Set a control to be read-only
static BOOL SetDlgItemReadOnly( HWND hwndCtrl )
{
ATLASSERT( hwndCtrl != NULL );
ATLASSERT( IsWindow( hwndCtrl ) );
TCHAR szWindowClass[256];
//
// Get the class of the control
//
::GetClassName( hwndCtrl, szWindowClass, (sizeof(szWindowClass) / sizeof(TCHAR)) - 1 );
//
// If it is an edit control or an IP Address control we can handle it.
//
if ( lstrcmp( szWindowClass, _T("Edit") ) == 0 )
{
return ::SendMessage( hwndCtrl, EM_SETREADONLY, TRUE, 0 );
} // if: edit control
if ( lstrcmp( szWindowClass, WC_IPADDRESS ) == 0 )
{
return ::EnumChildWindows( hwndCtrl, s_SetEditReadOnly, NULL );
} // if: IP Address control
//
// If we didn't handle it, it is an error.
//
return FALSE;
} //*** SetDlgItemReadOnly()
// Implementation
protected:
// Static method to set an edit control read only as a callback
static BOOL CALLBACK s_SetEditReadOnly( HWND hwnd, LPARAM lParam )
{
return ::SendMessage( hwnd, EM_SETREADONLY, TRUE, 0 );
} //*** s_SetEditReadOnly()
}; //*** class CDlgItemUtils
/////////////////////////////////////////////////////////////////////////////
#endif // __DLGITEMUTILS_H_