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


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

OneSea

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值