指定したウィンドウに文字表示


虹色小町  2008-10-30 03:42:02  No: 32405

今行いたい事が指定したウィンドウの(100,100)に文字を表示させたいのですが、API等が見当たらなかった^^;(自分の探しかたがわるかった?)
delphiでやる方法や、もしAPIがあれば教えていただきたいです


HOta  2008-10-30 05:21:13  No: 32406

"ウィンドウ"は何を指しますか?
フォームでは無いのですか?
Delphiのバージョンとかは何でしょうか?


通りすがり  2008-10-30 06:00:28  No: 32407

別アプリのハンドルを取得してそのアプリの座標(X,Y)に文字を表示したいってこと?


通りすがり  2008-10-30 06:00:33  No: 32408

別アプリのハンドルを取得してそのアプリの座標(X,Y)に文字を表示したいってこと?


Kdi  2008-10-30 09:23:55  No: 32409

手段の説明ではなくて、開発ソフトとその目的を書いてください。
実行したい事柄がわかりません。
APIAPIって、APIは魔法の杖じゃないです。


AZuSk  2008-11-13 06:08:12  No: 32410

別アプリに文字表示させるにはこうすると出来ますね。メモ帳(notepad.exe)に文字表示させています。DrawTextやExtTextOutなども使えます。
別アプリに書き込む時はタイマーで書き続けないと、再描画の時に消えてしまうようです。

procedure TForm1.Timer1Timer(Sender: TObject);
var
h,hChild:HWND;
DC:HDC;
s:string;
begin
  s:='ABC';
  h:=findwindow(pchar('notepad'),nil);//メモ帳のハンドル取得
  hChild:=findwindowex(h,0,pchar('Edit'),nil);//編集部分の子窓ハンドル取得
  DC:=GetDC(hChild);デバイスコンテキスト取得
  TextOut(DC,100,100,PChar(s),Length(s));//100,100にsを表示
end;

自身のウインドウに文字を表示するならこれでok
procedure TForm1.FormPaint(Sender: TObject);
begin
  Form1.Canvas.TextOut(100,100,'ABC');
end;

TPanelなどに表示するには「Canvasプロパティがないコントロールに描画をする」でググってみてください。
あと別な方法もあるかもしれません。


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加