我想当鼠标经过里面的项时,能改变经过项的背景色我重载了clistbox 在drawitem里面该怎么写啊?
还是只能在onmousemove里面?
谢谢!!
还是只能在onmousemove里面?
谢谢!!
解决方案 »
- 为什么这个全屏截图把“截图窗口”老是给截进去啊???
- 请问 CFile能操作别人电脑上的文件吗 文件在共享文件夹里
- 问题!
- jpg图像打印问题
- IWebBrowser2中怎么获得页面的标题?我用get_LocationName发现 有些情况下得到的不是标题,而有些情况是,这是为什么?
- vfw效率太低了点!希望高手给个directshow写的视频采集,捕获帧图像,记录图像,压缩图像的好例子!
- 关于数据库查询的问题,郁闷!!
- 我做了个论坛和CSDN一个样,不知会被CSDN告?
- 关于OpenGL多边形分格化和剪切平面的问题
- 一个奇怪的编译错误
- 用wml写wap1.0手机浏览的网页,遇到问题
- 想编一个可以自动监视浏览器并可以做出动作的程序,希望大家帮我提供些思路,谢谢啦。
LPDRAWITEMSTRUCT 里面有相关的属性可以辅助你去修改颜色
但该怎么组合才能是鼠标经过时的状态啊!
试了好久都没试出来
然后做个标记
在drawitem里按标记绘制
void CListCtrlExt::DrawItem(LPDRAWITEMSTRUCT lpDIS){ int nItem=lpDIS->itemID; if(nItem == -1) return ; CRect rcCol = lpDIS->rcItem; CString sText; CDC* pDC=CDC::FromHandle(lpDIS->hDC); int nOldDCMode=pDC->SaveDC(); LVITEM item; item.iItem = nItem; item.iSubItem = 0; item.mask = LVIF_IMAGE|LVIF_STATE; item.stateMask = 0XFFFF; GetItem(&item); BOOL bSelected = item.state&LVIS_SELECTED; COLORREF color=::GetSysColor(COLOR_WINDOW); if(bSelected ) { pDC->SetBkColor(::GetSysColor(COLOR_HIGHLIGHT)); pDC->SetTextColor(::GetSysColor(COLOR_HIGHLIGHTTEXT)); color=::GetSysColor(COLOR_HIGHLIGHT); } else { pDC->SetBkColor(color); pDC->SetTextColor(::GetSysColor(COLOR_WINDOWTEXT)); } LV_COLUMN lvc; lvc.mask=LVCF_FMT|LVCF_WIDTH; rcCol.right = rcCol.left; for(int nCol=0; GetColumn(nCol,&lvc); nCol++) { rcCol.left = rcCol.right; rcCol.right = rcCol.left + GetColumnWidth(nCol); HPEN hOldPen = (HPEN)::SelectObject(lpDIS->hDC, ::CreatePen(PS_SOLID, 1, RGB(0xc0,0xc0,0xc0))); HBRUSH hOldBrush = (HBRUSH)::SelectObject(lpDIS->hDC, ::CreateSolidBrush(color)); ::Rectangle(lpDIS->hDC, rcCol.left-1, rcCol.top-1, rcCol.right, rcCol.bottom); ::DeleteObject(SelectObject(lpDIS->hDC, hOldBrush)); ::DeleteObject(SelectObject(lpDIS->hDC, hOldPen)); sText=MakeShortString(pDC,GetItemText(nItem,nCol),rcCol.Width()); pDC->DrawText(sText, -1, CRect::CRect(rcCol.left+3,rcCol.top,rcCol.right,rcCol.bottom-2), DT_LEFT); } pDC->RestoreDC(nOldDCMode); }