마우스 Hover, Leave를 구현하고자 하는 서브클래싱된 컨트롤의 헤더 파일에 아래의 두 함수를 추가하도록 한다.
//{{AFX_MSG(CHoverButton)
afx_msg LRESULT OnMouseLeave(WPARAM wparam, LPARAM lparam);
afx_msg void OnMouseHover(WPARAM wparam, LPARAM lparam);
//}}AFX_MSG
//{{AFX_MSG(CHoverButton)
afx_msg LRESULT OnMouseLeave(WPARAM wparam, LPARAM lparam);
afx_msg void OnMouseHover(WPARAM wparam, LPARAM lparam);
//}}AFX_MSG
//{{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()
BEGIN_MESSAGE_MAP(CHoverButton, CButton)
ON_MESSAGE(WM_MOUSELEAVE, OnMouseLeave)
ON_MESSAGE(WM_MOUSEHOVER, OnMouseHover)
END_MESSAGE_MAP()
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;
}
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;
}
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; }