通过setwindowlong 监听button的消息,是不能接收到mouse_over和mouse_leave的消息的,需要通过mouse_move消息来解决,主要代码如下:
TRACKMOUSEEVENT tme;
case WM_MOUSEMOVE:
if (!pBtnRecord->bTracking){
tme.cbSize = sizeof(TRACKMOUSEEVENT);
tme.dwFlags = TME_LEAVE;
tme.hwndTrack = hwnd;
tme.dwHoverTime = 50;
pBtnRecord->bTracking = TrackMouseEvent(&tme);
}
break;