今行いたい事が指定したウィンドウの(100,100)に文字を表示させたいのですが、API等が見当たらなかった^^;(自分の探しかたがわるかった?)
delphiでやる方法や、もしAPIがあれば教えていただきたいです
"ウィンドウ"は何を指しますか?
フォームでは無いのですか?
Delphiのバージョンとかは何でしょうか?
別アプリのハンドルを取得してそのアプリの座標(X,Y)に文字を表示したいってこと?
別アプリのハンドルを取得してそのアプリの座標(X,Y)に文字を表示したいってこと?
手段の説明ではなくて、開発ソフトとその目的を書いてください。
実行したい事柄がわかりません。
APIAPIって、APIは魔法の杖じゃないです。
別アプリに文字表示させるにはこうすると出来ますね。メモ帳(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プロパティがないコントロールに描画をする」でググってみてください。
あと別な方法もあるかもしれません。
ツイート | ![]() |