서브클래싱 컨트롤에 마우스 Hover/Leave 구현

마우스 Hover, Leave를 구현하고자 하는 서브클래싱된 컨트롤의 헤더 파일에 아래의 두 함수를 추가하도록 한다.

//{{AFX_MSG(CHoverButton)
afx_msg LRESULT OnMouseLeave(WPARAM wparam, LPARAM lparam);
afx_msg void OnMouseHover(WPARAM wparam, LPARAM lparam);
//}}AFX_MSG

다음으로 소스파일의 메시지맵에 메시지에 대한 함수를 연결하도록 한다.

BEGIN_MESSAGE_MAP(CHoverButton, CButton)
    ON_MESSAGE(WM_MOUSELEAVE, OnMouseLeave)
    ON_MESSAGE(WM_MOUSEHOVER, OnMouseHover)
END_MESSAGE_MAP()

다음으로 실제 함수를 구현해주면 된다.

void CHoverButton::OnMouseHover(WPARAM wparam, LPARAM lparam) 
{
     /* TODO: Add your message handler code here and/or call default */ 
}

LRESULT CHoverButton::OnMouseLeave(WPARAM wparam, LPARAM lparam)
{
     xPos = GET_X_LPARAM(lParam);
     yPos = GET_Y_LPARAM(lParam); 
     return 0;
}