我在对话框的OnPaint里用GDI+的双缓冲画图,有几百个小图片。在OnEraseBkgnd改了背景图。
1 为什么在没有任何操作(移动窗口,切换程序等)的情况下有时对话框自己会自动刷新。刷新一次要等半秒。偶尔刷新后界面除了背景图,什么都没有。
2 为什么我调用Invalidate后,界面刷新,图片显示一会(0.1秒)后马上消失(估计又刷新了一次,但没有绘制OnPaint里的东西),只剩下背景图。应该跟上面是同个问题。
3刷新一次要等半秒,这段时间界面没东西。请问:我可以把上一次OnPaint的界面保存成图片,在下次调用OnPaint时先绘制保存的图片,再用双缓存作图吗
4 Image可以用数组吗?在对话框里类的头文件里新建Image变量不能初始化,而Image声明时好像必须初始化,难道Image不能作为类的属性(只能做局部变量)?用指针是可以解决,但对话框退出时,指针在哪里释放,我在析构那里释放出错。我是初学者。在网吧等,很急。明天给分。
在对话框的OnPaint用CPaintDC pDC(this)获得DC类就可以画图, 为什么用GetDC()获得CDC类画图后就不能刷新?
http://topic.csdn.net/u/20071128/16/36322828-3045-4f58-a46f-03b410549a77.html
我正是用GetDC()的DC,会不会就是这个原因?
应该是cpu在绘制这张图片时,切换到其它进程,导致绘制失败。我想解决办法就是把图片切割成几份显示,就不会因为太大而无法显示。我现在想知道的是,在其它地方定义的Bipmap怎么拿到OnPain里用????我想把所有东西绘制到这张Bipmap上,OnPain再绘制这张图片就行了,就是把双缓冲内存绘制的部分移到OnPain外进行,避免0.5秒的等待。
给你们送分。