Source code of Windows XP (NT5)
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
/////////////////////////////////////////////////////////////////////////////
//
// 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_
|