// MyPopupWnd message handlers
BOOL m_bMouseTracking = FALSE;
void MyPopupWnd::OnMouseMove(UINT nFlags, CPoint point)
{
// TODO: Add your message handler code here and/or call default
if (!m_bMouseTracking)
{
TRACKMOUSEEVENT tme;
tme.cbSize = sizeof(TRACKMOUSEEVENT);
tme.dwFlags = TME_LEAVE;
tme.hwndTrack = this->m_hWnd;
//마우스나감 추적개시,마우스가 클라이언트영역을 벗어나면 WM_MOUSELEAVE 메시지를 발생시킴
//그 결과 OnMouseLeave()함수가 호출딤
if (::_TrackMouseEvent(&tme))
{
m_bMouseTracking = TRUE;
}
}
CFrameWnd::OnMouseMove(nFlags, point);
}
void MyPopupWnd::OnMouseLeave()
{
// TODO: Add your message handler code here and/or call default
m_bMouseTracking = FALSE;
POINT mousePos;
GetCursorPos(&mousePos);
CRect clientRect;
GetClientRect(&clientRect);
if(mousePos.x >= clientRect.right)
{
AfxMessageBox(_T("마우스가 우측으로 나가요"));
}
CFrameWnd::OnMouseLeave();
}