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,同时原来字可以覆盖掉。希望好人帮一下偶,非常感谢

解决方案 »

  1.   

    .
    .
    .
    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,"你这个");显示“你这个” 
    .
    .
    .
      

  2.   

    textout的参数都改变,他才会移动啊
      

  3.   

    Tolirry 你好,我用了你的办法,背景没有了啊,背景变成一片白
    如何在把背景图给贴上去,非常感谢
      

  4.   

    有一种办法是保留上一次memdc的内容,这次先用这个memdc的内容,bitblt用SRCERASE在相同的位置做一次操作,之后再进行你上面的操作。
    具体的代码有点忘了。基本就是在原来的地方再画一次擦除,这样上次的内容就不见了。多试试吧。鼠标拉框的时候,经常要处理这种问题的。