我在一个基于对话窗的程序中用了几个CDC的函数,有画线,画icon等。相应在OnPaint()中调用。但是在加入或删除东西(例如icon)时,总是不能自动更新。我就加入了RedrawWindow();OnPaint();两个函数。用来更新界面,多番尝试,二者缺一就达不到理想效果。但是又有一个问题,画面闪烁得很厉害!不知道大家用什么方法的。请指教。
解决方案 »
- xp下开发的应用程序,在64位win7下打开只有进程、没有界面
- VS2008的Debug没有出错,Release出错了,怎么办呢?
- DBGrid问题
- 关于cookie
- CListCtrl控件插入行项目时发生的问题?专家看一下如何解决?
- [新手求助]关于MFC画图的问题!
- 100分请高手帮我。fatal error RC1015:cannot open include file 'afxres.h'
- ado
- 求助一个看似简单的源码问题:如何用MSCOMM控件发送像0xaa这样的二进制字符
- VC如何访问Foxpro数据库
- 请问什么是逻辑坐标,什么是设备坐标啊?
- 菜鸟问题:vc中标准c++的cstring类的使用
更新你要刷新的区域,可以达到你的效果,由于更新的大小由rect大小来控制所以,当rect不太大时,就没有闪烁现象
加入OnEraseBkgnd()函数,并修改其返回值为TRUE.
BOOL T2_2::OnEraseBkgnd(CDC* pDC)
{
return TRUE;
//return CDialog::OnEraseBkgnd(pDC);}
用InvalidataRect(CRect rect)更新你指定的区域