J'ai vérifié certains Rogue comme des jeux (Larn, Rogue, etc.) qui sont Écrit en C et C ++, et j'ai remarqué qu'ils n'ont pas les barres de défilement à droite de la fenêtre de la console. P>
Comment puis-je accomplir cette même fonctionnalité? P>
4 Réponses :
Pour retirer la barre de défilement, définissez simplement la hauteur du tampon d'écran pour avoir la même taille que la hauteur de la fenêtre:
J'ai eu ceci setConsolescreenbufferSize () échoué! Raison: 6 b>
@Haseebmir code 6 est pour ERROR_INVALID_HANDLE b>. Votre Hout code> n'est certainement pas valide.
Il semble que le code fourni produit une erreur. Le didacticiel lié au forum fourni est également inaccessible maintenant.
C'est une réponse de plus de 10 ans et plus. Le contenu sur Stackoverflow n'est pas censé être mis à jour pour toujours. Quoi qu'il en soit, quelle est l'erreur?
@karlphillip citant l'utilisateur qui a affiché le code: "L'appel à SetConsolescreenbuffer échoue, avec le message d'erreur" 87 "". J'ai posté une nouvelle réponse qui semble fonctionner bien.
Vous devez faire la tampon d'écran de la console de la même taille que la fenêtre de la console. Obtenez la taille de la fenêtre avec GetConsoleCreenbufferInfo, SRWindow. Réglez la taille du tampon avec SETCONSORECREENBufferSize (). P>
Utiliser vous pouvez Spécifiez Quelle barre de défilement pour masquer à l'aide de différents paramètres. P> P> #include
winuser.h code> est inclus dans
windows.h code>, que vous auriez besoin de toute façon pour utiliser
getconsolewindow code>
Pour supprimer les barres de défilement de la console, nous pouvons rendre la mémoire tampon d'écran de la console de la même taille que la fenêtre de la console. Cela peut être fait comme suit:
#include <Windows.h> #include <iostream> int main() { CONSOLE_SCREEN_BUFFER_INFO screenBufferInfo; // Get console handle and get screen buffer information from that handle. HANDLE hConsole = GetStdHandle(STD_OUTPUT_HANDLE); GetConsoleScreenBufferInfo(hConsole, &screenBufferInfo); // Get rid of the scrollbar by setting the screen buffer size the same as // the console window size. COORD new_screen_buffer_size; // screenBufferInfo.srWindow allows us to obtain the width and height info // of the visible console in character cells. // That visible portion is what we want to set the screen buffer to, so that // no scroll bars are needed to view the entire buffer. new_screen_buffer_size.X = screenBufferInfo.srWindow.Right - screenBufferInfo.srWindow.Left + 1; // Columns new_screen_buffer_size.Y = screenBufferInfo.srWindow.Bottom - screenBufferInfo.srWindow.Top + 1; // Rows // Set new buffer size SetConsoleScreenBufferSize(hConsole, new_screen_buffer_size); std::cout << "There are no scrollbars in this console!" << std::endl; return 0; }
L'idée est correcte. Cependant, le code n'est pas actuellement compilable car HConsole code> n'a pas été déclaré. Il y a aussi un commentaire qui fait référence à
temp_screenbufferinfo code> qui n'est pas défini sur le code mais je suppose que vous vouliez dire
SCRIMBufferInfo code>.
Merci pour l'information! J'avais utilisé le code dans un autre contexte. Je l'ai mis à jour.