AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

DrawText nur Hwnd

Ein Thema von EWeiss · begonnen am 6. Feb 2007 · letzter Beitrag vom 21. Mär 2007
Antwort Antwort
EWeiss
(Gast)

n/a Beiträge
 
#1

DrawText nur Hwnd

  Alt 6. Feb 2007, 10:10
Ich möchte eine zeile Text ohne umbruch auf ein Fenster schreiben von dem nur das Hwnd bekannt ist.
Das möchte ich realisieren ohne Forms einzubinden.

API .. Drawtext in verbindung mit Rect das ganze in WM_PAINT damit der Text nicht gelöscht wird.

Jemand ein kleines Beispiel?

gruß
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#2

Re: DrawText nur Hwnd

  Alt 6. Feb 2007, 10:31
Delphi-Quellcode:
var
  dc: HDC;
begin
  dc := GetDC(hWnd);
  if dc <> 0 then
  begin
    DrawText(dc, ..., ..., ...);
  end
  else
    ShowMessage(SysErrorMessage(getlastError));
end;
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
EWeiss
(Gast)

n/a Beiträge
 
#3

Re: DrawText nur Hwnd

  Alt 6. Feb 2007, 10:35
Zitat von Luckie:
Delphi-Quellcode:
var
  dc: HDC;
begin
  dc := GetDC(hWnd);
  if dc <> 0 then
  begin
    DrawText(dc, ..., ..., ...);
  end
  else
    ShowMessage(SysErrorMessage(getlastError));
end;
Danke Luckie wie komme ich nun an den Font bzw.. kann die Farbe setzen.
Einfach die Fonts UNIT einbinden ?

Hat sich erledigt!
Benutze Graphics.

gruß
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#4

Re: DrawText nur Hwnd

  Alt 6. Feb 2007, 11:57
Nachtrag: ReleaseDC nicht vergessen!
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
EWeiss
(Gast)

n/a Beiträge
 
#5

Re: DrawText nur Hwnd

  Alt 6. Feb 2007, 12:13
Zitat von Luckie:
Nachtrag: ReleaseDC nicht vergessen!
Ja habs mir gedacht denn der Canvas zeichnet nicht immer neu

Trotzdem wie schon bei anderen!
Das problem ist nun das die schrift flackert.

Mit WM_PAINT ließ es sich leider nicht verwirklichen.

Kann leider da mit Bitmaps erstellen nicht viel machen da ich keine Form verwende.
Was gäbe es da noch?


Habs mal mit TextOut versucht

Delphi-Quellcode:
procedure Overlay(handle: HWND; Text: PChar);
var
  DC: HDC;
  OCanvas: TCanvas;
begin
  DC := GetDC(handle);
  OCanvas := TCanvas.Create;
  OCanvas.Handle := DC;

  BeginPath(OCanvas.Handle);
  OCanvas.Font.Color := clwhite;
  OCanvas.Font.Name := 'Arial';
  OCanvas.Font.Size := 8;
  SetBkMode(OCanvas.Handle,TRANSPARENT);
  EndPath(OCanvas.Handle);

  OCanvas.TextOut(0, 0, Text);
  ReleaseDC(handle, dc);
end;
EDIT:
Da ich eh die Unit Graphics einfügen mußte
Kann ich auch direkt über canvas gehen
Allerdings ändert auch die procedure nix am Flackern.

Theoretisch müßte ich ein Bitmap Transparent auf das Fenster(hwnd) zeichen in dem dann die Schrift
dargestellt wird.
Nur die frage ob sich das dann auch beim neuzeichnen löscht.
Da es ja auch nur auf den dc gezeichnet wird.

gruß
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#6

Re: DrawText nur Hwnd

  Alt 6. Feb 2007, 12:22
Du kannst doch ein auch ein Bitmap auf den Canvas kopieren. Wo ist das Problem?
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
EWeiss
(Gast)

n/a Beiträge
 
#7

Re: DrawText nur Hwnd

  Alt 6. Feb 2007, 12:24
Zitat von Luckie:
Du kannst doch ein auch ein Bitmap auf den Canvas kopieren. Wo ist das Problem?
Das ich das in Delphi schreiben muss
Kleines Beispiel? HIhihiiiii

EDIT:
Hmm und woher soll das kommen ? Müßte ich ja virtuell erstellen.
Das es dann wenn es vorhanden ist mit BitBlt gehen würde ist klar!

gruß
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#8

Re: DrawText nur Hwnd

  Alt 6. Feb 2007, 13:54
  1. Bitmap erzeugen / erstellen
  2. Auf Bitmap malen
  3. Bei Bedarf Bitmap auf Canvas des Fensters kopieren
Zu allen Punkten solltets du etwas im Forum finden. Die Suche überlasse ich jetzt mal dir.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
EWeiss
(Gast)

n/a Beiträge
 
#9

Re: DrawText nur Hwnd

  Alt 6. Feb 2007, 14:26
Zitat von Luckie:

Zu allen Punkten solltets du etwas im Forum finden. Die Suche überlasse ich jetzt mal dir.
Ja Danke habe es schon.
Das problem ist nur was ich bisher gefunden habe baut sich auf Forms mit eingebauten Images auf .
damit kann ich aber nichts anfangen da wie schon gesagt ich über keine Form verfüge.

Gut werd dann mal weiter suchen .. vielleicht findet sich was.

gruß
  Mit Zitat antworten Zitat
Der_Ventilator

Registriert seit: 11. Apr 2004
Ort: Kanada
136 Beiträge
 
Delphi 2010 Professional
 
#10

Re: DrawText nur Hwnd

  Alt 21. Mär 2007, 21:00
Hat jemand eine Ahnung wie ich den Text ohne Flackern wieder wegkriege?

Mit InvalidateRect(0, nil, false) wird zwar der ganze Bildschirm gelöscht, aber dabei flackert es hässlich.

Und mit
Delphi-Quellcode:
  PMyRect: PRect;
  MyRect: TRect;
begin
  MyRect.Left:=200;
  myRect.Top:=200;
  myrect.Bottom:=750;
  myrect.Right:=500;
  pmyrect:=@myrect;
  InvalidateRect(0, PMyRect, false)
ändert sich daran auch nichts. Egal wie groß ich das MyRect einstelle, es wird immer der ganze Bildschirm gelöscht. (Ich hab das getestet, indem ich den ganzen Screen vollgemalt habe).
Codito, ergo sum. - I code therefore I am
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:24 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz