请教一个有关滚动条与绘制的问题。
我在做一个小程序,需要用CScrollView的滚动条来实现绘制一张较大的图形的目的。
我需要先在大约10000*10000的背景上画上网格(我就在OnDraw里面画了:))
绘制的区域我选择了
GetClientRect(&clientrect);
为了避免闪烁,我用了双内存,就是下面这个(不过区域太大了,所以我就用了上面的客户区来画):
CDC MemDC;
CBitmap MemBitmap;
MemDC.CreateCompatibleDC(NULL);
MemBitmap.CreateCompatibleBitmap(pDC,width,height);
CBitmap *pOldBit=MemDC.SelectObject(&MemBitmap);
MemDC.FillSolidRect(0,0,width,height,RGB(255,255,255));
以后的绘制都用MemDC画
可是在我拖动滚动条的时候,绘制的网格出现了很多不均匀的黑线或白线
我想可能是获得客户区的GetClientRect(&clientrect)的问题
又没有什么办法能避免这种现象的出现呢?
呵呵,别的方法也可以,我就是想在10000*10000的区域内绘图,同时不闪烁。。
谢谢!
问题点数:80、回复次数:2Top
1 楼fuxf(布衣)回复于 2003-12-02 14:29:43 得分 80
拖动滚动条的时候,引起重画,所以绘制的网格出现了很多不均匀的黑线或白线.
Top
2 楼lglabc(会飞的熊猫)回复于 2003-12-02 14:32:43 得分 0
我知道会重画,不过我已经在程序中用白刷子刷过了,为什么还遗留下了呢?Top




