请问如何在dialog中将位图bitmap1在一定的位置显示出来,然后将它撤掉,再原来位置上换上位图bitmap2,请问代码该如何写?

wxj81 2003-08-29 08:52:01
请问如何在dialog中将位图bitmap1在一定的位置显示出来,然后将它撤掉,再原来位置上换上位图bitmap2,请问代码该如何写?
...全文
71 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
gzshd 2003-08-30
  • 打赏
  • 举报
回复
用BitBlt贴图就像是在一张画布上画画,如果你在这一块上画了,你再在这块画,就会把原来的给覆盖掉,所以多张图轮流画就可以多次BitBlt就可以
wxj81 2003-08-30
  • 打赏
  • 举报
回复
我在鼠标点击的位置贴上图片,结果会把其他控件覆盖掉,该如何解决?
wxj81 2003-08-29
  • 打赏
  • 举报
回复
如果是要在同一个位置上轮流放很多张位图那不是将代码重复很多次?
chjs 2003-08-29
  • 打赏
  • 举报
回复
同意一楼的,
CBitmap bitmap
bitmap.Detach();
bitmap.LoadBitmap(IDB_BITMAP1);//IDB_BITMAP1是资源
...
HBITMAP hbmp;//位图的handle
BITMAP bmpinfo;//位图信息结构表
hbmp=(HBITMAP)bitmap.GetSafeHandle();//取得handle
GetObject(hbmp,sizeof(BITMAP),&bmpinfo);//通过handle取得位图信息
...
然后bitblt吧
yushulei 2003-08-29
  • 打赏
  • 举报
回复
CBitmap mBitmap,mBitmap1; //定义一个位图类
CDC MemDC,MemDC1;
BITMAP bm,bm1;

//mBitmap.LoadBitmap(IDB_BITMAP_BKGROUND);
mBitmap.LoadBitmap(IDB_BITMAP2);//IDB_BITMAP_BKGROUND
mBitmap.GetObject (sizeof (BITMAP),&bm); //用位图上的信息 填充BITMAP结构的各个域
MemDC.CreateCompatibleDC (pDC); //初始化内存描述对象
CBitmap*pOldBitmap=MemDC.SelectObject (&mBitmap); //定 义一个CBITMAP类,并初始化为选入到设备描述对象的位图
pDC->BitBlt (0, 0, bm.bmWidth, bm.bmHeight, &MemDC, 0, 0, SRCCOPY );//0,0是你贴图位置的左上方
MemDC.SelectObject ( pOldBitmap ); //将位图对象选入 内存 设备描述对象
如果你想覆盖,用同样的方法用另一张图把他换掉不就得了。
dawndu 2003-08-29
  • 打赏
  • 举报
回复
你在OnPaint()写,先BitBlt一个出来,再在同一个地方BitBlt第二个出来不就可以了嘛
不过你要不闪的话,最好就要在内存描述表里画好。

15,979

社区成员

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

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