![]() |
DrawText nur Hwnd
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ß |
Re: DrawText nur Hwnd
Delphi-Quellcode:
var
dc: HDC; begin dc := GetDC(hWnd); if dc <> 0 then begin DrawText(dc, ..., ..., ...); end else ShowMessage(SysErrorMessage(getlastError)); end; |
Re: DrawText nur Hwnd
Zitat:
Einfach die Fonts UNIT einbinden ? Hat sich erledigt! Benutze Graphics. gruß |
Re: DrawText nur Hwnd
Nachtrag: ReleaseDC nicht vergessen!
|
Re: DrawText nur Hwnd
Zitat:
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:
EDIT:
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; 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ß |
Re: DrawText nur Hwnd
Du kannst doch ein auch ein Bitmap auf den Canvas kopieren. Wo ist das Problem?
|
Re: DrawText nur Hwnd
Zitat:
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ß |
Re: DrawText nur Hwnd
|
Re: DrawText nur Hwnd
Zitat:
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ß |
Re: DrawText nur Hwnd
Hat jemand eine Ahnung wie ich den Text ohne Flackern wieder wegkriege?
Mit
Delphi-Quellcode:
wird zwar der ganze Bildschirm gelöscht, aber dabei flackert es hässlich.
InvalidateRect(0, nil, false)
Und mit
Delphi-Quellcode:
ä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).
PMyRect: PRect;
MyRect: TRect; begin MyRect.Left:=200; myRect.Top:=200; myrect.Bottom:=750; myrect.Right:=500; pmyrect:=@myrect; InvalidateRect(0, PMyRect, false) |
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:45 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz