113 lines
2.7 KiB
C++
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_
|