我用CBitmapButton实现了一列按钮。
使用AutoLoad方式载入四种图(Up Down Focus Disable),目前在按下、弹起、焦点、Disable都有不同的图。
但是没有办法加上鼠标经过时的图。(原来以为是Focus,但是不是)请问如何实现?
使用AutoLoad方式载入四种图(Up Down Focus Disable),目前在按下、弹起、焦点、Disable都有不同的图。
但是没有办法加上鼠标经过时的图。(原来以为是Focus,但是不是)请问如何实现?
调试欢乐多
http://expert.csdn.net/Expert/topic/1810/1810003.xml?temp=.3828546
方法2: 不用派生新类,得到按钮的矩型m_rect,跟踪MouseMove事件,一旦发现m_rect.PtInRect(鼠标坐标)就使用某张图,否则就是用另外一张图,这种方法比较耗费资源。当然,你可以再记录前一次按钮的状态(鼠标是否在上面),只有状态发生改变时,才真正的更换图片。
void CMyButton::OnMouseMove(UINT nFlags, CPoint point)
{
// TODO: Add your message handler code here and/or call default
if (!m_bTracking)
{
TRACKMOUSEEVENT tme;
tme.cbSize = sizeof(tme);
tme.hwndTrack = m_hWnd;
tme.dwFlags = TME_LEAVE | TME_HOVER;
tme.dwHoverTime = 1;
m_bTracking = _TrackMouseEvent(&tme);
}
CButton::OnMouseMove(nFlags, point);
}
LRESULT CMyButton::OnMouseLeave(WPARAM wParam, LPARAM lParam)
{
m_bTracking = FALSE;
InvalidateRect(NULL, FALSE);
return 0;
}LRESULT CMyButton::OnMouseHover(WPARAM wParam, LPARAM lParam)
{
InvalidateRect(NULL);
return 0;
}