mirror of https://github.com/lianthony/NT4.0
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.
109 lines
2.3 KiB
109 lines
2.3 KiB
#ifndef __BUTTON_H
|
|
#define __BUTTON_H
|
|
|
|
#include "windowsx.h"
|
|
|
|
class CButton
|
|
{
|
|
// Constructors/Destructors
|
|
public:
|
|
CButton();
|
|
virtual ~CButton();
|
|
|
|
// Interface
|
|
public:
|
|
virtual BOOL Create(HWND hParent, HINSTANCE hInst, LPCTSTR lpszCaption, int nID);
|
|
int GetCheckedRadioButton(int nIDFirstButton, int nIDLastButton);
|
|
operator HWND() {return m_hButton;}
|
|
|
|
// Overridables
|
|
public:
|
|
virtual void DrawItem(LPDRAWITEMSTRUCT lpDrawItemStruct);
|
|
virtual BOOL OnCommand(WPARAM wParam, LPARAM lParam);
|
|
virtual void OnClick();
|
|
virtual void OnSetFocus();
|
|
virtual void OnKillFocus();
|
|
|
|
inline int GetState() const;
|
|
inline void SetState(BOOL bState);
|
|
inline int GetCheck() const;
|
|
inline void SetCheck(int nCheck);
|
|
inline int GetButtonSytle();
|
|
inline void SetButtonSytle(int nStyle, BOOL bRedraw = TRUE);
|
|
inline void Enable(BOOL bState);
|
|
|
|
// Attributes
|
|
protected:
|
|
HWND m_hButton;
|
|
HWND m_hParent;
|
|
HINSTANCE m_hInstance;
|
|
};
|
|
|
|
int CButton::GetState() const
|
|
{
|
|
ASSERT(::IsWindow(m_hButton));
|
|
return Button_GetState(m_hButton);
|
|
}
|
|
|
|
void CButton::SetState(BOOL bState)
|
|
{
|
|
ASSERT(::IsWindow(m_hButton));
|
|
Button_SetState(m_hButton, bState);
|
|
}
|
|
|
|
int CButton::GetCheck() const
|
|
{
|
|
ASSERT(::IsWindow(m_hButton));
|
|
return Button_GetCheck(m_hButton);
|
|
}
|
|
|
|
void CButton::SetCheck(int nCheck)
|
|
{
|
|
ASSERT(::IsWindow(m_hButton));
|
|
Button_SetCheck(m_hButton, nCheck);
|
|
}
|
|
|
|
void CButton::Enable(BOOL bState)
|
|
{
|
|
ASSERT(::IsWindow(m_hButton));
|
|
::EnableWindow(m_hButton, bState);
|
|
}
|
|
|
|
int CButton::GetButtonSytle()
|
|
{
|
|
ASSERT(::IsWindow(m_hButton));
|
|
return (int)GetWindowLong(m_hButton, GWL_STYLE) & 0xff;
|
|
}
|
|
|
|
void CButton::SetButtonSytle(int nStyle, BOOL bRedraw)
|
|
{
|
|
ASSERT(::IsWindow(m_hButton));
|
|
Button_SetStyle(m_hButton, nStyle, bRedraw);
|
|
}
|
|
|
|
|
|
class CBitmapButton : public CButton
|
|
{
|
|
public:
|
|
// Constructor/Destructor
|
|
CBitmapButton();
|
|
~CBitmapButton();
|
|
|
|
// Interface
|
|
public:
|
|
virtual void DrawItem(LPDRAWITEMSTRUCT lpDrawItemStruct);
|
|
|
|
BOOL LoadBitmaps(UINT nIDBitmapResource, UINT nIDBitmapResourceSel=0,
|
|
UINT nIDBitmapResourceFocus=0, UINT nIDBitmapResourceDisabled=0);
|
|
|
|
void SizeToContent();
|
|
|
|
protected:
|
|
HBITMAP m_hNormal;
|
|
HBITMAP m_hSelected;
|
|
HBITMAP m_hFocus;
|
|
HBITMAP m_hDisabled;
|
|
|
|
};
|
|
|
|
#endif
|