VC++中画图时,一旦重绘,图就消失,怎么解决?

不是在Ondraw中画的!当画面重绘(调整换免得大小,或别其他窗口覆盖)时,原来的图就没了!
还有,有没有画圆和椭圆的代码?我画圆时,由大变小时,大圆的痕迹还在,画椭圆时外面还会有虚线的圆!

第1个回答  2008-05-30
1、改为在OnDraw或者OnPaint中画。
2、通过设备对象CDC中的方法,Ellapse等函数可以画圆等。
第2个回答  2008-05-30
你可以参考下面的代码:
http://zhidao.baidu.com/question/55021000.html本回答被提问者采纳

VC++中画图时,一旦重绘,图就消失,怎么解决?
1、改为在OnDraw或者OnPaint中画。2、通过设备对象CDC中的方法,Ellapse等函数可以画圆等。

刚看VC++发现个问题,我在用VC++做简单绘画时发现,在窗口中绘制的线条最...
这是因为当窗口被覆盖或大小发生改变时,窗口会发生重绘,此时你绘制的线条也就不见了。你需要再添加几个成员变量来保存你画线时的始末点信息,然后在CView的OnPaint函数中再次进行绘制。

VC++6.0 窗口重绘问题
只是在PICTURE子控件这个范围里画图,所以要解决问题,只要在画表针之前用背景色在PICTURE子控件这个范围填充一下就行了,先把你的画表的代码(即OnTimer(UINT nIDEvent)函数里面的代码)放到OnPaint()函数里面去,

VC 重绘(重新加载位图)会闪烁
在需要刷新的OnErase...里面使用CMemDC内存画布就可以解决

VC++中怎么初始化图形?
这个恐怕没法达到,因为你曲线数据发生变化时,你计时器是需要重新绘制曲线,这就需要重绘,重绘需要把界面原有数据全清掉,然后把新的曲线绘制出来,所以需要每次调用InitAxis来绘制坐标系,然后在绘制曲线。否则你界面只有曲线,没有坐标系。

VC++ 6.0中在哪些情况下会发生重绘?
以下的这些控件的背景画笔重绘消息,也会引起窗口重绘。define WM_CTLCOLORMSGBOX 0x0132 define WM_CTLCOLOREDIT 0x0133 define WM_CTLCOLORLISTBOX 0x0134 define WM_CTLCOLORBTN 0x0135 define WM_CTLCOLORDLG 0x0136 define WM_CTLCOLORSCROLLBAR 0x0137 define WM_CTLCOLOR...

关于VC++中的画圆的实现问题
你可以直接通过改变窗口大小让它自动重绘,这样你的先前的圆就没了.不过这种方法不太好.也可以在你的OnLButtonDown函数中,先重绘(即调用刷新函数)然后在画圆.这样再你每次按下时它就重绘了,你的先前圆也就没了.你试试看吧.若有问题你在和我联系吧.祝你成功!

VC++ 不停的重新绘图
增加一个定时器消息的响应WM_TIMER 不停的调用Invalidate();

c\/c++ VC++ MFC 关于在Static 控件里面作图的问题 详见问题补充,希望...
图层叠加的问题吧!你建立的是单文档视图,在view中又添加了一个CStatic,此static属于view的一个局部窗口,而你在view的OnPaint中画图,也就是当view发现需要重绘时才会在重绘,而且在OnPaint中你获得的是static的DC,在此DC中画,也就是以static的坐标绘制,绘制以后你又移动static,移动static后,当...

VC++中对话框程序如何重绘???
你是在对话框中的onpiant和OnEraseBkgnd中进行重绘的,当这两个函数执行完后,控件自身还有重绘函数,自然会覆盖对话框中的重绘,所以你每次都无法看得你在对话框中重绘的效果,被覆盖了,要想在对话框中对控件进行重绘可以用OnCtlColor函数。

相似回答