- 1、本文档共24页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
windows消息机制及其应用
Windows消息机制及其在编程中的应用
Windows应用程序特别是交互式的应用程序从本质上讲都是由消息机制进行驱动的。因此能否正确的理解、掌握并应用消息机制在一定程度上将影响应用程序开发水平的高低和程序员编程技能的提高。现代应用程序是在使用者操作键盘和鼠标等交互设备与计算机频繁“对话”的过程中“发生”、“发展”和“灭亡”的,而这些交互过程,就是一个或多个消息的传递过程,这些消息中包含了应用程序作出反应所必需的设备信息、位置信息、数据信息以及状态信息,因此要使应用程序按照操作者的操作做出反映,必须深刻理解和熟练掌握消息机制。本文从windows操作系统原理的相关方面开始,通过例举并讲解windows编程的简单实例,深入揭示Windows消息机制的本质,并结合 c++ builder 6 的使用讲解Windows消息机制在程序开发中的应用。
1 Windows操作系统消息机制概述
1.1 Windows操作系统的消息驱动方式
大多学习者开始学习编程时,主要是在DOS编程环境下进行学习、掌握并熟练运用基本语法的,而DOS环境的应用程序是事件驱动的,和Windows操作系统的运行机理完全不同,DOS下的任何程序都是使用顺序的、过程驱动的程序设计方法。这种程序都有一个明显的开始、明显的过程以及一个明显的结束,因此通过程序就能直接控制程序事件或过程的全部顺序。
2古典Windows编程中消息机制的体现和应用
2.1古典Windows编程方式
所谓古典Windows编程方式,就是指从1985年开始为Windows 1.0编写应用程序的方法,即使用C语言撰写并原原本本的使用Windows API进行程序开发,这种方法提供给应用程序最佳的性能、最强大的功能和最大的灵活性,同时这种方法是和Windows的运行机制联系最紧密的,虽然当前提供了很多可视化的应用程序开发环境,封装了很多API函数,但是他们却只能是API函数功能的一个子集,随着编程的深入,会发现很多功能是这些封装的函数所不能解决的,最终还是要回到Windows API上来,因此学习和掌握古典Windows编程方法是很有必要的,特别对于Windows消息机制的深层次理解是至关重要的。
2.2 Windows程序的总体结构
Windows应用程序设计是一种对象导向的程序设计typedef struct tagMSG
{
HWND hwnd ;
UINT message ;
WPARAM wParam ;
LPARAM lParam ;
DWORD time ;
POINT pt ;
}MSG, * PMSG ;
其中,hwnd表示窗口句柄,message表示消息类型, wParam, lParam代表消息的参数(由各消息类别决定代表的实际意义),time代表消息发生的时间,pt代表消息发生时的鼠标位置。
消息分为队列化消息和非队列化消息,所谓队列化消息是指消息被放入消息队列由应用程序的消息循环读取,并调用响应的窗口消息处理函数进行处理,这种方式主要使用在使用者输入的情况下,也可使用在程序内部的消息发送上;所谓非队列化消息是指消息被直接送到窗口消息处理函数,这中情况主要发生在对于特定的API函数的呼叫中。
2.3.2基本Windows窗口的实现和消息循环
通过以上介绍的Windows应用的程序的总体结构,我们对于应用程序设计的基本思路、窗体实现的基本方法以及交互功能的作用已经有了一个总体上的认识,下面我结合一个具体事例,通过逐一讲解语句的方法,达到深刻认识Windows窗口程序特别是消息机制的目的。
原代码:
#include windows.h
struct
{
int iStyle ;
TCHAR * szText ;
}
button[] =
{
BS_PUSHBUTTON, TEXT (PUSHBUTTON),
BS_DEFPUSHBUTTON, TEXT (DEFPUSHBUTTON),
BS_CHECKBOX, TEXT (CHECKBOX),
BS_AUTOCHECKBOX, TEXT (AUTOCHECKBOX),
BS_RADIOBUTTON, TEXT (RADIOBUTTON),
BS_3STATE,
您可能关注的文档
- C15-25砼配合比设计书(32.5水泥).doc
- C30C40C50C35混凝土配合比设计计算书.doc
- C30自密实混凝土配合比设计及性能检验.doc
- ARM论文基于嵌入式系统LCD触摸屏的设计.doc
- C40混凝土原料性能与成品性能检石家铭测.docx
- C60高标号砼施工质量保证措施.doc
- CAD2000学习心得.doc
- c80-100混凝土浅析.docx
- AutoCAD2006选择题.doc
- CCNA入门教程.docx
- 2022-2023年安全员之B证(项目负责人)考前冲刺测试卷.docx
- 2022-2023年安全员之B证(项目负责人)考前冲刺模拟卷附有答案详解.docx
- 2022-2023年安全员之B证(项目负责人)考前冲刺检测卷附答案.docx
- 2022-2023年安全员之B证(项目负责人)考前冲刺检测卷和答案.docx
- 2022-2023年安全员之B证(项目负责人)考前冲刺检测卷包括详细解答.docx
- 2022-2023年安全员之B证(项目负责人)考前冲刺检测卷含答案讲解.docx
- 中级银行从业资格之中级公司信贷综合提升模拟卷附有答案详解.docx
- 中级银行从业资格之中级公司信贷综合提升检测卷附答案.docx
- 中级银行从业资格之中级公司信贷综合提升检测卷附答案详解.docx
- 中级银行从业资格之中级公司信贷综合提升检测卷包含答案.docx
文档评论(0)