Zwischen screen buffer wechseln ... aber wie?
-
Mahlzeit!
Ich suche nach einem möglichst einfachen Weg um zwischen zwei screen buffer hin und her zu schalten und die Ausgabe jeweils auf den aktuellen bzw. aktiven buffer umzuleiten. Das hin- und herschalten funktioniert auch (glaube ich), allerdings werden sämtliche Ausgaben im ursprünglichen screen buffer getätigt.
Mein Code bis jetzt:
#include <conio.h> // for getch() #include <iostream> #include <windows.h> using namespace std; HANDLE hConsole = GetStdHandle(STD_OUTPUT_HANDLE); HANDLE hBuffer = CreateConsoleScreenBuffer(GENERIC_READ | GENERIC_WRITE, 0, NULL, CONSOLE_TEXTMODE_BUFFER, NULL); HANDLE hCurrent = hConsole; HANDLE SwitchOutput(HANDLE hTarget); int main() { printf("Hello world!\n"); getch(); hCurrent = SwitchOutput(hCurrent); printf("Hello another world!\n"); getch(); hCurrent = SwitchOutput(hCurrent); printf("Hello again old world!\n"); getch(); return 0; } HANDLE SwitchOutput(HANDLE hSwitch) { HANDLE hTemp; if (hSwitch == hConsole) { hTemp = hBuffer; } else { hTemp = hConsole; } SetConsoleActiveScreenBuffer(hTemp); SetStdHandle(STD_OUTPUT_HANDLE, hTemp); return hTemp; }
Irgendwas hab ich übersehen oder falsch gemacht, aber ich komm' einfach nicht drauf.