实验二_2010303449_毛翠_2010303451_张羚璐_第1页
实验二_2010303449_毛翠_2010303451_张羚璐_第2页
实验二_2010303449_毛翠_2010303451_张羚璐_第3页
免费预览已结束,剩余1页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、西北工业大学综合创作训练实验报告学院:软件与微电子学院学 号:51 49姓名:张羚璐 毛翠专 业:软件工程实验时间:实验地点:毅字楼指导教师:西北工业大学20013年2月一、实验目的及要求1. 实验目的:1)理解 Windows内核对象概念;2)理解Windows进程及其创建的机制;3)理解 Windows窗口和句柄概念;4)掌握Windows消息机制。2. 实验要求:1)学会使用VC+创建win32应用程序;2)能够独立编写win32窗口程序;二、实验设备(环境)及要求1)PC机最低配置:2G Hz以上CPU; 1G以上内存;1G自由硬盘空间;2)VC+6.0或者更高版本VC+ ;三、实验内

2、容与步骤4.1创建一个Win32工程实例创建过程及部分截图如下:1)、打开 Microsoft Visual C+ 6.0 ,并创建一个控制台项目 exercise2,;2)、关键程序代码如下截图调用 API 函数 MessageBox3).编译并运行程序后,出现如下效果:1. 对话框是否为窗口?此外还有那些界面元素是窗口?答:1).对话框是窗口。对话框时 Windows的一种特殊窗口。不能改变窗口大小, 没有最大化、最小化按钮。一般包括标题栏、选项卡(标签) 、文本框、列表框、 命令按钮、单选按钮、复选按钮等。2).窗口的元素包括:标题栏、菜单栏、Windows系统菜单、最小化按钮、最大化按

3、钮、恢复按钮、关闭按钮、可改变大小的边框、窗口客户区、垂直滚动条和 水平滚动条4.2创建win32窗口程序程序框架搭建图1. 什么是句柄?程序中创建了哪些句柄,请全部列出。答:句柄,是整个windows编程的基础。一个句柄是指使用的一个唯一的 整数值,即一个四字节长的数值,来标志应用程序中的不同对象和同类对象中的 不同的实例,诸如,一个窗口,按钮,图标,滚动条,输出设备,控件或者文件 等。应用程序能够通过句柄访问相应的对象的信息,但是句柄不是一个指针,程序不能利用句柄来直接阅读文件中的信息。如果句柄不用在I/O文件中,它是毫无用处的。句柄是win dows用来标志应用程序中建立的或是使用的唯一

4、整数,wi ndows使用了大量的句柄来标志很多对象。本程序中创建的句柄所示如下:HINSTANCE hln sta nee, /本模块的实例句柄HINSTANCE hPrevI nsta nee本模块的实例句柄HWND hwnd/ 窗口句柄HDC hde; /DC 句柄2. 个基本的win32窗口程序创建有哪几个步骤,请以本程序为例说明(要有相 应代码截图)。(1) 注册窗口类(RegisterClassEx)(2) 创建窗口(3) 在桌面显示窗口(4) 更新窗口客户区(5) 进入无限的消息获取和处理循环。首是获取消息(GetMessage),如果有 消息到达,则将消息分配到回调函数处理(

5、DispatchMessage),如果消息是 WM_QUITW GetMessage函数返回False,整个消息循环结束。消息具体的处理 是在MainWndProc函数中进行的。(1)注册窗口注册窗口类的API该函数就是RegisterClassEx,最后逇“ Ex”是扩展的意思, 因为他是 Win16的RegisterClass函数的扩展。一个窗口类定义了窗口的一些主 要性质,如:光标、图标背景色和负责处理消息的窗口函数等。这些属性定义在 WNDCCLASSEX构中。指定窗口类大小和风格指定窗口消息处理函数地址把本程序的实例句柄(Win Main参数之一)传给成员设置光标和图标指定窗口重画客

6、户区时使用的画刷指定窗口了名称注册窗口(2)创建窗口要创建窗口,用注册的窗口类的类名调用CreateWi ndowEx函数即可(3 )在桌面显示窗口(4 )刷新窗口客户区(5)进入无限的消息循环利用GetMessage函数可以从调用线程的消息队列中取出消息来填充MS结构一个Wl- QUIT消息会促使GetMessage函数值返回0,从而结束消息循环。 DispatchMessage函数分发一个消息到对应窗口的窗口函数。程序完善简述Windows的消息处理机制(画图且配文字说明)本程序中,Ma inWin dowProc仅选用了 WM_PAIN和WM_DESTR两个消息进行处 理如上图所示,处理

7、WM_PAIN消息时总是以调用BeginPaint函数开始。该函数的 第一个参数是窗口句柄,第二个参数是指向PAINTSTRUCT结构的指 针。调用了 Beg in Pai nt函数后,程序调用了 TextOut函数。此函数用于在hdc 指定的设备上显示文字。WMDESTROY是窗口函数必须处理的消息。当用户关闭窗口,而且出窗口已经响应了用户的请求正在关闭时,消息处理函数就会收到一个WMDES TROY消息。当接收到这个消息的时候,说明窗口正在销毁。Mai nWndProc函数调用PostQuitMesage函数来响应此消息。PostQuitMesage向程序的消息队列中插入一个 WM_QUI

8、消息。若GetMessage函 数从消息队列中取得的消息是 WM_QU|T他将返回0,从而促使WinMain函数离 开消息循环,然后执行此时,msg.wparam值传给PostQuitMesage函数的参数值。Return语句将使Win Ma in函数返回,程序运行结束。4.3计算器计算器代码运行如下:四、实验总结内核对象:(1)内核对象只是内核分配的一个内存块,并且只能由该内核访问。该内存块是一种数据结构,它的成员负责维护该对象的各种信息。(2)内核对象的数据结构只能被内核访问,因此应用程序无法在内存中找到这些数据结构并直 接改变它们的内容。(3)当调用一个用于创建内核对象的函数时,该函数就返回 一个用于标识该对象的句柄。为了使操作系统变得更加健壮,这些句柄值是与进 程密切相关的。Windows进程及其创建的机制:在实验 4.1中实现五、问题分析与讨论

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论