本文由CSDN用户zuishikonghuan所作,转载请注明出处
http://blog.csdn.net/zuishikonghuan/article/details/46532941
WM_MOUSELEAVE这个消息很有意思,它是鼠标指针离开窗口时发送的,但是它每一次发送都必须用TrackMouseEvent注册一次。
如果想自绘制窗口控件(比如按钮),使用WM_MOUSELEAVE消息判断鼠标移出重画,可以很简单地实现按钮的鼠标在上面变色移出时恢复。(据说这种方法有一些问题,就是如果鼠标按住窗口再离开的话WM_MOUSELEAVE就会在鼠标放开的时候再响应,另外SetCapture貌似也能实现类似功能,但没有试过,我会在我以后会发的GdiplusFlat博文中进一步介绍)
先来看看TrackMouseEvent的函数原型:
BOOL WINAPI TrackMouseEvent(
_Inout_ LPTRACKMOUSEEVENT lpEventTrack
);
MSDN: