PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : On-Screen-Display (OSD) in C# realisieren?


dexion
2008-11-01, 00:48:40
Hallo Forum.

Wie der Threadtitel schon verrät, würde ich gerne mit C# ein OSD Zeichnen.

Es soll also direkt auf den Bildschirm gezeichnet werden, so dass ich immer meine gezeichneten Objekte sehe, egal welche Fenster gerade aktiv sind. Dies bedeutet gleichzeitig, dass das Gezeichnete keinen "Fokus" haben darf, denn die Fenster im Hintergrund sollen ja normal ansprechbar bleiben; auch wenn z.B. ein gezeichnetes Objekt einen OK-Button verdeckt, soll dieser bedienbar bleiben, wenn das dazugehörige Fenster aktiv ist.
Oder kurz gesagt: wenn ihr bei eurem Monitor die Knöpfe bedient, kommt ja auch ein Menü, das sich über alles zeichnet, ohne aber ins Geschehen einzugreifen. sowas meine ich. (Klar, das Monitor-OSD zeichnet der Monitor und nicht die Grafikkarte, aber ich denke ihr wisst, was ich meine).
Oder übertrieben gesagt, ihr zeichnet mit einem Filzstift einen Strich auf euren Monitor, das wäre auch sowas.

Es sollen nur Text, Linien (beliebiger Dicken) und Kreise (beliebiger Radien) gezeichnet werden, komplexere Objekte müssen nicht dargestellt werden können.
Google brachte mir nur ein Beispiel, welches bei mir leider nicht kompiliert (ist auch jahre alt) und sowieso nur mit unzähligen Zeilen Code ein simples schwarzes Quadrat gezeichnet hätte.
Es muss auch bedacht werden, dass wenn sich der Bildschirminhalt hinter dem OSD verändert, das OSD trotzdem "on-top" bleibt und nicht übermalt wird. Das Ganze im 2D Windows-Betrieb reicht aber, ich muss nicht irgendwelche Fullscreen-Spiele damit übermalen.
Naja, allerdings: wenn ihr mir jetzt sagt, invoke Datei x und macht ein call auf dies und das, dann versteh ich da nur Bahnhof. Habe diese Fachwörter gerade nur benutzt, weil ich denke, dass sie irgendwas damit zu tun haben und sich cool anhören :/ Also wären hilfreiche Details gerne erwünscht.


Danke schonmal =)

Gast
2008-11-08, 18:43:59
Weiß denn keiner was? :(

Superguppy
2008-11-08, 18:57:14
Schau mal hier (http://www.codeproject.com/KB/cs/OSDwindow.aspx)

Hab ich übrigens über Google gefunden, vierter Treffer (http://www.google.com/search?client=safari&rls=de-de&q=osd+in+c%23&ie=UTF-8&oe=UTF-8) ... :rolleyes:

mittelding
2008-11-09, 22:05:55
@Superguppy: das ist aber kein OSD im eigentlichen Sinne, wenn man davon ausgeht, dass ein OSD als Overlay fungiert. Wenn du ein Screen von dem OSD-Text aus deinem Link machst, wirst du auf diesem den Text erkennen können. Aber wahrscheinlich ist das für den Threadersteller sowieso irrelevant ;) Ich meine nur weil er sagte: "das ist wie wenn ihr mit nem Filzstift auf den Monitor zeichnet".