_TrackMouseEvent()を使ってOnMouseLeave()に飛ぶように設定する。
Cソース
BEGIN_MESSAGE_MAP(CImageButton, CButton)
//{{AFX_MSG_MAP(CImageButton)
…
ON_MESSAGE(WM_MOUSELEAVE, OnMouseLeave)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()void CImageButton::OnMouseMove(UINT nFlags, CPoint point)
{
CRect rect;
GetClientRect(rect);
if(PtInRect(rect, point)){
// マウス監視開始(LEAVEイベント)
TRACKMOUSEEVENT tme;
tme.cbSize = sizeof(tme);
tme.dwFlags = TME_LEAVE;
tme.hwndTrack = this->m_hWnd;
_TrackMouseEvent(&tme);
InvalidateRect(rect); // 描画
}
CButton::OnMouseMove(nFlags, point);
}LRESULT CImageButton::OnMouseLeave(WPARAM wparam, LPARAM lparam){
…
}ヘッダ
// 生成されたメッセージ マップ関数
protected:
//{{AFX_MSG(CImgButton)
…
afx_msg LRESULT OnMouseLeave(WPARAM wparam, LPARAM lparam);
//}}AFX_MSG
ネタ元