// XPButton.h
/* usage:
1、
private:
CXPButton m_cXPButton_IDC_BUTTON1;
2、
void CXXXDlg::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
DDX_Control(pDX, IDC_BUTTON1, m_cXPButton_IDC_BUTTON1);
}
*/
#pragma once
#include <afxwin.h>
class CXPButton : public CButton
{
public:
CXPButton();
virtual ~CXPButton();
public:
// CWnd
virtual void PreSubclassWindow();
// CButton
virtual void DrawItem(LPDRAWITEMSTRUCT lpDrawItemStruct);
protected:
afx_msg void OnMouseMove(UINT nFlags, CPoint point);
afx_msg LRESULT OnMouseLeave(WPARAM wParam, LPARAM lParam);
afx_msg LRESULT OnMouseHover(WPARAM wParam, LPARAM lParam);
DECLARE_MESSAGE_MAP()
protected:
CPen m_BoundryPen;
CPen m_InsideBoundryPenLeft;
CPen m_InsideBoundryPenRight;
CPen m_InsideBoundryPenTop;
CPen m_InsideBoundryPenBottom;
CPen m_InsideBoundryPenLeftSel;
CPen m_InsideBoundryPenRightSel;
CPen m_InsideBoundryPenTopSel;
CPen m_InsideBoundryPenBottomSel;
BOOL m_bOver;
BOOL m_bTracking;
BOOL m_bSelected;
BOOL m_bFocus;
protected:
void DrawInsideBorder(CDC* pDC, CRect* rect);
void DrawText(CDC* pDC, const CRect& rect, UINT state, LPCSTR strText);
};
// XPButton.cpp
#include "stdafx.h"
#include "XPButton.h