我编写了下面的代码来在计算器上创建一个额外的按钮,但该按钮不显示:
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/