Graphics—菜单设置笔记

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

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

1098689-20170227101900766-926077959.png
手动加入一个“图形学实验”,再加入一个选项“绘图一”
1098689-20170227102015376-1740753161.png
假如绘图一就是上一次绘制的图形,这样的话就需要把开始界面的图形清空,当然这很容易,我们注释掉drawpicture()函数里面的代码即可
1098689-20170227102438876-446086817.png

二、加入事件处理程序

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

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

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

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

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

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

转载于:https://www.cnblogs.com/Czhenyu/p/6472576.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值