Der einfachste Weg, dies zu tun, ist wahrscheinlich die Konsole Funktionalität unter Verwendung einer Grafikbibliothek einfach neu erstellen und eine feste Breite oder Bitmap-Schrift (a la Zwergenfestung). Meines Wissens kann man ein Fenster in einem anderen Fenster nicht einmal zu den besten Zeiten hosten, und die Konsolenfenster unterscheiden sich ohnehin ein wenig von Ihrem Standardfenster.
GDI + ist wahrscheinlich der einfachste, wenn auch langsamste Weg. Es ist in Windows Forms integriert und ist ein sehr ausgereiftes Produkt mit vielen Funktionen, aber es ist nicht wirklich mit Spielen konzipiert.
Direct2D könnte tatsächlich eine bessere Option sein, die Ihre beste Option sein könnte, da es schneller ist. Es ist ein bisschen komplizierter, aber es hat eine Menge Optimierung und ist im Wesentlichen eine Untermenge von Direct3D. Es sollte nicht zu schwer sein, GDI + und Direct2D zusammen zu mischen, auch wenn es ein wenig Arbeit braucht.
Warum ist diese Batch-Datei markiert? –
Sicher ist es möglich, aber ich habe es schwer, einen einfachen Weg vorzuschlagen. Also werde ich nur zeigen, warum es möglich ist: Wenn alles andere fehlschlägt, können Sie die Konsolen-App intern ausführen und die std :: in/std :: -Option von Ihrer Instanz in Ihre Formular-App-I/O-Streams umwandeln und dann die Ausgabestream mit Grafikschrift-Rendering und füllen Sie den Eingabestream durch Eingabe von UI. Dann wieder, vielleicht gibt es sogar ein gebrauchsfertiges Widget, um die Konsole in das Fenster zu integrieren? (In IDEs üblich, um die Ausgabe der Kompilierung anzuzeigen, obwohl diese selten mit Eingaben arbeiten). – Ped7g
uh .. und das std :: out funktioniert natürlich nur, wenn Sie std :: out für die Ausgabe verwenden. Wenn Sie eine Low-Level-Ausgabe verwenden, z. B. direkt in den Textmodus schreiben oder eine ncurses-ähnliche Bibliothek, ist es möglicherweise nicht möglich, die Ausgabe des Spiels dem internen Ausgabestream zuzuordnen. – Ped7g