- Код: Выделить всё
Private Function ISubclass_WindowProc(ByVal hwnd As Long, ByVal iMsg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
Dim tTME As tagTRACKMOUSEEVENT
Select Case iMsg
Case WM_MOUSELEAVE
Debug.Print "mouse leave"
g_bOver = False
pDraw
Case WM_MOUSEMOVE
Debug.Print "wm_move"
'SetCursor LoadCursor(0, IDC_IDC_SIZEALL)
If Not g_bOver Then
g_bOver = True
SetCursor LoadCursor(0, IDC_IDC_SIZEALL)
Debug.Print "true over"
With tTME
.cbSize = LenB(tTME)
.hwndTrack = hwnd
.dwFlags = TME_LEAVE
.dwHoverTime = HOVER_DEFAULT
End With
TrackMouseEvent tTME
pDraw
End If
End Select
End Function
Вот такой код в usercontrol'e. Сабклассер от Стива МакМэхона. При движении курсора по контролу он постоянно мерцает - то мой курсор, то стандартный. Как я понимаю, приходит какое-то сообщение, которое его сбрасывает. Если убрать камент у SetCursor после Debug.Print "wm_move", ничего не меняется, так же мерцает...как эту проблему решить?