Visual Studio 2010——第一个Visual C++.NET程序
实验环境:Windows XP,Visual Studio 2010 Ultimate
1 创建项目
1.1 文件>>新建>>项目,选择“其他语言”>>Visual C++,选中“MFC应用程序”。项目名改为“First”。如下图所示:
1.2 在上图中,单击确认后,将会弹出”MFC应用向导“,在其中的”应用程序类型“界面中,设置如下图所示。
1.3 直接点击”完成“,其他的保存默认设置即可。
2 点击菜单栏的“视图”,依次找到“解决方案资源管理器”,“工具箱”,“类视图”,“资源视图”和“属性窗口”,分别单击它们。菜单如下图所示。
创建好工程后,效果图如下图所示
3 为视图类添加颜色成员变量m_nCurColor和绘图函数DrawCircle
3.1 在“类视图”中找到CFirstView(视图类),右键单击,将会弹出一个向导,通过这个向导可以向这个类中添加变量和函数。如下图所示。
3.2 为CFirstView添加一个变量,如下图所示意。
3.3 为CFirstView添加一个函数,如下图所示。
3.4 添加定时器。
在“类视图”中右键单击,在弹出来的对话框中选择“属性”,在“属性”的上方,选择“消息”,在消息列表中找到WM_TIMER,在其右侧的下拉选项中选中OnTimer。如下图所示。
3.5 添加启动和停止按钮
3.5.1 双击“资源视图”中的Menu下的IDR_MAINFRAME,如下图所示。
3.5.2 在打开的主菜单中添加“设置”菜单,为“设置”添加“启动”和“停止”两个下拉菜单,他们的ID分别为ID_START和ID_STOP。
通过右击菜单,选择“属性”去设置。如下图所示。
3.5.3 为“启动”和“停止”添加事件处理函数。
右击“启动”,在弹出来的对话框中选择“添加事件处理程序”。如下图所示。
在弹出来的“事件处理程序向导”中,消息类型选择“COMMAND”,类列表选择CFirstView,然后单击“添加编辑”,即可在CFirstView类中
添加了一个OnStart()函数。
用同样的方法为“停止”添加事件处理函数。
4 添加代码
4.1 在CFirstView类的构造函数中,将m_nCurColor变量赋值为-1.如下所示。
CFirstView::CFirstView(): m_nCurColor(0)
{// TODO: 在此处添加构造代码m_nCurColor=-1;//m_nCurColor表示当前需要让哪种颜色的灯闪烁。}
4.2 完善刚才添加的DrawCircle函数,如下所示。
int CFirstView::DrawCircle(int CurColor, CDC* pDC)
{pDC->Rectangle(80,80,220,440);CRect rRect(100,100,200,200);CRect gRect(100,210,200,310);CRect yRect(100,320,200,420);CBrush rBrush(RGB(255,0,0));CBrush gBrush(RGB(0,0,255));CBrush yBrush(RGB(255,255,0));CBrush wBrush(RGB(255,255,255));CBrush *pOldBrush;if(CurColor==0)//CurColor表示当前红绿灯的颜色{pDC->Ellipse(&gRect);pDC->Ellipse(&yRect);pOldBrush=pDC->SelectObject(&rBrush);pDC->Ellipse(&rRect);}else if(CurColor==1){pDC->Ellipse(&rRect);pDC->Ellipse(&yRect);pOldBrush=pDC->SelectObject(&gBrush);pDC->Ellipse(&gRect);}else if(CurColor==2){pDC->Ellipse(&rRect);pDC->Ellipse(&gRect);pOldBrush=pDC->SelectObject(&yBrush);pDC->Ellipse(&yRect);}else{pOldBrush=pDC->SelectObject(&wBrush);pDC->Ellipse(&rRect);pDC->Ellipse(&gRect);pDC->Ellipse(&yRect);}pDC->SelectObject(pOldBrush);return 0;
}
4.3 完善定时器函数OnTimer(),如下所示。
void CFirstView::OnTimer(UINT_PTR nIDEvent)
{// TODO: 在此添加消息处理程序代码和/或调用默认值m_nCurColor=(++m_nCurColor)%3;Invalidate();CView::OnTimer(nIDEvent);
}
4.4 为“启动”和“停止”添加事件处理响应。
void CFirstView::OnStart()
{// TODO: 在此添加命令处理程序代码SetTimer(1,1000,NULL);
}void CFirstView::OnStop()
{// TODO: 在此添加命令处理程序代码KillTimer(1);m_nCurColor=-1;Invalidate();
}
4.5 修改OnDraw函数
OnDraw函数是创建工程的时候就已经自动生成的了。由于他的pDC参数被注释了,因此要去掉其注释。并且在//TODO下方添加代码。如下所示。
void CFirstView::OnDraw(CDC* pDC)
{CFirstDoc* pDoc = GetDocument();ASSERT_VALID(pDoc);if (!pDoc)return;// TODO: 在此处为本机数据添加绘制代码DrawCircle(m_nCurColor,pDC);
}
5 调试
在Visual Studio 2010 主菜单中单击“启动”|“启动调试”,生成可执行文件后,在程序的运行界面上,单击我们创建的“设置”|"启动"菜单,即可看到
红绿蓝三种颜色的“灯”循环点亮/熄灭。如下图所示。
6 工程源码。http://download.csdn.net/detail/q1302182594/5213571。
7 本项目的运行流程分析,请看《Visual Studio 2010——MFC应用程序调用顺序分析》。
8 参考文献
荣钦科技:李淑馨,陈伟 编著.Viusal C++ 2008程序设计完全自学教程.北京:清华大学出版社,2009
吕智,马瑞力等编著.Visual C++.NET精彩编程百例.北京:中国水利水电出版社,2004
梁兴柱主编.Visual C++.NET程序设计.北京:清华大学出版社,2010
Visual Studio 2010——第一个Visual C++.NET程序相关推荐
- 使用Visual Studio 2010 创建简单的Silverlight应用程序
使用Visual Studio 2010 创建简单的Silverlight应用程序 Silverlight是创建动态的引人的RIAs(Rich Internet Application)的新方法.这里 ...
- Visual Studio 2010开发AutoCAD 2012 .net 应用程序调试时断点不起作用
AutoCAD 2012系列产品很快就要正式发布了,对于.net 开发者来说,VS2010无疑是最好用的工具,所以也有好多人在VS2010和AutoCAD 2012 beta版上做开发测试.你在开发时 ...
- 需要更新的以前的visual studio 2010实例Microsoft Visual Studio 2010 Service Pack 1(exe)
安装2012的时候假如出现这个错误:需要更新的以前的visual studio 2010实例. 那么安装一下Microsoft Visual Studio 2010 Service Pack 1(ex ...
- 给Visual Studio 2010中文版添加Windows Phone 7模板
给Visual Studio 2010中文版添加Windows Phone 7模板(解决Express版本只有英文语言的 (方法一): 装了WP7的SDK,会自动安装Visual Studio Exp ...
- Visual Studio 2010 Ultimate敏捷功能特性(上)
随着软件开发日趋国际化,对软件的质量要求和管理也随之增高.微软看到了应用程序生命周期管理在业界逐渐被接受认可的趋势,并宣称VSTS2010将会是一个革命性的.Net软件开发以及管理工具的产品,预计在2 ...
- ASP.NET 4 和 Visual Studio 2010 Web 开发概述
声明:本文是ASP.NET 白皮书 ASP.NET 4 and Visual Studio 2010 Web Development Overview 的阅读摘要,只是本人的学习记录,并非完整翻译,仅 ...
- Visual Studio 2010中C++项目升级指南
如何升级? Visual Studio 2010支持来自VC6.Visual Studio 2002.Visual Studio 2003.Visual Studio 2005和Visual Stud ...
- 【转】【UML】使用Visual Studio 2010 Team System中的架构师工具(设计与建模)
Lab 1: 应用程序建模 实验目标 这个实验的目的是展示如何在Visual Studio 2010旗舰版中进行应用程序建模.团队中的架构师会通过建模确定应用程序是否满足客户的需求. 你可以创建不同级 ...
- 为Visual Studio 2010添加HTML5的项目模板
HTML5时代来了,还不为你的Visual Studio 2010添加HTML5的项目模板!!! 本文在简单不过了,就是为你的Visual Studio2010创建一个项目模板,一个HTML5的项目模 ...
最新文章
- Javascript跨域后台设置拦截
- 为什么要划分物料组_SAP
- JS常用的表单验证(数字、长度,汉字,邮箱,手机号,身份证等)
- Vue 2.0 入门系列(15)学习 Vue.js 需要掌握的 es6 (2)
- 注册表文件(*.reg)的编写及应用
- java 改为matlab_用面向对象的方法将一段JAVA代码转化为matlab
- 如何启用sqlplus的AutoTrace功能
- mysql ocp考试准备多久_MySQL 5.7OCP考试经验分享。
- 5分钟商学院学习笔记
- matlab clc,close,close all,clear,clear all,clf 作用区别
- 作品交流:调制解调-勘误情况
- css画横线箭头_CSS绘制箭头
- 游戏的革命:手机定位游戏
- python画立体爱心_Python画3D心形
- 讨伐Zookeeper
- PHP函数计算中英文字符串长度的方法
- L1-033 出生年-PAT 团体程序设计天梯赛 GPLT
- 观小林coding图解网络总结
- c# 利用AForge.NET组件操作摄像头
- 【php毕业设计】基于php+mysql+apache的课程网站管理系统设计与实现(毕业论文+程序源码)——课程网站管理系统
热门文章
- 图片服务器部署(docker部署和分离部署)
- GetMessage TranslateMessage DispatchMessage 和PeekMessage
- 华为Linux版笔记本销量情况,HUAWEI 华为 MateBook X Pro(2019)笔记本电脑 (i5-8265U、8GB、512GB、Linux)...
- C++多态及重载(overload),覆盖(override),隐藏(hide)的区别
- 汇信助力顺利通过海关AEO高级认证
- equalsIgnoreCase() 方法
- Android各种屏幕分辨率(VGA、HVGA、QVGA、WQVGA、WVGA、FWVGA) 详解 .
- Mac 上 设置 语音呼出Siri
- Java基于Redis实现分布式锁(原子性操作、续命)——90%以上都搞错了
- 用c语言设计一个年历系统流程图,用C语言编写一个年历.docx