OSD (OnScreenDisplay?) auf dem Desktop?

Für allgemeine Fragen zur Programmierung mit PureBasic.
Benutzeravatar
pvmichael
Beiträge: 144
Registriert: 29.08.2004 17:59
Wohnort: Rosenheim
Kontaktdaten:

OSD (OnScreenDisplay?) auf dem Desktop?

Beitrag von pvmichael »

Hallo!

weiß jemand wie man einen Text auf dem Desktop (frei positionierbar) ausgeben kann? (Die Ausgabe sollte keinerlei Auswirkung auf andere Programme haben (Cursorfocus klauen usw.))

Danke und Grüsse

Michael
DarkDragon
Beiträge: 6291
Registriert: 29.08.2004 08:37
Computerausstattung: Hoffentlich bald keine mehr
Kontaktdaten:

Beitrag von DarkDragon »

Codearchiv hilft ;)

Code: Alles auswählen

; www.purearea.net (Sourcecode collection by cnesm)
; Author:
; Date: 22. November 2003

#wMem=0 
Global Mem.l 
; hier werden 1024 byte speicher reserviert 
Mem = AllocateMemory(1024) 

Procedure.l DesktopOutput() 
  PokeL(Mem, 1) 
  ProcedureReturn Mem 
EndProcedure 

Repeat 
  ; 
  ; hier beginnt die verwirrung 
  StartDrawing(DesktopOutput()) 
  DrawText("Testtext")
  StopDrawing() 
  ; 
  ; delay für cpu entlastung 
  Delay(5) 
  ; hier wird die escape taste geprüft 
  If GetAsyncKeyState_(#VK_ESCAPE) 
    Quit = 1 
  EndIf 
  
Until Quit 
InvalidateRect_(0, 0, 0) 
End 

; ExecutableFormat=Windows
; EOF
http://www.purearea.net/pb/CodeArchiv/W ... Painter.pb
Angenommen es gäbe einen Algorithmus mit imaginärer Laufzeit O(i * n), dann gilt O((i * n)^2) = O(-1 * n^2) d.h. wenn man diesen Algorithmus verschachtelt ist er fertig, bevor er angefangen hat.
Benutzeravatar
pvmichael
Beiträge: 144
Registriert: 29.08.2004 17:59
Wohnort: Rosenheim
Kontaktdaten:

Beitrag von pvmichael »

Danke sehr.

PS: Das Codearchiv hatte ich dreimal nach sowas durchsucht, aber das hatte ich wohl übersehen :roll:
DarkDragon
Beiträge: 6291
Registriert: 29.08.2004 08:37
Computerausstattung: Hoffentlich bald keine mehr
Kontaktdaten:

Beitrag von DarkDragon »

Ich wusste es, da ich das schon mehrmals aufgerufen hatte ;) . Das CodeArchiv ist manchmal echt zu groß und manchmal hats die falschen Titel. Da hätte ich DesktopOutput als Titel genommen, aber was solls, man kann den guten Andre nicht mit allem Belasten ;) .
Angenommen es gäbe einen Algorithmus mit imaginärer Laufzeit O(i * n), dann gilt O((i * n)^2) = O(-1 * n^2) d.h. wenn man diesen Algorithmus verschachtelt ist er fertig, bevor er angefangen hat.
Benutzeravatar
Danilo
-= Anfänger =-
Beiträge: 2284
Registriert: 29.08.2004 03:07

Beitrag von Danilo »

Auf den Desktop zu zeichnen ist sehr schlecht. Während
das OSD etwas anzeigt darfst Du nichts auf dem Desktop
machen, da Du so auch auf andere Fenster malst.

Da ist ein Fenster schon viel besser. Geskinned mit der Schrift
und Stay-On-Top.
Oder per Overlay, wenn DX und Unterstützung vorhanden.
cya,
...Danilo
"Ein Genie besteht zu 10% aus Inspiration und zu 90% aus Transpiration" - Max Planck
Benutzeravatar
pvmichael
Beiträge: 144
Registriert: 29.08.2004 17:59
Wohnort: Rosenheim
Kontaktdaten:

Beitrag von pvmichael »

@Danilo:

Das Problem hatte ich auch festgestellt, und da ich den Code aus dem Codearchiv nicht verstanden habe, hab ich ein borderless Fenster gemacht, indem eine schwarze Box gezeichnet wird, und mit grüner Schrift draufgemalt wird.

Grüsse

Michael
Antworten