贴图时,CDC 的问题,

大头猫 2011-07-03 08:14:31
CPaintDC dc(this);

CBitmap FootballBMP;
FootballBMP.LoadBitmap(IDB_BITMAP2);
CDC ImageDC;
ImageDC.CreateCompatibleDC(&dc);
CBitmap *pOldImageBMP = ImageDC.SelectObject(&FootballBMP);


CBitmap bmp;
bmp.LoadBitmap(IDB_BITMAP1);
CDC memDC;
CBitmap *Oldbmp=NULL;
memDC.CreateCompatibleDC(&dc);
Oldbmp=memDC.SelectObject(&bmp);


CBitmap BkMap;
BkMap.CreateCompatibleBitmap(&dc,1280,720);//w,h表示窗口的宽和高
CDC BkDC;
CBitmap *OldBkMap=NULL;
BkDC.CreateCompatibleDC(&dc);
OldBkMap=BkDC.SelectObject(&BkMap);
BkDC.BitBlt(0,0,1280,720,&memDC,0,0,SRCCOPY);
for(int x=0;x<1112;x+=10)
{
for(int y=0;y<667;y+=10)
{
DWORD dwTick = GetTickCount();
TransparentImage(BkDC.m_hDC, 0+x, 0+y,108, 53, ImageDC.m_hDC, 0, 0, 108, 53, RGB(255,0,255));
dc.StretchBlt(0,0,1024,768,&BkDC,0,0,1280,720,SRCCOPY);
DWORD dwTick1= GetTickCount();
DWORD dwTick2= GetTickCount();
}
}

BkDC.SelectObject(OldBkMap);
BkMap.DeleteObject();
BkDC.DeleteDC();
memDC.SelectObject(Oldbmp);
bmp.DeleteObject();
memDC.DeleteDC();


BkDC要多次用,我想问怎么建立个临时的来保存BkDC。
就是画图的时候不要出现残影。。

...全文
90 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
大头猫 2011-07-05
  • 打赏
  • 举报
回复
可以,我就是局部刷新,但是我想保存下BkDC你知道怎么保存吗?定义一个dc来保存他,要什么步骤
当我遇上-你 2011-07-05
  • 打赏
  • 举报
回复
局部刷新可以不啊?
91program 2011-07-04
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 gao5214637 的回复:]

是啊,缓冲里面的BkDC给画图了,但是物体移动到第二点,第一点的么擦去。我想保存BkDC
[/Quote]

保留一下没有物体的DC
大头猫 2011-07-04
  • 打赏
  • 举报
回复
是啊,缓冲里面的BkDC给画图了,但是物体移动到第二点,第一点的么擦去。我想保存BkDC
Ei 2011-07-04
  • 打赏
  • 举报
回复
残影是什么意思,楼主实际上已经用了双缓冲。
大头猫 2011-07-04
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 91program 的回复:]
引用 4 楼 gao5214637 的回复:

是啊,缓冲里面的BkDC给画图了,但是物体移动到第二点,第一点的么擦去。我想保存BkDC


保留一下没有物体的DC
[/Quote]


哈哈,就是不知道怎么保存BkDC啦
我就只能写在dc上,不改变BkDc
但是这就不是双缓冲了怕闪
Mana2020 2011-07-03
  • 打赏
  • 举报
回复
内存缓存可以实现,代码网上扫搜就有
大头猫 2011-07-03
  • 打赏
  • 举报
回复
顶上去。。。来个人看下

19,502

社区成员

发帖
与我相关
我的任务
社区描述
硬件/嵌入开发 嵌入开发(WinCE)
社区管理员
  • 嵌入开发(WinCE)社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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