mfc 在列表框里显示位图问题

位图被白色盖住了,怎么办?if(pWnd->GetDlgCtrlID()==IDC_LIST1){CBitmapm_bitmap;m_bitmap.LoadBitmap(... 位图被白色盖住了,怎么办?
if(pWnd->GetDlgCtrlID()==IDC_LIST1)
{
CBitmap m_bitmap;
m_bitmap.LoadBitmap(IDB_BITMAP1);//加载位图

BITMAP bmp;
m_bitmap.GetBitmap(&bmp);//获取位图信息

CDC dcCompatible;
dcCompatible.CreateCompatibleDC(pDC);//创建兼容DC
CBitmap *oldbitmap=dcCompatible.SelectObject(&m_bitmap);

CRect rect;
GetDlgItem(IDC_LIST1)->GetWindowRect(rect);//获取list区域
ScreenToClient(&rect);
// pDC->StretchBlt(0,0,rect.Width(),rect.Height(),&dcCompatible,0,0,bmp.bmWidth,bmp.bmHeight,SRCCOPY);
pDC->BitBlt(0,0,rect.Width(),rect.Height(),&dcCompatible,0,0,SRCCOPY);
}
展开
 我来答
bhtzu
2015-02-10 · TA获得超过1.1万个赞
知道大有可为答主
回答量:8088
采纳率:85%
帮助的人:4222万
展开全部
你这个做法是实现不了列表框的背景图的。
你在对话框的DC中贴图,当然会被列表框覆盖了,这个只是做对话框背景图的一个方法。

列表框做背景图,有几个方案,最简单的,就是在对话框的OnCtrlColor中,用位图刷子代替控件的默认刷子。
不过这个做法,在列表框有文字之后,并不是很理想,要想得到理想效果,需要重载列表框,在OnDrawItem中绘制。
追问
我试试位图刷子
追答
可以试试,如果是CListBox,用这个没问题。CListCtrl要复杂一些。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式