TrackMouseEvent不起作用

jma*_*erx 9 c c++ winapi

基本上,我打电话给TrackMouseEvent我,WM_CREATE然后我也在一个WM_MOUSELEAVE事件后再次调用它,但这冻结了我的程序.

我应该在哪里坚持下去?

Bri*_*ndy 15

您需要TrackMouseEvent在鼠标进入控件时调用,而不是在它离开您的控件时调用.

你可以打电话TrackMouseEventWM_MOUSEMOVE消息.你不需要TrackMouseEvent每次WM_MOUSEMOVE被解雇,只需一次,直到你得到另一个WM_MOUSELEAVE.在你得到一个之后你就WM_MOUSELEAVE可以设置一些标志,这样下次通话WM_MOUSEMOVE就会知道TrackMouseEvent再次打电话.

基本上,您可以WM_MOUSEENTER通过使用WM_MOUSEMOVE并设置该标志来模拟虚构.