Erstellen Fenster Konsole innen Haupt-win32-Fenster
Ich habe eine win32-Anwendung, öffnen Sie eine Konsole wie die Spiele bei der tilde gedrückt wird. Ich dache, dass die beste Lösung ist die Verwendung der CreateWindow Funktion. Ist das richtig? Wie könnte ich es überlappend im Hauptfenster verstecken und es als tilde erneut gedrückt wird? Danke Euch allen
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ist es oft verlockend, verwenden Sie eine Konsole in Ihrer app (über
AllocConsole
), aber es ist definitiv KEIN standard-Mehrweg-Windows-Steuerelement. Es hat eine Menge von speziellen Verhaltensweisen und Eigenschaften, die es einzigartig machen aus einem typischen Fenster.Aus diesem Grund bin ich völlig einverstanden mit Ihrem Instinkt, gegen die Verwendung von true 'Console' - Fenster. Machen Sie Ihre eigenen Fenster mit einem text-editor, wie es Sie zu entwickeln, wäre jede andere UI-Komponente wie ein HUD.
Ob Sie sollten
CreateWindow
ist schwer zu sagen: wie machst du den rest deiner GUI? DirectX? GDI? Einige toolkit? Sie sind mit anderen standard-windows-Steuerelemente?CreateWindow
oderCreateDialog
, um ein Fenster anzuzeigen, die mit einem nur-lese-edit-Steuerelement und ein single-line-edit-control zur Eingabe von Befehlen. Auf diese Weise können Sie alle integrierten Steuerelemente. Wenn Sie es in DirectX, die Sie benötigen Unterstützung von einer Bibliothek (mit einem text-edit-control in DirectX von Grund auf ist nicht hübsch).Dies ist eine ziemlich alte code noch gar nicht wirklich drüber geschaut. Hoffentlich ist es das, was Sie brauchen. Wenn Sie brauchen nur eine sehr einfache, können Sie auch nur einen Anruf zu AllocConsole();
AllocConsole
wird automatisch die Konsole auf dem Bildschirm. Hier gibt es vieles zu wissen über Konsolen: msdn.microsoft.com/en-us/library/ms682010(v=VS.85).aspxDen Lösungen, die hier nicht funktionieren, weil neuere Versionen des Windows SDK definieren Sie die DATEI-Struktur von:
Beim Versuch zu überschreiben, die stdin/out-FILE-Strukturen mit dem operator=, nur ein Zeiger kopiert wird. Kopieren Sie die gesamte DATEI struct zu können, definieren Sie die DATEI-Struktur, bevor Sie Ihre windows.h sind:
Ist dies irgendwie nicht möglich für Sie, können Sie noch definieren Sie Ihre eigenen DATEI-Struktur, die als FILE_COMPLETE und verwenden Sie dieses codesnippet:
Fand ich dieses kleine tutorial /code-Beispiele nützlich.
http://www.halcyon.com/~ast/dload/guicon.htm
Es schafft eine Konsole und leitet STD_IN und STD_OUT auf der Konsole.
So können Sie ganz einfach mit std::cin und std::cout etc streams.