【发布时间】:2012-03-09 13:18:42
【问题描述】:
我在 delphi 中调用了一些对话框窗口。我正在尝试参考它,但遇到问题。这些控件不是 VCL,所以我不能使用 FindWindow(handle): TWinControl
是否有返回正确窗口控制的方法?
我可以从对话框窗口信息中收集到任何机会吗,例如:
*对话框窗口上的控件数 *对话框窗口中控件的名称、文本、类名
【问题讨论】:
-
您无法从该窗口句柄中获得
TWinControl或任何VCL 实例。您可以调用EnumChildWindows来枚举顶级对话窗口的子级。然后你可以查询他们的类名等等。您需要的主要 Win32 API 是GetClassName和GetWindowText。 -
你需要写
@EnumChildProc,因为Windows.pas将枚举过程定义为无类型Pointer!我个人会定义我自己的import,它有一个类型化的回调过程,以确保我做对了。 -
您应该将其发布为答案伙伴,这将在我的事业中发挥作用。再次感谢
-
你是在建议我发布答案吗?我不会那样做,因为 Rob 的回答和我的 cmets 说的一样,只是有点扩展。