在CListCtrl的SubItem上重绘图像时的位置问题!!!

bluecll 2008-05-06 11:38:43
我想在第一个SubItem上重绘一幅图片,位置为往右和往下各+4。
大家帮忙看一下,为什么这位置总是显示不正确呢?

CRect rectSubItem;
m_listctrl.GetSubItemRect(0, 0, LVIR_ICON, rectSubItem); // m_listctrl为CListCtrl变量
// 这里的LVIR_ICON换成LVIR_BOUNDS也还是不对。
// 若改成LVIR_LABEL则连图片也不显示了
CDC *pDC = GetDC();
CBitmap* pBitmap = new CBitmap;
BITMAP BmpInfo;
CBitmap* pOldBitmap;
CDC* pDisplayMemDC=new CDC;
pDisplayMemDC->CreateCompatibleDC(pDC);

pBitmap->LoadBitmap(IDB_BITMAP_HEAD);
pOldBitmap=(CBitmap*)pDisplayMemDC->SelectObject(pBitmap);
pBitmap->GetBitmap(&BmpInfo);

pDC->BitBlt(
rectSubItem.left+4,
rectSubItem.top+4,
BmpInfo.bmWidth,
BmpInfo.bmHeight,
pDisplayMemDC,
rectSubItem.left,
rectSubItem.top,
SRCCOPY);

pDisplayMemDC->SelectObject(pOldBitmap);
pBitmap->DeleteObject();
...全文
149 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
bluecll 2008-05-07
  • 打赏
  • 举报
回复
DrawItem也能实现动态重绘吗?
能不能给些具体指点,谢谢。
还有我上面的代码是有问题吗?
BlueDog 2008-05-07
  • 打赏
  • 举报
回复
为什么不重载DrawItem这个函数来重绘呢
Eleven 2008-05-07
  • 打赏
  • 举报
回复
Up
bluecll 2008-05-07
  • 打赏
  • 举报
回复
up....

15,979

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 界面
社区管理员
  • 界面
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧