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); 
};