delphi - 在其他应用程序窗口上创建按钮

标签 delphi cross-application

我编写了下面的代码来在计算器上创建一个额外的按钮,但该按钮不显示:

var
  Object1 : TButton ;
  Hand: THandle;
begin
   Hand:= FindWindow('CalcFrame', 'Calculator');
   Object1 := TButton.CreateParented(Hand);
   Object1.Show ;
end;

使用 EnumChildWindow API 函数运行上述代码后,我得到了计算器上的控件,并在 EnumChildWindow 返回的控件列表中看到创建的按钮,但为什么创建的按钮不显示?

我记得我在 Windows XP 上使用了这段代码,它工作没有问题,但现在在 Windows 7 中创建的按钮不会出现。

最佳答案

Win7中的计算器和画图是 使用 .NET 和 WPF 重建,以及 没有办法“联系” 通过 native 代码的 .NET 代码 尤其是 WPF,它使用不同的 绘制其控件的方法。

编辑: 使您的代码适用于 native 您可以使用如下代码的应用程序:

hand := FindWindow('TForm1','Form1');
object1 := TButton.Create(self);
object1.ParentWindow := hand;

关于delphi - 在其他应用程序窗口上创建按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6394300/

相关文章:

iOS 其他应用中的点击/拖动事件

jquery - 使相关 ASP.NET 应用程序的 session 与另一个 ASP.NET 应用程序保持事件状态

delphi - 无法将 Indy 更新到最新版本

delphi - 在变体记录中包含方法的语法是什么?

sql - 将适当的字符添加到 .txt 的 Windows 脚本

德尔福OCR : what libabry should I use?

delphi - SSL3_GET_RECORD :wrong version number

c# - 在经典 ASP 上构建 .net 应用程序

android - 如何在另一个应用程序中启动 Activity ?