Visual Studio下创建MFC项目,并结合OpenGL实现一个小程序
Visual Studio下创建MFC项目,并结合OpenGL实现一个小程序
一:自己的理解
MFC:是微软的一个桌面应用程序架构,在里面可以轻松调用已经实现好的API,比如对鼠标和键盘的相应等。
将OpenGL放到MFC框架当中,在MFC中完成OpenGL的初始化,使用MFC的消息响应函数控制OpenGL场景漫游,绘制模式的改变,实现相应的功能。
有问题的小伙伴可以在下面留言 >_< 交流邮箱 1410608759@qq.com
二:环境
Visual Studio 2019
OpenGL:是基础的图形绘制库,有很多实现版本,这里使用的是GLEW。
三:配置步骤
所需资源见下述百度网盘链接
链接:https://pan.baidu.com/s/1bKtF_VS3Je8bsBHpLLn6zA
提取码:lr2i
3.1:下载Visual Studio
推荐下载visual studio2019
运行下载程序:vs_community__b137843c13f44921b06a468921cea3fc,选择安装Visual Studio 2019,并勾选MFC组件。详细过程见下述链接。
在vs2019上安装MFC-百度经验 (baidu.com)
3.2:创建项目并进行配置
1:创建MFC项目。
——》运行Visual Studio,点击创建新项目
——》在搜索框搜索MFC,并选择搜索结果点击下一步
——》为新项目命名,并选择项目存储位置
——》按照下述两图对项目进行设置,最后点击完成
——》创建完成后会在Visual Studio中自动打开项目,修改项目环境为x64。
2:配置MFC
——》在项目文件夹下新建include和lib文件夹,并将百度网盘中对应的内容放置到两个文件夹下
——》右击解决方案名称选择属性进行配置
——》点击调试项,并修改右侧的工作目录为项目文件夹目录
——》点击VC++项,并修改右侧包含目录和库目录为新创建的include和lib目录
——》点击链接器,选择输入,修改附加依赖项。最后依次点击确定,完成配置。
——》点击顶部的调试器按钮,运行程序。正常运行会出现以下结果。
——》在项目文件夹下会生成x64文件夹,将百度网盘中的glew32.dll文件放置到Debug文件夹下。并再次运行程序。
3:添加代码
——》点击源文件——》点击添加——》类
——》按照如下方法依次添加百度网盘的各类。一个类包含一个头文件.h和实现文件.cpp,在创建的时候会同时创建。注意名称最好和百度网盘中的保持一直,这样点击确定之后就可以直接将内容复制过来。
4:修改View.cpp文件。创建MFC项目之后,会有三个主类,假设你的项目名称为 MyProjection,则会有MyProjection、MyProjectionDoc、MyProjectionView三个主类。这里主要修改View类。修改的主要目的是初始化OpenGL一些操作,并添加一些响应函数,比如鼠标,键盘等的相应函数用来控制OpenGL场景。这里将修改后的代码放到百度网盘中,可以对照着进行修改,修改或添加的地方已经用//**********符号框起来。只需修改这些部分即可。注意在.h中添加成员变量或函数成员之后还需要在.cpp文件中实现。
5:添加消息响应函数。
——》点击Visual Studio顶部视图按钮,并点击类视图,这样在右方就会出现类视图按钮,点击项目名称找到MyProjectionView类,并右击选择属性。
——》点击下方小窗格,添加一些消息响应函数。消息相应函数名称在百度网盘的View.h文件中,如下右图所示。
——》注意拿OnCreate消息相应函数来说,它对应的消息名称为WM_CREATE,其他消息的对应关系是类似的。找到之后点击右边灰色小箭头选择添加,之后在View.h和View.cpp中就可以找到该函数的声明与实现。这个过程是自动的,当添加完所有的消息响应函数之后,View.h中的内容就和上右图一样了。然后就可以按照百度网盘中的代码进行修改了。
6:修改Ribbon工具栏。
——》点击Visual Studio顶部的视图按钮,并选择其他窗口中的资源视图,选择之后在右方就会出现资源视图按钮。按照下图进行选择,并双击IDR_RIBBON。
——》可以修改窗口的组件,右击相应的组件可以删除。这里我们清除掉所有的组件。然后在左侧的工具箱中选择按钮拖动到窗口中进行添加。如下中图和右图所示。
——》为Button1添加消息相应函数。可以按照需要修改名字,点击Button1,在右下角可以看到它的属性,这里我们修改描述文字为3D,如下左图所示。然后右击3D按钮选择添加事件处理程序。修改类列表为View类,如下右图所示。点击确定,此时在View.h和View.cpp中会自动添加这个消息相应函数的头文件和实现文件。
——》按照百度网盘中View.h和View.cpp文件内容修改相应内容。
这样就完成了整个流程。最后点击顶部运行,得到如下结果。点击3D按钮,实现一个球体的绘制。项目中鼠标移动控制还未实现,可以使用键盘 W(前进) S(后退) A(左转) D(右转) Z(抬高) X(降低) F(改变绘制模式)