www.pudn.com > pngButton(GDI+).rar > PngButton.h
/***************************************************************************************
PngButton
by:breakind
用途:使用PNG来作为按钮图片
使用方法:将按键四种状态的图片设置进来就OK了
注意:使用GDI+完成,所以需要GDIPLUS的支持
****************************************************************************************/
#pragma once
// PngButton.h
class PngButton : public CButton
{
DECLARE_DYNAMIC(PngButton)
public:
enum BUTTON_STATE
{
BUTTON_ENABLE = 0,
BUTTON_HOVER = 1,
BUTTON_CLICK = 2,
BUTTON_DISABLE= 3
}; //按钮状态
PngButton();
virtual ~PngButton();
protected:
afx_msg LRESULT OnMouseLeave(WPARAM wparam, LPARAM lparam);
afx_msg LRESULT OnMouseHover(WPARAM wparam, LPARAM lparam);
DECLARE_MESSAGE_MAP()
public:
virtual void DrawItem(LPDRAWITEMSTRUCT lpDrawItemStruct);
void SetButtonImage(WCHAR* str);
afx_msg void OnMouseMove(UINT nFlags, CPoint point);
afx_msg void OnLButtonDown(UINT nFlags, CPoint point);
afx_msg void OnLButtonUp(UINT nFlags, CPoint point);
BOOL m_bDisable; // 按钮是否禁用
BOOL m_bCursorOnButton; // 鼠标是否在按钮上
BOOL m_bPress; // 按钮是否被按下
int m_nWidth; //图片宽
int m_nHeight; //图片高
int m_nSliceWidth; //每一块图片的宽
Bitmap *m_btnImage; //按钮图片
CRect m_rectButton; //按钮区域
protected:
virtual LRESULT DefWindowProc(UINT message, WPARAM wParam, LPARAM lParam);
public:
afx_msg BOOL OnEraseBkgnd(CDC* pDC);
};