- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Delpi中的Windows API编程初步
Delpih中的Windows API编程初步
使用RAD类型工具的人越来越多了,虽然我对于RAD类的工具向来不多作评议,但我还是常常使用的。所以我深深的知道这类工具虽然给我们带来了便利,使我们能不用将更多的精力放在界面上,但同时也将初学者紧紧的圈在了他所提供的控件和组件中。所以很多人并不能真正的了解windows的消息驱动原理以及windows的运作过程。本文中我们就一起来学习一下windows的运作过程,使我们对delphi这样一个优秀的编程工具有一个新的认识,并对windows下的程序编写有更深刻、透辟的了解和认识。一、消息的定义 我们先从使用的角度看看windows的运作过程。我们都知道windows是一个多任务的平台,使用这个平台,我们可以一边工作,一边听歌曲,等等。所以对于这个操作平台可以想象到它除了一般操作系统所提供的对文件系统,内存系统等的管理之外,更重要的就是我们所熟知的消息驱动了,也就是说,要通过一定的方法和结构可以给每一个运行中的程序实例以及其中的每一个窗口传递其中所触发的事件。Windows中究竟是怎样做到的呢?让我们打开安装delphi的目录,在其中的source\rtl\Win\Windows.pas文件(或者在一个工程文件,找到uses,在其中找到Windows,然后按下Ctrl键,用鼠标点击单词),在其中的第18919行,我们可以看到这样一个结构的定义:{ Message structure }PMsg = ^TMsg ;tagMSG = packed recordhwnd : HWND ;message : UINT ;wParam : WPARAM ;lParam : LPARAM ;time : DWORD ;pt : TPoint ;end ;{ $ EXTERNALSYM tagMSG }TMsg = tagMSG ;MSG = tagMSG ;{ $ EXTERNALSYM MSG } 其中hwnd字段表示触发了消息的窗口的ID,由此可以保证消息正确的发送到每一个窗口去。 Message 表示消息的类型,其中更细致的解释要通过wParam和lParam一起来进行,不同的消息,wParam和lParam的值也就不相同。time用来记录消息触发的时间。Pt则表示触发的位置(毕竟window中有了鼠标)。我们也可以用同样的方法打开Messages文件。其中定义了windows中的绝大部分消息和结构。下面是我们截取的其中一部分。const{ $ EXTERNALSYM WM_NULL }WM_NULL = $0000 ;{ $ EXTERNALSYM WM_CREATE }WM_CREATE = $0001 ;{ $ EXTERNALSYM WM_DESTROY }WM_DESTROY = $0002 ;{ $ EXTERNALSYM WM_MOVE }WM_MOVE = $0003 ;{ $ EXTERNALSYM WM_SIZE }WM_SIZE = $0005 ;…… ……WM_APP = $8000 ;{ NOTE : All Message Numbers below 0x0400 are RESERVED }{ Private Window Messages Start Here }{ $ EXTERNALSYM WM_USER }WM_USER = $0400 ;…… ……{ Dialog messages }{ $ EXTERNALSYM DM_GETDEFID }DM_GETDEFID = ( WM_USER+0 ) ;{ $ EXTERNALSYM DM_SETDEFID }DM_SETDEFID = ( WM_USER+1 ) ;{ $ EXTERNALSYM DM_REPOSITION }DM_REPOSITION = ( WM_USER+2 ) ;{ $ EXTERNALSYM PSM_PAGEINFO }PSM_PAGEINFO = ( WM_USER+100 ) ;{ $ EXTERNALSYM PSM_SHEETINFO }PSM_SHEETINFO = ( WM_USER+101 ) ;{ Button Notification Codes }…… …… 可以看到,windows中每一个消息都对应着一个唯一的数值。当然我们也可以定义自己的消息,它的数值只要定义在WM_USER之后,保证和其中的定义不想重复即可。二、消息的接收 消息到是有了,但怎样才能让程序以及窗口接收到呢?还是从使用的角度考虑,可以想象到,对于一个程序或窗口可以接收到来自鼠标、
您可能关注的文档
- 2009年糖行情回顾及2010年展望.doc
- 2009年贵州省事业单位考试公共础知识真题及答案解析.doc
- 2009年贵阳市事业单位考试《综合知识能力测试》试卷.doc
- 200多职位说明书及考核标准.doc
- 2010-2013年中婴幼儿用品连锁业市场前景预测与投资战略研究报告.doc
- 2010-2015年国护肤品行业投资环境调查及市场研究报告.doc
- 2010-2015年济南房地产行业发展前景分析及投资险预测报告.doc
- 2010国化妆品行业研究报告.doc
- 2010届毕论文实例分析.doc
- 2010夏最受瞩目配饰精品汇总.doc
- 2025年无人机低空医疗物资投放社会效益报告.docx
- 2025年再生塑料行业包装回收利用产业链重构研究.docx
- 《AI眼镜周边产品市场机遇:2025年终端销售与需求增长洞察》.docx
- 2025年坚果加工行业深加工技术突破与市场拓展策略报告.docx
- 2025年通信芯片行业技术竞争与未来趋势报告.docx
- 《2025年生鲜电商配送冷链事故分析与预防措施》.docx
- 《商业航天融资新趋势2025民营卫星企业资本涌入估值分析市场动态》.docx
- 2025年能源绿色健康行业创新技术与市场应用报告.docx
- 2025年无人机低空医疗救援通信方案分析报告.docx
- 2025年烹饪机器人行业市场集中度分析报告.docx
最近下载
- 中国马克思主义与当代 2024版 教材课后思考题答案.docx
- 人工智能推动医学研究的创新突破.pptx VIP
- 玄隐遗密(含黄帝内经).pptx VIP
- 《社会调查研究与方法》期末复习考试题库(带答案).docx VIP
- 创业基础(暨南)中国大学MOOC慕课 章节测验期末考试答案(期末考试题目从章节测验中选出,题目没对上,可以在章节测验中查找).docx VIP
- 消防中级维保考试题库2000题.pdf
- 眼的解剖与生理.ppt VIP
- 上汽荣威R550维修手册1_描述与运作 ——原厂 2009 390 页 pdf.pdf VIP
- 学习华为:以客户为中心的营销体系.pptx VIP
- 家长会心得体会五年级简短9篇.docx VIP
原创力文档


文档评论(0)