按钮有关问题

按钮问题
//求对该派生类的详细注释...刚学看不懂...
class CXPButton : public CButton
{
// Construction
public:
CXPButton();

// Attributes
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;

//按钮的底色,包括有效和无效两种状态
CBrush m_FillActive;
CBrush m_FillInactive;

//按钮的状态
BOOL m_bOver; //鼠标位于按钮之上时该值为true,反之为flase
BOOL m_bTracking; //在鼠标按下没有释放时该值为true
BOOL m_bSelected; //按钮被按下是该值为true
BOOL m_bFocus; //按钮为当前焦点所在时该值为true
BOOL m_bIsDefault;
BOOL m_nTypeStyle;
private:
  LRESULT OnSetStyle(WPARAM wParam, LPARAM lParam);

// Operations
public:

// Overrides
// ClassWizard generated virtual function overrides
//{{AFX_VIRTUAL(CXPButton)

protected:
virtual void PreSubclassWindow();
//}}AFX_VIRTUAL

// Implementation
public:
virtual void DrawItem(LPDRAWITEMSTRUCT lpDrawItemStruct);
virtual void DoGradientFill(CDC *pDC, CRect* rect);
virtual void DrawInsideBorder(CDC *pDC, CRect* rect);
virtual ~CXPButton();

// Generated message map functions
protected:
//{{AFX_MSG(CXPButton)
afx_msg void OnMouseMove(UINT nFlags, CPoint point);
afx_msg LRESULT OnMouseLeave(WPARAM wParam, LPARAM lParam);
afx_msg LRESULT OnMouseHover(WPARAM wParam, LPARAM lParam);
afx_msg BOOL OnEraseBkgnd(CDC* pDC);
afx_msg BOOL OnClicked();
afx_msg UINT OnGetDlgCode();
//}}AFX_MSG

DECLARE_MESSAGE_MAP()
};

------解决方案--------------------
有什么看不懂?无非是些class定义而已
------解决方案--------------------
先看看C++基础
------解决方案--------------------
看看GDI方面的资料
------解决方案--------------------
新手,也不太懂