深入研究OpenGL后,才发现自己以前所用的光照和纹理都是皮毛!!!
头疼,就接着上一篇界面设置,今天记录一下菜单的设置。

一、打开资源视图/Menu/IDR_StudyTYPE

Graphics—菜单设置笔记
手动加入一个“图形学实验”,再加入一个选项“绘图一”
Graphics—菜单设置笔记
假如绘图一就是上一次绘制的图形,这样的话就需要把开始界面的图形清空,当然这很容易,我们注释掉drawpicture()函数里面的代码即可
Graphics—菜单设置笔记

二、加入事件处理程序

Graphics—菜单设置笔记
为了方便,记为OnOne()函数,不过要注意这是对视图类View.h进行操作的(还是建议了解一下View.h、App.h等)
Graphics—菜单设置笔记
这样我们直接把刚才注释的代码copy到OnOne()函数就行了?当然不可以啊!我们可以在View.cpp里面设置一个变量Case来标记绘图,这样在OnOne()函数里面,加入一句话Case = 1,然后在DrawPicture()函数里面加个判断,if(Case == 1)就执行那段被注释的代码。

我们运行一下结果,咦?还是没变化?

当然啦~~~这里简要说下原因,这是没有调用OnDraw()函数的原因。
OnDraw()函数的调用,(1)窗口刚创建的时候(2)视图窗口改变(3)向系统发送WM_PAINT消息。
这样的话,我们在OnOne()函数再加一句SendMessage(WM_PAINT);即可。
Graphics—菜单设置笔记

如果你还想加入其他绘图实验,都是一个套路。

但是如果加入的图形中既有二维图形,又有三维图形,要怎么办呢?为了保证图形显示无误,我们就舍弃掉OnSize()、OnInitialUpdate()函数,在绘图的时候加上OpenGL中的Init()、Reshape()函数即可。

二维和三维的Reshape()写法在在Visual Studio 2013下利用MFC框架配置OpenGL可以找到。

相关文章:

  • 2021-11-15
  • 2022-02-21
  • 2021-12-24
  • 2022-12-23
  • 2021-11-18
  • 2021-10-11
  • 2021-07-27
  • 2022-01-01
猜你喜欢
  • 2021-08-02
  • 2022-12-23
  • 2022-12-23
  • 2021-08-20
  • 2022-01-18
  • 2022-02-20
  • 2022-01-28
相关资源
相似解决方案