有一个类A,继承与CFormView,有两个问题大家帮忙看一下:
1.在A的OnEraseBkgnd函数里面,添加了如下代码用于绘制视图的背景图片:
CBitmap bitmap;
bitmap.LoadBitmap(IDB_BIT_BG); CDC dcCompatible;
dcCompatible.CreateCompatibleDC(pDC);
dcCompatible.SelectObject(&bitmap); CRect rect;
GetClientRect(&rect);
pDC->BitBlt(0,0,rect.Width(),rect.Height(),&dcCompatible,0,0,SRCCOPY);
return TRUE;
当没有滚动条时,图片显示正常,但是当有了滚动条,需要滚动的时候,背景图片就花了,这个该怎么解决。2.在A的视图里面放了一个按钮,有定时器不断的刷新该按钮上的文本信息和这个按钮的位置,假如说按钮的坐标是(5,5),现在滚动条向下滚动,屏幕内容应该向上,按钮也应该向上滚动,可定时器一到,这个按钮就又到视图的左上方(5,5)的位置了,如何让它随滚动条一起移动。大家帮忙瞧瞧,谢谢了!

解决方案 »

  1.   

    绘图代码应该放在绘图函数里面而不是放在OnEraseBkgnd函数里面,这个函数OnEraseBkgnd主要是用来擦除背景的,肯定会花,每次操作,图形都会刷新,都会利用绘图函数来重绘...这是我的理解。如有错误还请高手来指点
      

  2.   

    pDC->BitBlt(0,0,rect.Width(),rect.Height(),&dcCompatible,0,0,SRCCOPY);1.背景图要足够大,
    2.这2个0 要改为滚动条的当前位置