新手上路,请多关照:有关VC绘图的初级问题 小妹刚才看了“蓝色的冰”提的问题,我恰好也碰到,在VC中画图要想在别的窗口遮住再移开后图形还在,是不是必须在ondraw画?例如画一根动态曲线,只须在ondraw里画就可以了吗?还是在外面函数画一次,然后在ondraw里重画一次?另外onsize又是干什么的呢? 谢谢大家! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 就是在OnDraw里面画就行,别的地方就调用Invalidate()就能自动调用OnDraw了Onsize是你的窗体被改变大小的时候调用的,你想要在窗体改变大小的时候重绘,就在OnSize里面Invalidate()明白了,小妹?:) onsize是窗口尺寸改变以后,通知你做响应更新的函数是否用Ondraw需要你用的是什么类,只有CView及其派生类又Ondraw这回事 你需要知道什么时候会发生OnDraw,楼上2位说得没错! 在 OnTimer() 里面根新 变量得直,然后 Invalidate(); 视图类中定义了一些变量用于保存将要在客户区中显示的数据,比如一个矩形、一个圆或者一个随时间t变化的正弦波形,为了使用户始终能够看到这些数据的图形化显示,只要在OnPaint()或者OnDraw()函数内部实现绘图任务即可,这是因为当窗口的某些部分从不可见到可见时,系统都会给窗口发送WM_PAINT消息,从而映射到执行OnPaint()函数。而OnPaint()往往调用OnDraw()来实现绘图任务。对于一些不会自动发送WM_PAINT消息的动作(如:菜单命令、工具条命令、快捷键命令、键盘消息、鼠标消息等等),而你的内部数据已经发生变化,这就需要手动发送WM_PAINT消息来更新客户区的图形化显示,可以使用Invalidate()、InvalidateRect()、InvalidateRgn()这三个函数之一来更新需要重绘的区域。还有一个技巧:如果你的绘图范围是整个客户区,就请在你的View类中重载WM_ERASEBKGND的映射函数OnEraseBkgnd(),注释掉return那一行,改成return TRUE;这样做会加快程序的执行速度。 智能指针问题 特急,请各位高手相救 关于线程同步的2个简单问题 如果想在自己的c++程序里面使用机器上已经注册的一个组件,怎样才能找到该组件的头文件? 武汉的爱好IT业的朋友请来转转:)给见面礼啦 有几种方法可以给一个CRichEditView加垂直滚动条? 请问哪位有BoundsChecker for visual c++的下载地址 哪里有关于vc与visual fortran的混合编程的书? 请问有没有让浏览器显示各种文件格式的插件?就像QuickView一样的? 请教:友情强档(winpim)这个软件用的是什么桌面数据库? 问一下关于OICQ的界面的问题 关于系统时间的问题
就在OnSize里面Invalidate()明白了,小妹?:)
是否用Ondraw需要你用的是什么类,只有CView及其派生类又Ondraw这回事
还有一个技巧:
如果你的绘图范围是整个客户区,就请在你的View类中重载WM_ERASEBKGND的映射函数OnEraseBkgnd(),注释掉return那一行,改成return TRUE;这样做会加快程序的执行速度。