效果图
新建PngButton类,该类需要GDI+支持。在类里使用BUTTON_STATE定义按钮的几个状态,
enum BUTTON_STATE {
BUTTON_ENABLE = 0,
BUTTON_HOVER = 1,
BUTTON_CLICK = 2,
BUTTON_DISABLE= 3
};
重载了和按钮相关的几个消息
ON_WM_MOUSEMOVE()
ON_MESSAGE(WM_MOUSEHOVER,OnMouseHover)
ON_MESSAGE(WM_MOUSELEAVE,OnMouseLeave)
ON_WM_LBUTTONDOWN()
ON_WM_LBUTTONUP()
ON_WM_ERASEBKGND()
添加SetButtonImage(WCHAR* str)实现函数
void PngButton::SetButtonImage(WCHAR* str)
{
m_btnImage = new Bitmap(str);//创建BITMAP对象
m_nWidth = m_btnImage -> GetWidth();
m_nHeight = m_btnImage -> GetHeight();
m_nSliceWidth = m_nWidth/4; //图片切成四分
CWnd *pWnd = this -> GetParent();
GetWindowRect( &m_rec