我重写了一个Button类,我想按钮不同状态时显示一幅位图的不同部份,
void CAgileImageButton::DrawItem(LPDRAWITEMSTRUCT lpDis)
{
CRect rect(lpDis->rcItem);
CMemDC dc(lpDis->hDC, rect); if (m_hBitmap)
{
UINT nState = lpDis->itemState; int nIndex = 0;
if (m_nCheck || nState & ODS_SELECTED)
nIndex = 1;
else if (nState & ODS_FOCUS)
nIndex = 2;
else if (nState & ODS_DISABLED)
nIndex = 3;
else if (nState & ODS_HOTLIGHT)
nIndex = 4; DrawBitmap(dc.m_hDC, rect, m_hBitmap, nIndex, 5);
}这段代码,除了ODS_HOTLIGHT之外都能显示,就是当鼠标注移上去时没有反应?MSDN上说(WINVER >= 0x0500),可我这WINVER = ox0501啊,求各位大侠帮帮忙~~

解决方案 »

  1.   

    求教啊~~为什么当鼠标移上去lpDis->itemState都没有这个值,其它的状态都有的
      

  2.   

    大哥,bitmapbutton只有四种状态吧~~,没有当鼠标移动上去的状态
      

  3.   

    可以自己定义一些状态,比如button down,mouseover,在DrawItem的时候根据这些状态去画mouse over是在鼠标滑到按钮上的时候申请一个鼠标离开消息
      

  4.   

    哈哈,搞定了~~就是仿照CButtonST这个类来写的,还是多谢各位!