关于MFC下的opengl绘图??

我按照网上的方法实现了MFC下用opengl绘制了一个静态三角形,但是怎么样让它动起来呢(比如说旋转)。原始的opengl程序中(非MFC环境)是通过一个循环不断调用绘图... 我按照网上的方法实现了MFC下用opengl绘制了一个静态三角形,但是怎么样让它动起来呢(比如说旋转)。原始的opengl程序中(非MFC环境)是通过一个循环不断调用绘图函数来实现的,在函数中控制旋转角度。但是转移到MFC后,绘图函数在OnPaint()下调用,但是它是由系统调用的,开始时只调用一次,如何不断绘制来实现动画效果呢?还有,改变窗口大小时会调用OnPaint()函数吗? 展开
 我来答
fengxingniu
2011-04-17
知道答主
回答量:27
采纳率:0%
帮助的人:13.3万
展开全部
你可以用一个定时函数Timer 来实时刷新屏幕,大体过程是:先调用Timer()函数,在Timer()函数里调用Invalidate(),这个函数会自动调用OnPaint()函数来进行实时刷新,具体每个函数的用法你可以到百度里搜搜。
追问
我下载过一个程序,上面没有用timer,只是把OnPaint()的默认的那行实现代码CPaintDC dc(this);注释掉了,在OnPaint()里不断调用绘图函数,就能实现不断绘制,为什么?谢谢
追答
原因见二楼,建议用timer()函数!
MTNHan
2011-04-17 · TA获得超过915个赞
知道小有建树答主
回答量:633
采纳率:0%
帮助的人:572万
展开全部
创建一个时钟,定时刷新
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友e81bb48
2011-04-18 · 超过45用户采纳过TA的回答
知道小有建树答主
回答量:86
采纳率:0%
帮助的人:119万
展开全部
可以通过定时器和多线程的方式刷新窗口来绘制动画。如果你的绘制窗口有CS_HREDRAW | CS_VREDRAW属性,那么当你放大缩小的时候就会有OnPaint消息,不过缩小的时候好像有点问题,不能引起重绘。注释掉CPaintDC dc(this)之后,能实现不断绘制,是与MFC的窗口绘制机制有关。在窗口改变时,MFC会把绘制区域变成无效区域,从而产生重绘消息让窗口重绘,若一直有无效区域则一直有重绘消息,则一直发生重绘。OnPaint中的CPaintDC dc(this)这句话会把无效区域变成有效,这样就只会绘制一次。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
wangtbfr
2011-04-29 · TA获得超过974个赞
知道小有建树答主
回答量:367
采纳率:0%
帮助的人:154万
展开全部
创建一个时钟定,回调函数设置为你的OpenGL显示的函数
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式