我在单文档CView::Paint里画了169个小方框,然后用不同的颜色填充(CBrush),当我进行窗口切换时,小方框和颜色就会重新画一次,有时当鼠标移出当前窗口时,也会重新画一次,有没有办法在我程序启动时画一次,然后需要刷新时,我再手动刷新.最小化窗口到最大化窗口也不重画,行吗?
解决方案 »
- 收藏的几本Windows/C++/.Net编程经典书(图)
- 序列化一个列表
- 问一个线程优先级的问题
- 有时候调试的时候,因为观察的目标的字符串有很多行,而MessageBox()只能看到屏幕那么高度。请问,可以给MessageBox()加滚动条吗?
- 怎样在一个CWindowImpl类中加载ActiveX控件(如IE)
- 在vc中如何为编辑框控件设定默认值
- 请问如何将数组作为参数由VC的DLL返回到VB? 谢谢!
- vc&数据库
- CGridListCtrlEx 中的CGridColumnTraitCombo 类的成员函数为什么没有得到用户选择ComBox是第几行和具体内容。
- vc++ 2005 想停止程式運作10秒. 要怎么做呢?
- 使用ADO,数据库为SQL SERVER,4月21日结贴,顶有分,
- 关于结贴给分的问题
否为true,是则画,否则return;函数最后置为idrawflag=false; 然后在你手动刷新时先idrawflag=true就行了
http://www.csdn.net/develop/Read_Article.asp?Id=26108要做到最大化不重画,用StretchBlt函数,不过显示效果不会很好,会有马赛克。
刷新的一般做法是在OnPaint或OnDraw里把memDC中的图像拷贝到当前的设备DC中去,如果你真的不想刷新,只需要不在OnPaint里进行拷贝工作,在OnPaint之外把memDC考到设备DC里就行了。不过这样的图像在刷新一回之后就没有了。
双缓冲是解决图像闪烁问题的,好像和你没什么关系。