一个我想不通的问题
本人在函数OnDraw(pDC)中编写了显示代码,然后在另一函数中调用Invalidate()函数,似乎接下来系统应该自动调用OnDraw()函数的,可不知道为什么,一直没有动静,只有在程序运行完了才调用,真是怪事。哪位大虾知道,请不吝赐教,必有厚谢!(这是我能给的最高分了) 问题点数:51、回复次数:8Top
1 楼zhangyan_qd(doggyzone)回复于 2001-10-15 17:46:10 得分 0
是不是调Invalidate的那个函数到最后才被调用阿Top
2 楼Colorstone(不偏不倚谓之正)回复于 2001-10-15 18:05:14 得分 0
这好像不太可能Top
3 楼sanjiang()回复于 2001-10-15 18:56:50 得分 0
如果重载了OnPaint()必须显式调用OnDraw().Top
4 楼kingzai(stevenzhu)回复于 2001-10-15 19:06:19 得分 0
把OnDraw中的代码写到OnPaint中吧,很容易改的Top
5 楼sietlkj(我心已死)回复于 2001-10-16 15:36:33 得分 0
To zhangyan_qd(doggyzone);不是。调用Invalidate的那个函数被主程序调用至少1000次,但该函数会视情况而定调用Invalidate函数,最多4次。只是,主程序是一个循环,一旦运行,直到结束,不知是否与此有关呢?
To sanjiang():没有重载OnPaint()。
To kingzai():在刷新屏幕时,系统是否会自动调用OnPaint函数?另外,我需要刷新屏幕时,能否用Invalidate函数?
谢谢!Top
6 楼CoolBoy_007(coolboy_007)回复于 2001-10-16 15:55:42 得分 51
如果上面各位仁兄的标准方法,这位老兄都不能解决问题,那最简单的就是你去调用OnDraw函数去主动调用实现功能吧!Top
7 楼wmouse(山水)回复于 2001-10-16 16:31:57 得分 0
我也想知道Invalidate的工作和使用情况Top
8 楼sietlkj(我心已死)回复于 2001-10-18 15:21:28 得分 0
To CoolBoy_007(酷男):这种方法我没有试过,不过,我换了一种方式,原理一样,我定义一个新函数,将原先在OnDraw()中的代码拷贝到该函数,然后调用该函数进行刷新,只是,这样一来,我就得自己编写清屏的代码了。顺便问一句,若直接调用OnDraw函数,则其参数是否如下:
CDC pDC(this)?谢谢!Top




