大家帮忙看看,到底错在那儿

metalyt 2003-05-19 12:05:55

我想实现类似于幕后位图的功能.就是先构造一个位图对象,在它的画布上绘
制,然后将其拷贝到控件的画布上去.代码如下,究竟哪儿错了?



Graphics::TBitmap * backBitmap,* tempBitmap;
backBitmap = new Graphics::TBitmap;
tempBitmap = new Graphics::TBitmap;

tempBitmap->LoadFromFile("map.bmp");

backBitmap->PixelFormat=tempBitmap->PixelFormat;
backBitmap->Canvas->Draw(0,0,tempBitmap);

mapView->Canvas->Draw(0, 0, backBitmap);
// 直接用下面一句就可以
//mapView->Canvas->Draw(0, 0, tempBitmap);

delete tempBitmap;
delete backBitmap;
...全文
44 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
codecb 2003-05-19
  • 打赏
  • 举报
回复

啊! 搞定了!
那就接点分 呵呵
metalyt 2003-05-19
  • 打赏
  • 举报
回复
多谢, c2y(麻麻鱼)
c2y 2003-05-19
  • 打赏
  • 举报
回复
Graphics::TBitmap * backBitmap,* tempBitmap;
backBitmap = new Graphics::TBitmap;
tempBitmap = new Graphics::TBitmap;

tempBitmap->LoadFromFile("map.bmp");

backBitmap->PixelFormat=tempBitmap->PixelFormat;

//加上下面两句就OK,未指定位图大小,默认为0。
backBitmap->Height=tempBitmap->Height;
backBitmap->Width=tempBitmap->Width;


backBitmap->Canvas->Draw(0,0,tempBitmap);

mapView->Canvas->Draw(0, 0, backBitmap);
// 直接用下面一句就可以
//mapView->Canvas->Draw(0, 0, tempBitmap);

delete tempBitmap;
delete backBitmap;

13,825

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder相关内容讨论区
社区管理员
  • 基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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