Définition de la position du curseur dans une application de console Win32
Comment puis-je définir la position du curseur dans une application Console Win32? De préférence, je voudrais éviter de faire une poignée et à l'aide de la Console Windows Fonctions. (J'ai passé toute la matinée descendant la ruelle sombre; il crée plus de problèmes qu'elle n'en résout.) Je me souviens de faire cela de manière relativement simple quand j'étais au collège à l'aide de stdio, mais je ne peux pas trouver des exemples de comment le faire maintenant. Des idées ou des suggestions seraient grandement appréciés. Merci.
plus de Détails
Voici ce que je suis maintenant en train de faire:
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)
La chaîne de texte str
est jamais à l'écran. Est-il autre chose que je devrais faire? Merci.
source d'informationauteur Jim Fell
Vous devez vous connecter pour publier un commentaire.
Voir SetConsoleCursorPosition API
Edit:
Utilisation WriteConsoleOutputCharacter (), qui prend la poignée de votre mémoire tampon active dans la console et vous permet également de définir sa position.
En utilisant les fonctions de la console, vous pouvez utiliser
SetConsoleCursorPosition
. Sans eux (ou au moins de ne pas les utiliser directement), vous pouvez utiliser quelque chose commegotoxy
dans le ncurses bibliothèque.Edit: un wrapper pour il est assez trivial:
Ouais, j'ai oublié de vous appeler
SetConsoleActiveScreenBuffer
. Quel était exactement le point de créer votre propre? UtilisationGetStdHandle(STD_OUTPUT_HANDLE)
pour obtenir un handle vers la console existante.Vous avez probablement été à l'aide de ANSI échapper séquences de codequi ne fonctionnent pas avec Windows 32 bits, les applications de console.