Wie kann ich die Cursorposition in einer Win32-Konsolenanwendung festlegen? Vorzugsweise möchte ich vermeiden, ein Handle zu machen und die Windows-Konsolenfunktionen zu verwenden. (Ich verbrachte den ganzen Vormittag damit, durch die dunkle Gasse zu rennen; das schafft mehr Probleme, als es löst.) Ich erinnere mich, dass ich das relativ einfach gemacht habe, als ich mit stdio am College war, aber ich kann keine Beispiele dafür finden . Irgendwelche Gedanken oder Vorschläge würden sehr geschätzt werden. Vielen Dank.Festlegen der Cursorposition in einer Win32-Konsolenanwendung
Weitere Details
Hier ist, was ich versuche jetzt zu tun:
COORD pos = {x, y};
HANDLE hConsole_c = CreateConsoleScreenBuffer(GENERIC_READ | GENERIC_WRITE, 0, NULL, CONSOLE_TEXTMODE_BUFFER, NULL);
char * str = "Some Text\r\n";
DWDORD len = strlen(str);
SetConsoleCursorPosition(hConsole_c, pos);
WriteConsole(hConsole_c, str, len, &dwBytesWritten, NULL);
CloseHandle(hConsole_c)
Die Textzeichenfolge str
wird nie auf den Bildschirm gesendet. Gibt es noch etwas, was ich tun sollte? Vielen Dank.
'SetConsoleCursorPosition' ist eine Funktion von Windows-Konsole, die ich festgestellt, dass ich mit vermeiden möchte. –
Also ging ich mit dem Hans-Vorschlag, 'GetStdHandle (STD_OUTPUT_HANDLE)' zu verwenden, um das Handle zu der vorhandenen Konsole zu bekommen, aber es stellte sich heraus, dass ich 'WriteConsoleOutputCharacter()' ebenfalls verwenden musste. Ich weiß nicht, warum dieser Anruf den Trick macht, aber es funktioniert jetzt. Vielen Dank! –