云题海 - 专业文章范例文档资料分享平台

当前位置:首页 > VC++ - 2005教程 - 习题解答2012

VC++ - 2005教程 - 习题解答2012

  • 62 次阅读
  • 3 次下载
  • 2025/6/16 0:52:34

第1章 用MFC开发Windows应用程序

习题

1.安装Visual C++.Net集成开发环境。

2.启动Visual C++ .Net集成开发环境,熟悉其菜单、工具栏和窗口的操作过程。 3.模仿书中的例子,编写“Hello,Visual C++ .Net”程序。

4.编写程序,在窗口中输出两行由字符“*”组成的字符串,中间是“爱国爱校、追求真理、勤奋踏实、艰苦朴素”。

第2章 窗口类和消息处理机制

习题

1.设计一个应用程序,当单击鼠标左键时,窗口中显示“鼠标左键按下”;当单击鼠标右键时,窗口中显示“鼠标右键按下”。

解答:

void CB01View::OnLButtonDown(UINT nFlags, CPoint point) { CDC *pDC=GetDC(); pDC->TextOut(10,10,_T(\鼠标左键按下\)); CView::OnLButtonDown(nFlags, point); }

void CB01View::OnRButtonDown(UINT nFlags, CPoint point) { CDC *pDC=GetDC();

pDC->TextOut(10,10,_T(\鼠标右键按下\)); CView::OnRButtonDown(nFlags, point); }

2.在窗口上绘制一个正方形,当鼠标单击它时,可以在客户区中任意拖动。 解答:

在View类中添加下列变量: CRect rect;

bool capture;

CPoint old;

在View类构造函数添加初始化代码: capture=false;

rect=CRect(0,0,100,100);

添加鼠标左键按下、左键释放以及鼠标移动消息处理函数,并添加处理代码,函数如下: void CMy2_2View::OnLButtonDown(UINT nFlags, CPoint point) { }

void CMy2_2View::OnMouseMove(UINT nFlags, CPoint point) { }

void CMy2_2View::OnLButtonUp(UINT nFlags, CPoint point) { }

在OnDraw函数中添加一行代码:

3.编写一个程序,在窗口显示一个实心圆,圆自动从窗口左端移动到窗口右端。 解答:

pDC->Rectangle(rect);

// TODO: Add your message handler code here and/or call default capture =false;

CView::OnLButtonUp(nFlags, point);

// TODO: Add your message handler code here and/or call default if(capture) { }

CView::OnMouseMove(nFlags, point);

CSize sz=point-old; rect=rect+sz; old=point; this->Invalidate();

// TODO: Add your message handler code here and/or call default if(rect.PtInRect(point)) { }

CView::OnLButtonDown(nFlags, point);

capture =true; old=point;

在View类中添加下列变量:

int x,y,r; x=0; y=150; r=135;

在View类构造函数添加初始化代码:

添加视图对象创建消息处理函数,并添加处理代码,函数如下: int CMy2_3View::OnCreate(LPCREATESTRUCT lpCreateStruct) { }

添加定时器消息处理函数,并添加处理代码,函数如下: void CMy2_3View::OnTimer(UINT nIDEvent) { }

修改OnDraw函数,添加代码如下: void CMy2_3View::OnDraw(CDC* pDC) { }

4.编写一个程序,要求鼠标的关标始终指向一个字符串的起始位置,随着鼠标的移动,字符串也跟随移动。

解答:

在View类中添加下列变量:

int locx,locy;

在View类中添加鼠标移动消息处理函数,函数内容如下: void CMy2_4View::OnMouseMove(UINT nFlags, CPoint point)

CMy2_3Doc* pDoc = GetDocument(); ASSERT_VALID(pDoc); pDC->Ellipse(x,y,x+r,y+r); x=x+5; CRect rect;

this->GetClientRect(&rect);

if(rect.right<=x+r) this->KillTimer(1); this->Invalidate();

CView::OnTimer(nIDEvent);

if (CView::OnCreate(lpCreateStruct) == -1)

return -1;

SetTimer(1,200,NULL); //设置定时器 return 0;

{ }

在OnDraw函数添加代码,函数如下: void CMy2_4View::OnDraw(CDC* pDC) { }

CMy2_4Doc* pDoc = GetDocument(); ASSERT_VALID(pDoc);

pDC->TextOut(locx,locy,_T(\locx=point.x; locy=point.y; Invalidate();

CView::OnMouseMove(nFlags, point);

第3章 图形设备接口

习题

1.编写一个程序,在窗口客户区绘制一幅包括太阳、蓝天、草地和房子的彩色图画。 解答:

在OnDraw函数添加代码,函数最终如下所示: void CMy3_1View::OnDraw(CDC* pDC) {

brushGrass.CreateSolidBrush(RGB(0, 255, 0)); // 画草地 pDC->SelectObject(&brushGrass); rect.top = 300;

CMy3_1Doc* pDoc = GetDocument(); ASSERT_VALID(pDoc);

CBrush *pOldBrush, brushSky, brushGrass, brushHouse,brushSun; CRect rect;

GetClientRect(&rect);

brushSky.CreateSolidBrush(RGB(127, 200, 255)); pOldBrush = pDC->SelectObject(&brushSky); pDC->Rectangle(rect);

// 画天空

搜索更多关于: VC++ - 2005教程 - 习题解答2012 的文档
  • 收藏
  • 违规举报
  • 版权认领
下载文档10.00 元 加入VIP免费下载
推荐下载
本文作者:...

共分享92篇相关文档

文档简介:

第1章 用MFC开发Windows应用程序 习题 1.安装Visual C++.Net集成开发环境。 2.启动Visual C++ .Net集成开发环境,熟悉其菜单、工具栏和窗口的操作过程。 3.模仿书中的例子,编写“Hello,Visual C++ .Net”程序。 4.编写程序,在窗口中输出两行由字符“*”组成的字符串,中间是“爱国爱校、追求真理、勤奋踏实、艰苦朴素”。 第2章 窗口类和消息处理机制 习题 1.设计一个应用程序,当单击鼠标左键时,窗口中显示“鼠标左键按下”;当单击鼠标右键时,窗口中显示“鼠标右键按下”。 解答: void CB01View::OnLButtonDown(UINT nFlags, CPoint point)

× 游客快捷下载通道(下载后可以自由复制和排版)
单篇付费下载
限时特价:10 元/份 原价:20元
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:fanwen365 QQ:370150219
Copyright © 云题海 All Rights Reserved. 苏ICP备16052595号-3 网站地图 客服QQ:370150219 邮箱:370150219@qq.com