文章分类 | 推荐文章 | 最新文章 | 热点文章 | 最新软件 | 国产软件 | 国外软件 | 汉化补丁 | 设为首页 | 加入收藏
网站首页 软件下载
数码学院 网络学院
业界资讯 | 图形图像 | 操作系统 | 网络冲浪 | 工具软件 | 办公软件 | 媒体动画 | 精文荟萃 | 认证考试 | 网站建设 | 技术开发 | 专栏
当前位置:abcdown网络学院程序开发DelphiDelpih 中的Windows API编程初步
精品广告
推荐TOP10
·利用Delphi编写Socket通信程序
·拦截其它程序的网络数据封包
·Delphi编程根据IP地址得到主机名
·Delphi 程序员代码编写标准指南
·用DELPHI开发自动化服务器
·将日期转化为汉语的形式
·加密ACCESS数据库增加安全性
·使用TCP/IP协议实现聊天程序
·在Delphi中控制扫描仪
阅读TOP10
·在Delphi中控制扫描仪
·Delphi中DLL的创建和使用(1)
·DELPHI多层分布式开发(2)
·利用Delphi 5.0开发OLE自动化控制器操纵Excel
·实现高速文件拷贝
·Delphi下“培养”自己的简单木马
·DELPHI多层分布式开发(1)
·DBGrid使用全书(三)
·Delphi多层开发方案比较
·Delphi 6 SOAP 源码中的BUG修正
·ASC II 完整码表及简介
·小技巧:如何用Delphi创建快捷方式
·Delphi基础开发技巧(1)
·Delphi中利用钩子实现QQ聊天窗口的修改
·先人的DELPHI基础开发技巧
·Delphi编程根据IP地址得到主机名
·如何Delphi中操纵拨号网络
·实现关键字查找word文档里相匹配的内容
·用Delphi实现WinSocket高级应用
·利用Delphi编写Socket通信程序

Delpih 中的Windows API编程初步

日期:2007年8月28日 作者: 查看:[大字体 中字体 小字体]


使用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 record
hwnd : 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 }

[1] [2] [3] [4] [5] [6] [7] [8] [9] 下一页 

上一篇:在Delphi中控制扫描仪

下一篇:加密ACCESS数据库增加安全性


相关软件: 相关文章:
·提高运行速度 教你一步一步优化XP系统
·一步成高手:终极图解内存(下篇)
·卡巴斯基2009 Beta版 初步试用感受
·7级以后自定义的舞步 - 劲舞团攻略秘籍 - 劲舞团
·三步搞定XP开机时DLL文件出错提示
·[劲舞团]最新10几套8K自由舞步
·制作网站的步骤和方法
·SQL Server 2005 Express Edition安装步骤详解
·同步合成PPT幻灯片与讲演视频
·flash手绘蝴蝶(只需六步完成)

特别声明:本站除部分特别声明禁止转载的专稿外的其他文章可以自由转载,但请务必注明出处和原始作者。文章版权归文章原始作者所有。对于被本站转载文章的个人和网站,我们表示深深的谢意。如果本站转载的文章有版权问题请联系编辑人员,我们尽快予以更正。
[打印本页] [关闭窗口] 转载请注明来源:http://www.abcdown.net
首页 | 本站声明 | 下载帮助 | 发布软件 |
中文版权所有:ABC学院 浙ICP备05000717号