Startseite ¦  was ist neu ¦  programmier tips ¦  indy artikel ¦  intraweb artikel ¦  informationen ¦  links ¦  interviews ¦  sonstiges
kylix ¦  tutorials ¦  online shop ¦  fotos ¦  Add&Win Gewinnspiel


Willkommen Gast. Bitte einloggen oder registrieren.
17.05.2012, 02:33:40
Übersicht Hilfe Suche Einloggen Registrieren

+  SwissDelphiCenter Forum
|-+  German Forums
| |-+  WinAPI Forum
| | |-+  In externes Programm zeichnen?
« vorheriges nächstes »
Seiten: [1] Drucken
Autor Thema: In externes Programm zeichnen?  (Gelesen 3111 mal)
EgoFelix
Full Member
***
Offline Offline

Beiträge: 139


99943504
WWW
« am: 10.05.2002, 11:24:56 »

Hallo Leute!
Weiss einer von euch, wie ich z.B. Text in ICQ zeichnen kann?
Der Text sollte immer in ICQ erscheinen, auch wenn ich das fenster verschiebe...

Danke

Ego
Gespeichert

EgoFelix
Thomas Stutz
Global Moderator
Hero Member
*****
Offline Offline

Beiträge: 1784



WWW
« Antworten #1 am: 10.05.2002, 11:57:09 »

Hi,

Vielleicht wäre es einfacher, ein StaticText Control auf das andere
Fenster zu setzen.

Etwas so:
Code:
Windows.SetParent(StaticText1.Handle,ICQHandle);
Gespeichert

(¯`·._tom_.·´¯)

Tipp: Viele Antworten auf Fragen gibt's hier:
http://www.swissdelphicenter.ch/de/tipsuchen.php
EgoFelix
Full Member
***
Offline Offline

Beiträge: 139


99943504
WWW
« Antworten #2 am: 10.05.2002, 13:06:11 »

Ich möchte aber auch, vielleicht nen BMP oder soetwas zeichnen, wie geht das dann?
Gespeichert

EgoFelix
Thomas Stutz
Global Moderator
Hero Member
*****
Offline Offline

Beiträge: 1784



WWW
« Antworten #3 am: 10.05.2002, 13:08:52 »

Ich glaube das gehört eher ins API Forum.
Du müsstest vielleicht die WM_PAINT Nachricht des anderen Prozesses
abfangen und dann das Zeichnen vornehmen.
Ist etwas kompliziert und ich weiss nicht, ob sich der Aufwand lohnt.
Gespeichert

(¯`·._tom_.·´¯)

Tipp: Viele Antworten auf Fragen gibt's hier:
http://www.swissdelphicenter.ch/de/tipsuchen.php
EgoFelix
Full Member
***
Offline Offline

Beiträge: 139


99943504
WWW
« Antworten #4 am: 10.05.2002, 13:12:57 »

Hehe, genau!
Das mache ich ja mit einem Hook. Der Hook steht auch schon. WM_PAINT wird auchschon abgefangen, ich hab jetzt nur das problem, wie PAINTE ich ins Fenster?

Ego
Gespeichert

EgoFelix
Thomas Stutz
Global Moderator
Hero Member
*****
Offline Offline

Beiträge: 1784



WWW
« Antworten #5 am: 10.05.2002, 13:29:24 »

List mal in der Help über "Device Contexts".

Hier noch ein kleines Beispiel, wie du mit API Funktionen Text
an einer Position X,Y in einem Fenster ausgeben kannst.

[font size=2 face="Courier New"][font color="#000000"]procedure TextOut_WND(hWindow: HWND; X, Y: Integer; AText: string);
var
  
dc: HDC;
begin
  
DC := GetDC(hWindow);
  SelectObject(DC, GetStockObject(ANSI_VAR_FONT));
  SetTextColor(DC, RGB(255, 0, 0));
  TextOut(DC, X, Y, PChar(AText), Length(AText));
  ReleaseDC(hWindow, DC);
end;
[/font][/font]
Gespeichert

(¯`·._tom_.·´¯)

Tipp: Viele Antworten auf Fragen gibt's hier:
http://www.swissdelphicenter.ch/de/tipsuchen.php
EgoFelix
Full Member
***
Offline Offline

Beiträge: 139


99943504
WWW
« Antworten #6 am: 10.05.2002, 13:39:14 »

Hab da jezt nen Problem:
Wenn ich als Handle die FOrm nehme, wo ich den Hook starte, klappt alles.
Wenn ich aber eine andere Form nehme (z.B. den Rechern von WIndoof) wird es alles oben links in die ecke gepainted.
Gespeichert

EgoFelix
Thomas Stutz
Global Moderator
Hero Member
*****
Offline Offline

Beiträge: 1784



WWW
« Antworten #7 am: 10.05.2002, 13:47:51 »

Musst halt X,Y ensprechende Werte geben, damit der Text
nicht links oben erscheint.

Z.B so:
Code:
TextOut_WND(FindWindow('SciCalc',nil),40,40,'Hallo');
Gespeichert

(¯`·._tom_.·´¯)

Tipp: Viele Antworten auf Fragen gibt's hier:
http://www.swissdelphicenter.ch/de/tipsuchen.php
EgoFelix
Full Member
***
Offline Offline

Beiträge: 139


99943504
WWW
« Antworten #8 am: 10.05.2002, 15:19:31 »

Habs schon geschaft, blos mein Prob ist jetzt, das das Handle Sub-Handels hat. ICh erkläre das mal etwas genauer:

Also, ich möchte in ein Spiel painten. Das Spiel benutzt DirectX, deshalb fange ich auch den WM_PAINT ab. Aber leider vom falschen Handle, weil das Game ein sogennantes Sub-Handle hat, wo hineingepainted wird...
Wie kann ich dieses Handle finden???

Danke
Gespeichert

EgoFelix
Thomas Stutz
Global Moderator
Hero Member
*****
Offline Offline

Beiträge: 1784



WWW
« Antworten #9 am: 12.05.2002, 03:27:44 »

Mit FindWindowEx kannst du nach Child-Fenstern suchen.
Gespeichert

(¯`·._tom_.·´¯)

Tipp: Viele Antworten auf Fragen gibt's hier:
http://www.swissdelphicenter.ch/de/tipsuchen.php
EgoFelix
Full Member
***
Offline Offline

Beiträge: 139


99943504
WWW
« Antworten #10 am: 12.05.2002, 14:08:02 »

Hast du da auch nen kleines beispiel?
Danke
Gespeichert

EgoFelix
Thomas Stutz
Global Moderator
Hero Member
*****
Offline Offline

Beiträge: 1784



WWW
« Antworten #11 am: 12.05.2002, 14:13:34 »

Beispiele gibt's unter den "programmier tips".
Du solltest aber vielleicht mal die Fensterstruktur mit WinSight oder
einem anderen programm analysieren.
Gespeichert

(¯`·._tom_.·´¯)

Tipp: Viele Antworten auf Fragen gibt's hier:
http://www.swissdelphicenter.ch/de/tipsuchen.php
Seiten: [1] Drucken 
« vorheriges nächstes »
Gehe zu:  


Einloggen mit Benutzername, Passwort und Sitzungslänge

Powered by MySQL Powered by PHP Powered by SMF 1.1.11 | SMF © 2006, Simple Machines LLC Prüfe XHTML 1.0 Prüfe CSS