Windows程序设计实验报告
河南理工大学测绘学院
《Windows程序设计》实验报告
班级 _地信10-1_
姓名 _薛山_
学号 311005030124__
实验态度:1、认真 2、良好 3、一般 4、不认真 实验成果:1、优秀 2、可信 3、一般 4、不真实 实验报告:1、清晰完整 2、比较完整 3、不清晰
成绩 _________________
教师签字 _________________
交报告日期: 2012 年 月 日
Windows程序设计实验报告
实验项目一: windows API编程
一、 实验目的:
1、了解windows32 API编程的基本程序框架与编程方法。 2、掌握几个主要API函数的功能。
3、利用VC++6.0的编译环境编写C语言下的windows程序的步骤和利用其
资源管理和编译器建立windows资源的方法。
4、API编程对windows消息的处理有利于MFC下的windows编程的理解。
二、练习和总结:
1、谈谈你对windows程序事件驱动机制的理解并对windows API编程的主要步骤作简单说明。
一、 在VC++6.0环境中建立工程。
1、 选择文件菜单中的new,然后在projects选项下选择win32
application项目,设定好文件路径和工程名称,选择生成一个空工程,点击完成。
2、 在工程中新建一个.c或.cpp源码文件,主要就是建立一个简单的
windows API编程的界面。注意:该步操作中只要将老师给的代码按照老师给的实验步骤粘贴在.c或.cpp源码文件下就可以了,然后编译运行该程序,可看到程序界面:
请注意分析WinMain()函数的代码各部分的主要工作。
窗口没有加载菜单和图标资源,背景为灰色,这都可通过窗口类的下面几项设置中选择资源并加以设置:
wndclass.hIcon = LoadIcon(NULL, \wndclass.hCursor = LoadCursor(NULL, \
wndclass.hbrBackground = (HBRUSH)GetStockObject(GRAY_BRUSH); wndclass.lpszMenuName = NULL;
另外,窗口的风格设置也可通过设置函数CreateWindow(?)的第三个参数来加以设置。
这几个函数的参考请查看API参考文档。
3、 下面来给窗口加图标和菜单资源,选择Insert菜单中的Resource选
项,分别插入一个Icon和Menu的新资源,图标用于程序窗口,菜单有两个菜单项:[文件]和[帮助],下面分别有一个“退出”和“关于”子项。通过属性设置好它们的唯一ID字符串,并保存为资源文件。
第 1 页
Windows程序设计实验报告
通过文本编辑方式打开资源文件.rc和自动生成的resource.h,选取C语言API编程需要的部分并另行存盘为新的.rc文件和.h文件,两文件里的内容大概如下:注意:在此次操作中需要将.rc中的多余部分删除,另外将resource.h考进去,并做一定的修改。
运行程序,可看到如下窗口: 4、
添加两个菜单消息,添加的代码段大概如下: 运行程序,可响应菜单消息。
2、通过本次实验你的主要收获和体会。
在本次操作过程中我们学到了windows32 API编程的基本程序框架与编程方法,并且掌握了几个主要API函数的功能,以及如何利用VC++6.0的编译环境编写C语言下的windows程序的步骤和利用其资源管理和编译器建立windows资源的方法和API编程对windows消息的处理有利于MFC下的windows编程的理解。虽然刚开始的时候并没有真真正正的做出来,后来通过老师课堂上的又一次讲解,我们还是顺利的做了出来。通过此次实验我们知道了MFC主要还是理解和课后的主动自觉练习,从而达到熟练运用的状态。
实验二、文档-视图编程
1、 实验目的:
2、 了解windows MDI程序的文档模板类的作用。
3、 掌握windows 程序文档-视图框架的程序设计原理。 4、 知道视图的切分方法和单文档多视图的消息处理。
第 2 页
Windows程序设计实验报告
二、 练习和总结:
建立一个windows MDI(多文档)应用程序,利用视图切分实现对文档中管理的字符串和色彩数据的多种视图的不同控制。
一、 在VC++6.0环境中建立一个多文档工程。
二、 在工程中添加另外两个视图类,一个视图用于控制显示的数据项的设置,
一个视图用于颜色的显示。原来已生成的视图则显示字符串。
1. 利用资源编辑器添加一个如图所示的对话框资源,注意对话框的风格设为Child类型。并在此基础上利用ClassWizard生成一个基于CFormView的视图类。 在视图中添加与文档相关的获取文档指针的方法,并添加控件的变量和对控件的消息映射处理。
2. 添加另一个基于CView类的视图,并同样添加获取文档指针的方法和OnDraw()函数中的代码。
3. 在原来工程生成的基于CView类的视图中添加OnDraw()函数中的代码用于文本的显示。
三、 在CChildFrame类中添加与视图切分相关的属性项和切分代码,注意包含
相关头文件。
四、 编译工程文件,运行看效果。
注意:在此次实习中需要修改如下代码:
void CColor::OnDraw(CDC* pDC) {
CHaoDoc* pDoc = (CHaoDoc*)GetDocument(); ASSERT_VALID(pDoc);
// TODO: add draw code here CRect rect;
GetClientRect(rect);
CBrush br(pDoc->m_colorData); pDC->FillRect(rect, &br); }
void CControl::OnChangeEdit1() {
CHaoDoc* pDoc = GetDocument();
UpdateData();
pDoc->m_strData = m_str; pDoc->UpdateAllViews(NULL); }
void CControl::OnRadio1() {
CHaoDoc* pDoc = GetDocument();
第 3 页
Windows程序设计实验报告
pDoc->m_colorData = RGB(255,0,0); pDoc->UpdateAllViews(NULL); }
五、 实验感受
本次上机实习当中我们了解了windows MDI程序的文档模板类的作用, 掌握了windows 程序文档-视图框架的程序设计原理,以及知道了视图的切分方法和单文档多视图的消息处理。这一次的实习内容有点复杂,不过按照上面所列的代码进行修改就可以轻而易举的做出来,虽然此次实习靠我自己是做不出来,但是通过同学的帮助还是做了出来。然后又靠同学的讲解自己自己反复做了几遍,最终了解了其中的技巧和含义。
实验三、Windows GDI编程
1、 实验目的:
2、 了解windows GDI设备环境的获取与设置。
3、 了解windows GDI 绘图对象CPen,CBrush,CFont等的相关基本操作。 4、 掌握建立简单图形交互的图形数据管理和鼠标工具设计等。
2、 练习和总结:
练习步骤:建立一个windows SDI(单文档)应用程序,并编辑建立图形属性设置的无模式对话框、简单图形工具条等。实现直线、矩形、椭圆、多边形的交互绘制及文字显示,并能进行图形属性设置。
1、在VC++6.0环境中建立一个单文档工程。
2、通过资源编辑器编辑如下所示对话框资源和工具条资源。
注意生成对话框类后,为几个组合框添加字符串变量,为Spin控件添加控制变量,并为几个组合对话框添加初始数据。 3、为对话框类添加构造函数和变量。 4、在View类中添加数据成员。 5、在View类中添加成员函数和实现。并且分别对头文件(.h)中、源文件(.cpp)中、构造函数中添加相应的内容。以及对OnDraW()函数中添加显示文字代码在文挡类中添加相关绘图对象数据成员和方法。
第 4 页