计算机图形学——MFC绘图基础
此处使用的环境是Visual Studio 2012,版本的不同可能涉及部分操作不同。
一、创建一个MFC工程
1、双击启动visual studio,从起始页选择“新建项目”。
2、弹出如图所示界面,左侧选择“visual c++语言”,中间选择“MFC 应用程序”,修改名称以及存储位置,点击“确定”。
3、然后一路点击下一步(或者直接点击“完成”),则自动生成一个MFC 应用程序
4、点击启动调试工具拦(绿色三角)或者按F5则系统调试运行,在弹出界面中选择 “是”,弹出程序运行界面
二、新建菜单
1、选择视图—资源视图
2、选择Menu—文件名+TYPE,如果底下没有子菜单,则将其属性中的POPUP改为false。
三、实现画直线段,画矩形,画三角形
1、在“请在此键入”处,依次输入名称
2、右击“直线”,点击“添加事件处理程序”
3、消息类型为“COMMAND”,类列表选择“文件名+view”,点击“添加编辑”
4、在“// TODO: 在此添加命令处理程序代码”处编辑代码
直线代码:
CClientDC dc(this);CPen NewPen;NewPen.CreatePen(PS_SOLID,3,RGB(255,0,0));dc.SelectObject(NewPen);dc.MoveTo(20,30);dc.LineTo(200,300);
5、运行程序
点击“本地Windows调试器”,在程序运行界面中点击“简单图形”,选择直线(1处自己命名的名称)
生成结果
矩形、三角形图形生成过程与直线相同
矩形代码:
…void CMFCApplication2View::On32772()
{// TODO: 在此添加命令处理程序代码CClientDC dc(this);CPen NewPen;NewPen.CreatePen(PS_SOLID,3,RGB(255,0,0));dc.SelectObject(NewPen);dc.MoveTo(20,30);dc.LineTo(20,300);//左侧竖线dc.MoveTo(400,30);dc.LineTo(400,300);//右侧竖线dc.MoveTo(20,30);dc.LineTo(400,30);//上方横线dc.MoveTo(20,300);dc.LineTo(400,300);//下方横线}
三角形代码:
…void CMFCApplication2View::On32773()
{// TODO: 在此添加命令处理程序代码CClientDC dc(this);CPen NewPen;NewPen.CreatePen(PS_SOLID,3,RGB(255,0,0));dc.SelectObject(NewPen);dc.MoveTo(20,30);dc.LineTo(20,100);//直角边dc.MoveTo(20,30);dc.LineTo(200,30);//直角边dc.MoveTo(200,30);dc.LineTo(20,100);//斜边}
注意:保存退出vc++2012,要再次进入刚才建立的应用程序,直接点击程序文件夹内的“MFCApplication2.sln”即可。
计算机图形学——MFC绘图基础相关推荐
- 计算机图形学MFC绘图作业__在VS2017上的使用指南与编码示例
1)首先打开"Visual Studio Installer",如图: 2)单击"修改": 3)按如图顺序点击: 4)静静等待加载,最后按启动,并按" ...
- 计算机图形学实验一 《MFC绘图基础》
计算机图形学实验一 <MFC绘图基础> 视频讲解:无没啥讲的,有一些东西在实验二视频提了一下 一.MFC介绍 1.基本介绍: MFC是微软公司提供的一个类库,以C++类的形式封装了Wind ...
- 计算机图形学真实绘图实验报告,计算机图形学实验报告.doc
文档介绍: 中南大学信息科学与工程学院 实验报告 实 验 名 称 实 验 地 点 科技楼四楼 实 验 日 期 2014年6月 指 导 教 师 学 生 班 级 学 生 姓 名 学 生 学 号 提 交 日 ...
- 计算机图形学-MFC界面分屏操作
进一步美化页面啦 在MFC 框架中,为我们提供了一个csplitterwnd 类--拆分窗口类,提供分离窗口的功能. 在框架类 CMainFrame中,我们要添加一个csplitterwnd 类型的成 ...
- 【计算机图形学】OpenGl基础
文章目录 OpenGL 配置 单位 相关的库 lib和dll区别 怎样理解跨平台性 什么是回调函数 命名规则 为什么重定义? 如何绘制图元(Primitive) 基本图元 去哪里查 为什么有时候看不见 ...
- 计算机图形学一:基础变换矩阵总结(缩放,旋转,位移)
变换矩阵总结 摘要 1 2D线性变换 1.1 缩放(scaling) 1.2 剪切(shearing) 1.3 旋转(rotation) 2 3D线性变换 2.1 3维缩放(scaling),剪切(s ...
- 计算机图形学-颜色科学基础
1.物体的颜色: 2.颜色视觉机理: 三原色(不解释色盲) 对立颜色(四色学说:不解释红绿蓝产生所有颜色) 3.颜色空间: 与图形处理相关的颜色空间: RGB.CMY 与设备无关: CIE XYZ.C ...
- 【计算机图形学课程】一.MFC基本绘图函数使用方法
这是最近我<计算机图形学>课程实践编程课介绍的相关知识,主要是想通过MFC C++绘图,让学生体会下图形学相关的编程及简单的图形绘制,同时非常佩服学生的想象力,他们做得真的不错.希望这篇基 ...
- 什么是计算机图形学?(转自中国科学技术大学-刘利刚)
(如需交流,请关注公众号:神马观止) [注] 由于时常有本科学生来向笔者询问计算机图形学是做什么的,为了使得学生能够快速了解计算机图形学,有利于他们在选择研究生方向做出适合自己的选择,特撰写此文.本文 ...
最新文章
- Node.js项目实践:构建可扩展的Web应用
- menu.php,menu.php
- 模块全解======ruby的类是单继承生物、所以出现了module、实现了多继承
- LeetCode Algorithm 389. 找不同
- [No000013D].Net 项目代码风格参考
- 【Spring MVC】 maven pom.xml 错误: Cannot upgrade/downgrade to Dynamic Web Module 3.0 facet.
- 容器+AOP实现动态部署(四)
- Mysql 中 delete 与 left join 的问题
- MVC初学 - The type or namespace name 'DbContext' could not be found
- 【转】数据安全优秀思想
- string time java,【JAVA】之【string转time方法】
- linux下使用vi操作
- html audio无法播放,audio 无法播放的问题
- 一图看完双11阿里云原生技术亮点
- 【Keras】LSTM和Bi-LSTM神经网络
- python中的snip用法_Ubuntu系统中安装SNIP
- 推箱子c语言代码有注释,C语言代码实现推箱子小游戏
- 打开dashboard报错:xcelsius已经停止工作
- svn 禁止访问的问题
- Java中文生僻字排序
热门文章
- python绘制激活函数图像
- 文献阅读 ——— Pre-train, Prompt, and Predict: A Systematic Survey of Prompting Methods in NLP
- conenct的用法(2种方法)
- 刷题打卡一刷完成 总结
- 为iPhone日历添加天气和农历
- 光量子领域新突破:有望打造芯片工厂!
- Jupyter notebook用谷歌浏览器打开
- SQL Server向上取整、向下取整、四舍五入解析说明
- 以EV录屏为例详细讲解-录屏,开直播的全局配置
- AngularJS学习之angular.extend用法实例