写到内存,然后多次写来,超级奇怪,请高手指点

liuqingwu228 2008-03-17 03:06:17
void CCeshibeijingCtrl::OnDraw( CDC* pdc, const CRect& rcBounds, const CRect& rcInvalid)//函数里面代码
static int count =0;
count += 50;
CDC memDC;
CBitmap *pOldBmp;
memDC.CreateCompatibleDC(pdc);
pOldBmp = memDC.SelectObject(&BgBitmap);
//memDC.SetBkColor(RGB(0,0,0));
//memDC.SetTextColor(RGB(0,255,0));
memDC.SetBkMode(TRANSPARENT);
memDC.TextOut(30,count,"你这个");显示“你这个”

pdc->BitBlt(0, 0, 283, 374, &memDC, 0, 0, SRCCOPY);
memDC.SelectObject(pOldBmp);

//我希望每次刷新,呢个位置向下移动50,结果每次移动50显示出来,同时原来位置并没有被覆盖掉,如何实现啊?
pdc->TextOut(0,count,"你这个");这句话,是可以实现,但是我想问一下,如何在memDC写进去,下次看到位置移动50,同时原来字可以覆盖掉。

希望好人帮一下偶,非常感谢
...全文
61 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
datablader 2008-03-18
  • 打赏
  • 举报
回复
有一种办法是保留上一次memdc的内容,这次先用这个memdc的内容,bitblt用SRCERASE在相同的位置做一次操作,之后再进行你上面的操作。
具体的代码有点忘了。基本就是在原来的地方再画一次擦除,这样上次的内容就不见了。多试试吧。鼠标拉框的时候,经常要处理这种问题的。
liuqingwu228 2008-03-18
  • 打赏
  • 举报
回复
Tolirry 你好,我用了你的办法,背景没有了啊,背景变成一片白
如何在把背景图给贴上去,非常感谢
ZiSheng 2008-03-17
  • 打赏
  • 举报
回复
textout的参数都改变,他才会移动啊
Tolirry 2008-03-17
  • 打赏
  • 举报
回复
.
.
.
memDC.CreateCompatibleDC(pdc);
pOldBmp = memDC.SelectObject(&BgBitmap);
//memDC.SetBkColor(RGB(0,0,0));
//memDC.SetTextColor(RGB(0,255,0));

BITMAP bmpObj;
BgBitmap.GetObject(sizeof(bmpObj), &bmpObj);
CRect rcBitmap(0, 0, bmpObj.bmWidth, bmpObj.bmHeight);
memDC.FillSolidRect(&rcBitmap, RGB(255, 255, 255));

memDC.SetBkMode(TRANSPARENT);
memDC.TextOut(30,count,"你这个");显示“你这个”
.
.
.

15,979

社区成员

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

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