我正在做播放器界面,上面有很多自绘的按钮,它们在普通状态时,鼠标聚焦时,鼠标按下时,及灰化时,显示的位图都是不同的,这就需要加入ON_WM_MOUSEMOVE 消息,以来及时地刷新位图。但问题也出来了,当我用鼠标左键按住某一个按钮不放,并将鼠标移开这个按钮,再弹起时,它还是会响应ON_BN_CLICKED消息,但照理是不应该响应的,我想这应该在OnMouseLeave(WPARAM, LPARAM)里更改吧,但我不知道该怎么做,还请各位帮个忙了。
调试欢乐多
void CMyButton::OnMouseMove(UINT nFlags, CPoint point)
{
m_is_mouse_over = true;
if (!m_is_tracked)
{
}
}
但这样是不行的,我在函数最后面再加了一句:
CBitmapButton ::OnMouseMove(nFlags, point);
这样,当鼠标移开按钮时再弹起时,就不会再触发ON_BN_CLICKED消息了。
唉,这个问题浪费了我昨天一整天时间,今天又耗了一个晚上。其实,这还是我朋友的功劳,他昨晚已告诉我,并试着这样做过了,只不过工程可能还没重新编译好,我就糊里糊涂地认为这样是不行的。但具体的原因我到现在说不来。