我得到的是CPaintDC dc(this);
在一个视图上画很多矩形,可能在一个VIEW上面要画上百个矩形,还有画一条在屏幕上可以水平跑动的线,来模拟可以滚动的视图的感觉。
但是当不断的重画页面时,这些矩形和线条就开始变形了,感觉就像线条是没有了灰度似的,以前的灰色部分变成了黑色,如果变形的更厉害的时候就会发生坐标混乱,本来应该是在客户区中画的线条跑到物理坐标上面去了。
这个问题困扰了好久,如有高手能解决,分数不是问题!
12 个解决方案
#1
我顶啊!
#2
高手们,冒个泡啊!
谢谢了!
谢谢了!
#3
继续顶!
#4
重画时是否把原来的矩形又重新复制了,是不是又产生新的对象了?千万不到在ONDRAW()中NEW对象,你的机器会受不了的,跟踪调试一下
#5
DC不是new 出来的,是直接声明的是一个对象,CPaintDC dc(this);
没有用到ondraw,只是用到了onpaint()
重画把原来的矩形复制不可能啊,我是通过计算坐标值来重画的
没有用到ondraw,只是用到了onpaint()
重画把原来的矩形复制不可能啊,我是通过计算坐标值来重画的
#6
看内存的使用在变形了时候也没有增多
#7
按你说的不应该出问题,应该是代码有误吧。
#8
我的代码其实很简单的,如果只是在视图上画线,怎么也不会挂,如果我把我的那段Fillsolidrect的一堆代码加进去之后,就开始出现上面的一些问题了。
#9
那位大哥如果有兴趣,我可以EMAIL过去
#10
StarNCraft@hotmail.com
#11
百思不得其解!
#12
1.在OnDraw里试试
2.如果你用的是void FillSolidRect( int x, int y, int cx, int cy, COLORREF clr );
则有可能填充边界出问题。
2.如果你用的是void FillSolidRect( int x, int y, int cx, int cy, COLORREF clr );
则有可能填充边界出问题。
#1
我顶啊!
#2
高手们,冒个泡啊!
谢谢了!
谢谢了!
#3
继续顶!
#4
重画时是否把原来的矩形又重新复制了,是不是又产生新的对象了?千万不到在ONDRAW()中NEW对象,你的机器会受不了的,跟踪调试一下
#5
DC不是new 出来的,是直接声明的是一个对象,CPaintDC dc(this);
没有用到ondraw,只是用到了onpaint()
重画把原来的矩形复制不可能啊,我是通过计算坐标值来重画的
没有用到ondraw,只是用到了onpaint()
重画把原来的矩形复制不可能啊,我是通过计算坐标值来重画的
#6
看内存的使用在变形了时候也没有增多
#7
按你说的不应该出问题,应该是代码有误吧。
#8
我的代码其实很简单的,如果只是在视图上画线,怎么也不会挂,如果我把我的那段Fillsolidrect的一堆代码加进去之后,就开始出现上面的一些问题了。
#9
那位大哥如果有兴趣,我可以EMAIL过去
#10
StarNCraft@hotmail.com
#11
百思不得其解!
#12
1.在OnDraw里试试
2.如果你用的是void FillSolidRect( int x, int y, int cx, int cy, COLORREF clr );
则有可能填充边界出问题。
2.如果你用的是void FillSolidRect( int x, int y, int cx, int cy, COLORREF clr );
则有可能填充边界出问题。