这是独立的按钮类:
class CButtonEx:public CWindowImpl<CButtonEx,CButton>
{
public:
CButtonEx()
{
}
BEGIN_MSG_MAP(CButtonEx)
MESSAGE_HANDLER(WM_RBUTTONDOWN,OnRButtonDown)
MESSAGE_HANDLER(WM_LBUTTONDOWN,OnLButtonDown)
MESSAGE_HANDLER(WM_LBUTTONUP,OnLButtonUp)
MESSAGE_HANDLER(WM_MOUSEMOVE,OnMouseMove)
END_MSG_MAP();
LRESULT OnRButtonDown(UINT u,WPARAM w,LPARAM l,BOOL& bHandled)
{
SetWindowText(L"bbbb");
return 0 ;
}
LRESULT OnLButtonDown(UINT u,WPARAM w,LPARAM l,BOOL& bHandled)
{
SetWindowText(L"OnLButtonDown");
SetCapture();
return 0 ;
}
LRESULT OnLButtonUp(UINT u,WPARAM w,LPARAM l,BOOL& bHandled)
{
SetWindowText(L"OnLButtonUp");
ReleaseCapture();
return 0 ;
}
LRESULT OnMouseMove(UINT u,WPARAM w,LPARAM l,BOOL& bHandled)
{
SetWindowText(L"OnMouseMove");
return 0 ;
}
};
这是界面中的调用 :
CB uttonEx btnok;
btnok.subclasswindow(IDOK);