- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
西北工业大学
《综合创作训练》20013年 2月
实验目的及要求
1.实验目的:
理解WindowsWindows进程及其创建的机制
理解Windows窗口概念;
掌握indows消息机制。学会使用VC++应用程序;
;PC机最低配置:2G Hz以上CPU;1G以上内存;1G自由硬盘空间;
VC++6.0或者更高版本VC++;
3) .编译并运行程序后,出现如下效果:
对话框是否为窗口?此外还有那些界面元素是窗口?
答:1).对话框是窗口。对话框时Windows的一种特殊窗口。不能改变窗口大小,没有最大化、最小化按钮。一般包括标题栏、选项卡(标签)、文本框、列表框、命令按钮、单选按钮、复选按钮等。
2).窗口的元素包括:标题栏、菜单栏、Windows系统菜单、最小化按钮、最大化按钮、恢复按钮、关闭按钮、可改变大小的边框、窗口客户区、垂直滚动条和水平滚动条
4.2创建win32窗口程序
4.2.1 程序框架搭建
图
什么是句柄?句柄,是整个windows编程的基础。一个句柄是指使用的一个唯一的整数值,即一个四字节长的数值,来标志应用程序中的不同对象和同类对象中的不同的实例,诸如,一个窗口,按钮,图标,滚动条,输出设备,控件或者文件等。应用程序能够通过句柄访问相应的对象的信息,但是句柄不是一个指针,程序不能利用句柄来直接阅读文件中的信息。如果句柄不用在I/O文件中,它是毫无用处的。 句柄是windows用来标志应用程序中建立的或是使用的唯一整数,windows使用了大量的句柄来标志很多对象。 HINSTANCE hPrevInstance //本模块的实例句柄
HWND hwnd //窗口句柄
HDC hdc; //DC句柄
2.一个基本的win32窗口程序创建有哪几个步骤,请以本程序为例说明(要有相应代码截图)。
(1)注册窗口类(RegisterClassEx)
(2)创建窗口
(3)在桌面显示窗口
(4)更新窗口客户区
(5)进入无限的消息获取和处理循环。首是获取消息(GetMessage),如果有消息到达,则将消息分配到回调函数处理(DispatchMessage),如果消息是WM_QUIT,则GetMessage函数返回False,整个消息循环结束。消息具体的处理是在MainWndProc函数中进行的。
(1)注册窗口
注册窗口类的API该函数就是RegisterClassEx,最后逇“Ex”是扩展的意思,因为他是Win16的RegisterClass函数的扩展。一个窗口类定义了窗口的一些主要性质,如:光标、图标背景色和负责处理消息的窗口函数等。这些属性定义在WNDCCLASSEX结构中。
指定窗口类大小和风格
指定窗口消息处理函数地址
把本程序的实例句柄(WinMain参数之一)传给成员
设置光标和图标
指定窗口重画客户区时使用的画刷
指定窗口了名称
注册窗口
(2)创建窗口
要创建窗口,用注册的窗口类的类名调用CreateWindowEx函数即可
(3)在桌面显示窗口
(4)刷新窗口客户区
(5)进入无限的消息循环
利用GetMessage函数可以从调用线程的消息队列中取出消息来填充MSG结构
一个WM——QUIT消息会促使GetMessage函数值返回0,从而结束消息循环。
DispatchMessage函数分发一个消息到对应窗口的窗口函数。
4.2.2 程序完善
简述Windows的消息处理机制(画图且配文字说明)
本程序中,MainWindowProc仅选用了WM_PAINT和WM_DESTROP两个消息进行处理
如上图所示,处理WM_PAINT消息时总是以调用BeginPaint函数开始。该函数的第一个参数是窗口句柄,第二个参数是指向PAINTSTRUCT结构的指针。调用了BeginPaint函数后,程序调用了TextOut函数。此函数用于在hdc指定的设备上显示文字。
WM_DESTROY是窗口函数必须处理的消息。当用户关闭窗口,而且出窗口已经响应了用户的请求正在关闭时,消息处理函数就会收到一个WM_DESTROY消息。当接收到这个消息的时候,说明窗口正在销毁。MainWndProc函数调用PostQuitMesage函数来响应此消息。
PostQuitMesage向程序的消息队列中插入一个WM_QUIT消息。若GetMessage函数从消息队列中取得的消息是WM_QUIT,他将返回0,从而促使WinMain函数离开消息循环,然后执行
此时,msg.wparam值传给PostQuitMesage函数的参数值。Return语句将使WinMain函数返回
原创力文档


文档评论(0)