VC+.Net案例教程和习题解答2010
更新时间:2023-10-19 23:31:01 阅读量: 综合文库 文档下载
第1章 用MFC开发Windows应用程序
习题
1.安装Visual C++.Net集成开发环境。
2.启动Visual C++ .Net集成开发环境,熟悉其菜单、工具栏和窗口的操作过程。 3.模仿书中的例子,编写“Hello,Visual C++ .Net”程序。
4.编写程序,在窗口中输出两行由字符“*”组成的字符串,中间是“爱国爱校、追求真理、勤奋踏实、艰苦朴素”。
第2章 窗口类和消息处理机制
习题
1.设计一个应用程序,当单击鼠标左键时,窗口中显示“鼠标左键按下”;当单击鼠标右键时,窗口中显示“鼠标右键按下”。
解答:
在View类中添加下列变量:
char flag;
在View类构造函数添加初始化代码: flag=' ';
添加鼠标左键按下和右键按下消息处理函数,并添加下列消息处理代码,函数如下: void CMy2_1View::OnLButtonDown(UINT nFlags, CPoint point) { }
void CMy2_1View::OnRButtonDown(UINT nFlags, CPoint point) {
// TODO: Add your message handler code here and/or call default flag='R';
// TODO: Add your message handler code here and/or call default flag='L'; Invalidate();
CView::OnLButtonDown(nFlags, point);
}
Invalidate();
CView::OnRButtonDown(nFlags, point);
修改OnDraw函数如下:
void CMy2_1View::OnDraw(CDC* pDC) { }
2.在窗口上绘制一个正方形,当鼠标单击它时,可以在客户区中任意拖动。 解答:
在View类中添加下列变量: CRect rect;
bool capture; CPoint old;
CMy2_1Doc* pDoc = GetDocument(); ASSERT_VALID(pDoc);
// TODO: add draw code for native data here
if(flag=='L')pDC->TextOut(10,10,_T(\鼠标左键按下\
if(flag=='R')pDC->TextOut(10,10,_T(\鼠标右键按下\
在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) {
// TODO: Add your message handler code here and/or call default if(capture) {
// TODO: Add your message handler code here and/or call default if(rect.PtInRect(point)) { }
CView::OnLButtonDown(nFlags, point);
capture =true; old=point;
}
}
CSize sz=point-old; rect=rect+sz; old=point; this->Invalidate();
CView::OnMouseMove(nFlags, point);
void CMy2_2View::OnLButtonUp(UINT nFlags, CPoint point) { }
在OnDraw函数中添加一行代码:
3.编写一个程序,在窗口显示一个实心圆,圆自动从窗口左端移动到窗口左端。 解答:
在View类中添加下列变量:
int x,y; x=0; y=150;
在View类构造函数添加初始化代码:
pDC->Rectangle(rect);
// TODO: Add your message handler code here and/or call default capture =false;
CView::OnLButtonUp(nFlags, point);
添加视图对象创建消息处理函数,并添加处理代码,函数如下: int CMy2_3View::OnCreate(LPCREATESTRUCT lpCreateStruct) { }
添加定时器消息处理函数,并添加处理代码,函数如下: void CMy2_3View::OnTimer(UINT nIDEvent) {
// TODO: Add your message handler code here and/or call default x=x+5; CRect r;
if (CView::OnCreate(lpCreateStruct) == -1)
return -1;
// TODO: Add your specialized creation code here SetTimer(1,200,NULL); //设置定时器 return 0;
}
this->GetClientRect(&r);
if(r.right<=x+135) this->KillTimer(1); this->Invalidate();
CView::OnTimer(nIDEvent);
修改OnDraw函数,添加代码如下: void CMy2_3View::OnDraw(CDC* pDC) { }
4.编写一个程序,要求鼠标的关标始终指向一个字符串的起始位置,随着鼠标的移动,字符串也跟随移动。
解答:
在View类中添加下列变量:
int locx,locy;
在View类中添加鼠标移动消息处理函数,函数内容如下: void CMy2_4View::OnMouseMove(UINT nFlags, CPoint point) { }
在OnDraw函数添加代码,函数如下: void CMy2_4View::OnDraw(CDC* pDC) { }
CMy2_4Doc* pDoc = GetDocument(); ASSERT_VALID(pDoc);
// TODO: add draw code for native data here pDC->TextOut(locx,locy,_T(\
// TODO: Add your message handler code here and/or call default locx=point.x; locy=point.y; Invalidate();
CView::OnMouseMove(nFlags, point); CMy2_3Doc* pDoc = GetDocument(); ASSERT_VALID(pDoc);
// TODO: add draw code for native data here pDC->Ellipse(x,y,x+135,y+135);
第3章 图形设备接口
习题
1.编写一个程序,在窗口客户区绘制一幅包括太阳、蓝天、草地和房子的彩色图画。 解答:
在OnDraw函数添加代码,函数最终如下所示: void CMy3_1View::OnDraw(CDC* pDC) {
brushHouse.CreateSolidBrush(RGB(125, 50, 0)); // 画房子 pDC->SelectObject(&brushHouse); CPoint m_pointMountain[3]; // roof
m_pointMountain[0] = CPoint(400, 200); m_pointMountain[1] = CPoint(500, 150); m_pointMountain[2] = CPoint(600, 200); pDC->Polygon(m_pointMountain, 3); pDC->SelectObject(pOldBrush); pDC->Rectangle(415,200,585,300); //door
brushSun.CreateSolidBrush(RGB(255, 0, 0)); pDC->SelectObject(&brushSun); pDC->SelectObject(&brushSun); pDC->Ellipse(30,30,100,100);
// 画太阳
brushGrass.CreateSolidBrush(RGB(0, 255, 0)); // 画草地 pDC->SelectObject(&brushGrass); rect.top = 300; pDC->Rectangle(rect);
CMy3_1Doc* pDoc = GetDocument(); ASSERT_VALID(pDoc);
// TODO: add draw code for native data here
CBrush *pOldBrush, brushSky, brushGrass, brushHouse,brushSun; CRect rect;
GetClientRect(&rect);
brushSky.CreateSolidBrush(RGB(127, 200, 255)); pOldBrush = pDC->SelectObject(&brushSky); pDC->Rectangle(rect);
// 画天空
正在阅读:
VC+.Net案例教程和习题解答201010-19
2018一级建造师考试《工程经济》考前预测卷(2)05-05
设计表现技法08-14
钢管防腐的作业指导书03-11
福州第一中学2022-2022学年高二上学期期中考试化学试卷04-13
党建工作调研报告02-25
计算机网络作业11-24
- 多层物业服务方案
- (审判实务)习惯法与少数民族地区民间纠纷解决问题(孙 潋)
- 人教版新课标六年级下册语文全册教案
- 词语打卡
- photoshop实习报告
- 钢结构设计原理综合测试2
- 2014年期末练习题
- 高中数学中的逆向思维解题方法探讨
- 名师原创 全国通用2014-2015学年高二寒假作业 政治(一)Word版
- 北航《建筑结构检测鉴定与加固》在线作业三
- XX县卫生监督所工程建设项目可行性研究报告
- 小学四年级观察作文经典评语
- 浅谈110KV变电站电气一次设计-程泉焱(1)
- 安全员考试题库
- 国家电网公司变电运维管理规定(试行)
- 义务教育课程标准稿征求意见提纲
- 教学秘书面试技巧
- 钢结构工程施工组织设计
- 水利工程概论论文
- 09届九年级数学第四次模拟试卷
- 习题
- 解答
- 案例
- 教程
- 2010
- Net
- VC
- 《二十四城记》中小人物的坚定-2019年精选文档
- 2009年高考语文试题及答案(重庆卷)
- Java核心技术机试练习题
- 专支原体肺炎合并渗出性胸膜炎15例临床分析论文
- SZS型燃油燃气过热蒸汽锅炉技术参数表
- 2016年河北省衡水中学高三文科一模数学试卷
- 高英第六册修辞整理
- 起重机械生产安全事故应急救援预案
- 苏州市药店名录1821家
- 江苏省扬州市江都区八年级上学期期末考试数学试题
- 分子杂化轨道学案
- 财务管理基础理论与实务第十章
- 外墙铝合金窗安装施工方案
- 浙江省政府采购供应商注册及诚信管理暂行办法解读
- 淘宝直通车车手基础认证
- 账户管理工作总结
- “人均受教育年限”计算方法探讨
- 基础测量学模拟题
- 自考02197概率论与数理统计(二)历年真题分章训练
- 行测白金课堂之二:《二十道题讲透数学运算》