如何为控件添加背景图片?

jcqstc 2005-08-04 01:27:33
自己做了一个控件,WORD里用的,功能已完成,想控件好看点。
想实现从硬盘读一张图片,文件名已知,路径已知,格式最好是通用,不行的话就bmp也可以。
把这张图片作为控件的背景,代替原来控件原来的那个椭圆。
请问这是在函数OnDraw(CDC* pdc, const CRect& rcBounds, const CRect& rcInvalid)里完成吗?
自己试过
{
CDC *pDC = GetDC(); //word报警告
CDC dcMem;

CBitmap *pBitmap=new CBitmap;

dcMem.CreateCompatibleDC(pDC);
pBitmap->CreateCompatibleBitmap(pDC,200,200);
pBitmap->LoadBitmap("44.bmp"); //word报警告
dcMem.SelectObject(pBitmap);
dcMem.Rectangle(0,0,200,200);
pDC->BitBlt(0,0,200,200,&dcMem,0,0,SRCCOPY);
pBitmap->DeleteObject();
dcMem.DeleteDC();
}
然后控件无法显示图片。
顺便求可用的代码。谢谢!!!
...全文
381 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
jcqstc 2005-08-04
  • 打赏
  • 举报
回复
谢谢,问题解决了
jcqstc 2005-08-04
  • 打赏
  • 举报
回复
BOOL CMy1Ctrl::OnEraseBkgnd(CDC* pDC)
{
CDC dcMem;
CBitmap *pBitmap=new CBitmap;
dcMem.CreateCompatibleDC(pDC);
pBitmap->CreateCompatibleBitmap(pDC,200,200);
pBitmap->LoadBitmap(IDB_BITMAP1); //实在不行了,把图片改成工程里的资源了
dcMem.SelectObject(pBitmap);
dcMem.Rectangle(0,0,200,200);
pDC->BitBlt(0,0,200,200,&dcMem,0,0,SRCCOPY);
pBitmap->DeleteObject();
dcMem.DeleteDC();
return TRUE;
// return COleControl::OnEraseBkgnd(pDC);
}
是这样吗?图片还是出不来啊?
kikikind 2005-08-04
  • 打赏
  • 举报
回复
OnEraseBkGnd()
返回TRUE
dirdirdir3 2005-08-04
  • 打赏
  • 举报
回复
不是在,OnEraseBkGnd()里面实现。

3,245

社区成员

发帖
与我相关
我的任务
社区描述
ATL,Active Template Library活动(动态)模板库,是一种微软程序库,支持利用C++语言编写ASP代码以及其它ActiveX程序。
社区管理员
  • ATL/ActiveX/COM社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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