我重写了一个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啊,求各位大侠帮帮忙~~
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啊,求各位大侠帮帮忙~~
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货