Delphi Windows 外壳编程(2)

本文介绍了Delphi中Windows外壳编程的相关概念,包括句柄的使用,如何通过Handle属性获取窗口句柄,以及如何在窗体创建和按钮点击事件中使用。此外,还探讨了外部声明和回调函数,特别是EnumWindows API函数的使用,展示了如何通过回调函数获取系统中所有主窗口的标题。最后,通过一个简单的无VCL程序StrParam演示了如何处理命令行参数。

Windows 句柄

Delphi从Windows 引入了不少数据类型,其中句柄最重要。这种数据类型名为THandle,该类型在Windows 单元中定义:

type

THandle = LongWord;

句柄数据类型通过数字实现,但并不当数字用

在Windows 中,句柄是一个系统内部数据结构的引用。

例如,当你操作一个窗口,或说是一个Delphi 窗体时,系统会给你一个该窗口的句柄,系统会通知你:你正在操作142号窗口,就此,你的应用程序就能要求系统对142号窗口进行操作——移动窗口、改变窗口大小、把窗口极小化为图标,等等

实际上许多Windows API 函数把句柄作为它的第一个参数,如GDI (图形设备接口)句柄、菜单句柄、实例句柄、位图句柄等等,不仅仅局限于窗口函数,。

换句话说,句柄是一种内部代码,通过它能引用受系统控制的特殊元素,如窗口、位图、图标、内存块、光标、字体、菜单等等。Delphi中很少需要直接使用句柄,因为句柄藏在窗体、位图及其他Delphi对象的内部。当你要调用Delphi不支持的Windows API 函数时,句柄才会有用。

现在举一个简单的Windows句柄例子,完善这节内容。例WHandle 程序的窗体很简单,只有一个按钮。正如下面主窗体文本所定义的那样,我在代码中添加了窗体的OnCreate 事件和按钮的OnClick 事件:

object FormWHandle: TFormWHandle

Caption = 'Window Handle'

OnCreate = FormCreate

object BtnCallAPI: TButton

Caption = 'Call API'

OnClick = BtnCallAPIClick

end

end

窗体一创建,程序就会通过窗体本身的Handle 属性,获取窗体对应的窗口句柄。调用IntToStr ,把句柄数值转换为一个字符串,然后再把它添加到窗体标题中,如图9.1:

procedure TFormWHandle.FormCreate(Sender: TObject);

begin

Caption := Caption + ' ' + IntToStr (Handle);

end;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值