windows-nt/Source/XPSP1/NT/base/fs/utils/dfrg/esbutton.cpp
2020-09-26 16:20:57 +08:00

258 lines
5 KiB
C++

/*****************************************************************************************************************
FILENAME: ESButton.cpp
COPYRIGHT© 2001 Microsoft Corporation and Executive Software International, Inc.
CLASS: ESButton
This is a class to create a button window.
*/
#include "stdafx.h"
#ifndef SNAPIN
#include <windows.h>
#endif
#include "errmacro.h"
#include "ESButton.h"
/*****************************************************************************************************************
COPYRIGHT© 2001 Microsoft Corporation and Executive Software International, Inc.
METHOD DESCRIPTION:
Constructor - Initializes class variables.
CLASS VARIABLES:
INPUT + OUTPUT:
RETURN:
None.
*/
ESButton::ESButton(HWND hwndParent, UINT ButtonId, HINSTANCE hInstance)
{
m_hwndButton = CreateWindow(
TEXT("Button"),
TEXT("TEST"),
WS_CHILD|BS_PUSHBUTTON,
400,
400,
100,
100,
hwndParent,
(HMENU)IntToPtr(ButtonId),
hInstance,
(LPVOID)IntToPtr(NULL));
if (m_hwndButton == NULL){
DWORD dwErrorCode = GetLastError();
}
}
/*****************************************************************************************************************
COPYRIGHT© 2001 Microsoft Corporation and Executive Software International, Inc.
METHOD DESCRIPTION:
Destroys the button window
CLASS VARIABLES:
INPUT + OUTPUT:
RETURN:
None.
*/
ESButton::~ESButton()
{
if (m_hwndButton != NULL){
if (IsWindow(m_hwndButton)){
DestroyWindow(m_hwndButton);
}
}
}
BOOL
ESButton::ShowButton(int cmdShow)
{
if (m_hwndButton != NULL){
return ::ShowWindow(m_hwndButton, cmdShow);
}
return FALSE;
}
/*****************************************************************************************************************
COPYRIGHT© 2001 Microsoft Corporation and Executive Software International, Inc.
METHOD DESCRIPTION:
Initializes class variables.
CLASS VARIABLES:
INPUT + OUTPUT:
RETURN:
None.
*/
BOOL ESButton::PositionButton(RECT* prcPos)
{
if (m_hwndButton != NULL){
MoveWindow(m_hwndButton,
prcPos->left,
prcPos->top,
prcPos->right - prcPos->left,
prcPos->bottom - prcPos->top,
FALSE);
}
return TRUE;
}
/*****************************************************************************************************************
COPYRIGHT© 2001 Microsoft Corporation and Executive Software International, Inc.
METHOD DESCRIPTION:
Initializes class variables.
CLASS VARIABLES:
INPUT + OUTPUT:
RETURN:
None.
*/
BOOL ESButton::SetText(TCHAR* szNewText)
{
if (m_hwndButton != NULL){
SetWindowText(m_hwndButton, szNewText);
}
return TRUE;
}
/*****************************************************************************************************************
COPYRIGHT© 2001 Microsoft Corporation and Executive Software International, Inc.
METHOD DESCRIPTION:
CLASS VARIABLES:
INPUT + OUTPUT:
RETURN:
None.
*/
BOOL ESButton::LoadString(HINSTANCE hInstance, UINT labelResourceID)
{
if (m_hwndButton != NULL){
TCHAR cText[200];
::LoadString(hInstance, labelResourceID, cText, sizeof(cText)/sizeof(TCHAR));
SetWindowText(m_hwndButton, cText);
}
return TRUE;
}
/*****************************************************************************************************************
COPYRIGHT© 2001 Microsoft Corporation and Executive Software International, Inc.
METHOD DESCRIPTION:
Initializes class variables.
CLASS VARIABLES:
INPUT + OUTPUT:
RETURN:
None.
*/
BOOL ESButton::SetFont(HFONT hNewFont)
{
if (m_hwndButton != NULL){
SendMessage(m_hwndButton, WM_SETFONT, (WPARAM)hNewFont, MAKELPARAM(TRUE, 0));
}
return TRUE;
}
/*****************************************************************************************************************
COPYRIGHT© 2001 Microsoft Corporation and Executive Software International, Inc.
METHOD DESCRIPTION:
Enables or disables the button.
CLASS VARIABLES:
INPUT + OUTPUT:
RETURN:
None.
*/
BOOL ESButton::EnableButton(BOOL bEnable)
{
if (m_hwndButton != NULL){
if (bEnable != ::IsWindowEnabled(m_hwndButton)){
EnableWindow(m_hwndButton, bEnable); // this repaints the button
}
}
return TRUE;
}
/*****************************************************************************************************************
COPYRIGHT© 2001 Microsoft Corporation and Executive Software International, Inc.
METHOD DESCRIPTION:
returns the state of the button
CLASS VARIABLES:
INPUT + OUTPUT:
RETURN:
Button State, true or false
*/
BOOL ESButton::IsButtonEnabled(void)
{
if (m_hwndButton != NULL)
return ::IsWindowEnabled(m_hwndButton);
else
return FALSE;
}
/*****************************************************************************************************************
COPYRIGHT© 2001 Microsoft Corporation and Executive Software International, Inc.
METHOD DESCRIPTION:
Enables or disables the button.
CLASS VARIABLES:
INPUT + OUTPUT:
RETURN:
None.
*/
BOOL ESButton::ShowWindow(UINT showState)
{
if (m_hwndButton != NULL){
::ShowWindow(m_hwndButton, showState); // this repaints the button
}
return TRUE;
}