4

電卓に追加のボタンを作成するために以下のコードを記述しましたが、ボタンが表示されません:

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

EnumChildWindow API関数を使用して上記のコードを実行した後、電卓でコントロールを取得し、EnumChildWindowが返すコントロールリストに作成されたボタンが表示されますが、作成されたボタンが表示されないのはなぜですか?

私が覚えているように、私はこのコードをWindows XPで使用し、問題なく動作しますが、Windows7では作成されたボタンが表示されません。

4

2 に答える 2

4

Win7 の電卓とペイントは、.NET と WPF を使用して再構築されます。ネイティブ コード、特にコントロールの描画に異なる方法を使用する WPF を介して .NET コードに「接続」する方法はありません。

編集: コードをネイティブ アプリケーションで機能させるには、次のようなコードを使用できます。

hand := FindWindow('TForm1','Form1');
object1 := TButton.Create(self);
object1.ParentWindow := hand;
于 2011-06-18T08:28:30.383 に答える