2025-11-28 00:35:46 +09:00

87 lines
2.8 KiB
C++

//////////////////////////////////////////////////////////////////////////
// Button.cpp: Button control class.
//
// THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF
// ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO
// THE IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A
// PARTICULAR PURPOSE.
//
// Copyright (c) Microsoft Corporation. All rights reserved.
//
//////////////////////////////////////////////////////////////////////////
//-----------------------------------------------------------------------------
// File: Button.cpp
// Desc: Button control classes
//
// Copyright (C) Microsoft Corporation. All rights reserved.
//-----------------------------------------------------------------------------
#include "wincontrol.h"
#include "button.h"
/****************************** Button class ****************************/
//-----------------------------------------------------------------------------
// Name: CreateText
// Description: Creates a simple text button
//
// hParent: Parent window
// szCaption: Text on the button
// nID: Command ID.
// rcBound: Bounding rectangle.
//-----------------------------------------------------------------------------
HRESULT Button::CreateText(HWND hParent, const TCHAR *szCaption, int nID,
const Rect& rcBound)
{
CREATESTRUCT create;
ZeroMemory(&create, sizeof(CREATESTRUCT));
create.x = rcBound.left;
create.y = rcBound.top;
create.cx = rcBound.right - create.x;
create.cy = rcBound.bottom - create.y;
create.hwndParent = hParent;
create.lpszName = szCaption;
create.hMenu = (HMENU)(INT_PTR)nID;
create.lpszClass = TEXT("BUTTON");
create.style = BS_PUSHBUTTON | BS_FLAT;
return Control::Create(create);
}
//-----------------------------------------------------------------------------
// Name: CreateBitmap
// Description: Creates a simple bitmap button
//
// hParent: Parent window
// nImgID: Resource ID of the bitmap
// nID: Command ID.
// rcBound: Bounding rectangle.
//-----------------------------------------------------------------------------
HRESULT Button::CreateBitmap(HWND hParent, int nImgID, int nID, const Rect& rcSize)
{
HRESULT hr = CreateText(hParent, NULL, nID, rcSize);
if (SUCCEEDED(hr))
{
SetImage((WORD)nImgID);
}
return hr;
}
//-----------------------------------------------------------------------------
// Name: SetImage
// Description: Set a bitmap for the button
//
// nImgID: Resource ID of the bitmap
//-----------------------------------------------------------------------------
BOOL Button::SetImage(WORD nImgId)
{
AddStyle(BS_BITMAP);
HBITMAP hBitmap = SetBitmapImg(GetInstance(), nImgId, m_hwnd);
return (hBitmap ? TRUE : FALSE);
}