计算机图形学OpenGL中的MFC框架划线功能实现

计算机图形学OpenGL中的MFC框架划线功能实现,第1张

1、安装VS中的MFC框架;

2、新建一个MFC文件,选择单文档,高级功能全部不勾选,其他的不用管,建立(如下图);

 

3、将OpenGLView.cpp和OpenGLView.h文件放入该新建文件的根目录;

4、在解决方案资源管理器那里添加OpenGLView的头文件和cpp文件;(这里的cpp和h文件内部已经编译好了)

5、在调试——调试属性的编译器——输入那里将opengl32.lib;glu32.lib添加上去;

 6、因为VS版本问题,有的OpenGLView和DrawLineView的头文件是“pch.h”,有的是“stdx...h”,需要将“stdx...h”都改成“pch.h”。


/7、将DrawLineView的cpp文件和h文件里面的继承的父类CView都改成COpenGLView,COpenGLView继承自它原本的CView,不用修改。


8、做到这里,如果你的项目没有报错,成功运行之后看到的应该是一个白板,没有Display里面的三角形;

如果想要显示三角形画面,需要将DrawLineView的cpp文件和h文件里面的OnDraw函数给注释掉;

然后再次运行,三角形就可以显示在屏幕上了。


9、在DrawLineView.cpp文件里面的类向导里面添加鼠标响应信息,只有这样 *** 作系统才会自动调用,如下图,再点击确定;(如果鼠标响应消息不是通过类向导添加的,而是直接复制粘贴过来的,系统不会自动调用,即系统不会响应这些函数,画面也不会出现划线功能)

有的同学可能从方法那里添加,那样不行;从cpp和h文件里手工添加,也不行,都会缺失MESSAGEMAP那里的代码,从而不能建立真正的消息映射。


 10、在鼠标响应信息里面写上相应代码,并且在DrawLineView.cpp文件里面写上划线的实现算法,比如DDA算法;ps:如果是自己写的鼠标响应信息,鼠标响应消息里面需要调用Invalidate(false);

(后续各种界面交互,都是类似逻辑,在消息响应程序里修改某些变量,而这些变量在绘制程序里使用。


因此在消息响应程序修改变量后,需要调用Invalidate函数通知系统,变量修改导致当前画面失效(即不再反映现实)了,画面需要重绘)

在DrawLineView.cpp文件里面的Display里面写格子的代码(可以用循环实现);

格子和划线功能就实现了。


11、以上记录的是 *** 作步骤,至于具体算法的代码就不放了,避免大家的作业雷同。


具体清屏函数和改变颜色的函数在此也不详细介绍。


12、以下是可能出现的报错:

 老师的解决思路:

1、opengl32.lib和glu32.lib可能没有弄好,导致OpenGL那些函数链接出问题;

2、OnSize这个可能是别的原因;

3、包含文件处理的不好,导致函数重复定义了。


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/langs/563833.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-04-03
下一篇 2022-04-03

发表评论

登录后才能评论

评论列表(0条)

保存