Text während eines Spiels einblenden?

Carndret

Erfahrenes Mitglied
Ist vielleicht eine etwas zu komplexe Frage, aber kann man in ein laufendes DirectX/OpenGL Spiel so eingreifen, dass man in der Mitte des Bildschirms ein Text darstellen kann?
Bei den meisten Spielen bleibt ja alles stehen, geht kurz auf den Desktop zurück oder ändert die Auflösung zu der von Windows, wenn ein Windowsfenster eingeblendet wird (durch eine Hintergrundanwendung z.B).
Kann man vielleicht "einfach" in den Buffer des Spiels schreiben, sodass es beim Flippen mit angezeigt wird? Oder geht das überhaupt irgenwie?
Will nicht unbedingt gleich 'ne ganze Seite Code... ;)
 

Dario Linsky

Erfahrenes Mitglied
versteh ich das richtig?
du willst text auf das formular von einem anderen programm schreiben?

als erstes brauchst du das handle von dem anderen formular. dazu gab's hier schon mal einen thread, in dem steht, wie sowas geht.
dann wär es relativ praktisch, wenn auf dem fremden formular schon ein label im vordergrund liegen würde. dann müsste man nämlich nur noch den text davon ändern. :)

aber so einfach wird es wahrscheinlich leider nicht. :rolleyes:
da wir ja eh nicht an dem api vorbeikommen, sehen wir uns in der msdn einfach mal die beschreibung der TextOut-funktion etwas näher an. ;)
mit dem handle des anderen fensters, der entsprechenden api-funktion, und den abmessungen des anderen fensters müsstest du eigentlich an einer beliebigen stelle einen text ausgeben können.
ich hab's zwar nicht probiert, aber theoretisch sollte das so gehen. ist nur die frage, wie lange der text da stehen bleibt, wenn die grafiken im hintergrund sich ständig ändern. könnte unter umständen relativ komisch aussehen.
 

Carndret

Erfahrenes Mitglied
hmm danke. Da muss ich mal nachschauen.
Ist nicht sehr eilig. Hatte nur eine Idee für ein kleines Programm - was dadurch wohl etwas größer wird ;) ...
 

Daniel Toplak

Erfahrenes Mitglied
Also der Weg den asphyxia beschrieben hat ist schon korrekt, aber vielleicht beschreibst du uns mal genauer, was du machen willst.
Ich denke das Problem bei der ganzen Sache wird sein, das du überhaupt Zugriff auf das Fenster des Spieles bekommst, denn die laufen ja bekanntlich meist in Vollbild. Und da hast du glaube ich keine Möglichkeit mit dem Spy++ z.B. die Fensterklasse "auszuspionieren" (brauchst du um das Handle des Fensters zu bekommen). Wenn man das Spiel allerdings in einem Fenster, also nicht Vollbild laufen lassen kann, dann kannst du die Fensterklasse herausbekommen. Das brauchst du ja dann auch nur einmal machen.
Also beschreib uns mal etwas genauer, was du machen willst.

Gruss Homer