Taille console

mathieu57100 Messages postés 103 Date d'inscription jeudi 24 juin 2004 Statut Membre Dernière intervention 9 février 2006 - 21 sept. 2005 à 13:48
badboy38 Messages postés 95 Date d'inscription vendredi 14 janvier 2005 Statut Membre Dernière intervention 4 mars 2013 - 27 avril 2006 à 19:48
bonjour,
j'aimerai savoir comment définir la taille de la console de mon appli...
merci d'avance.

7 réponses

meech Messages postés 209 Date d'inscription vendredi 11 avril 2003 Statut Membre Dernière intervention 14 août 2007
21 sept. 2005 à 15:52
Salut,

Si tu parles d'une console sous Windows, alors tu peux employer le petit programme suivant :

#include <windows.h>

BOOL SetConsoleSizeXY(HANDLE hStdout, int iWidth, int iHeight)
{
CONSOLE_SCREEN_BUFFER_INFO info;
COORD coordMax;

coordMax = GetLargestConsoleWindowSize(hStdout);


if (iHeight > coordMax.Y) iHeight = coordMax.Y;


if (iWidth > coordMax.X) iWidth = coordMax.X;

if (!GetConsoleScreenBufferInfo(hStdout, &info)) return FALSE;

/* - hauteur - */
info.srWindow.Left = 0;
info.srWindow.Right = info.dwSize.X - 1;
info.srWindow.Top = 0;
info.srWindow.Bottom = iHeight - 1;

if (iHeight < info.dwSize.Y)
{
if (!SetConsoleWindowInfo(hStdout, TRUE, &info.srWindow))
return FALSE;

info.dwSize.Y = iHeight;

if (!SetConsoleScreenBufferSize(hStdout, info.dwSize))
return FALSE;
}
else if (iHeight > info.dwSize.Y)
{
info.dwSize.Y = iHeight;

if (!SetConsoleScreenBufferSize(hStdout, info.dwSize))
return FALSE;

if (!SetConsoleWindowInfo(hStdout, TRUE, &info.srWindow))
return FALSE;
}

if (!GetConsoleScreenBufferInfo(hStdout, &info))
return FALSE;

/* --- largeur - */
info.srWindow.Left = 0;
info.srWindow.Right = iWidth - 1;
info.srWindow.Top = 0;
info.srWindow.Bottom = info.dwSize.Y - 1;

if (iWidth < info.dwSize.X)
{
if (!SetConsoleWindowInfo(hStdout, TRUE, &info.srWindow))
return FALSE;

info.dwSize.X = iWidth;

if (!SetConsoleScreenBufferSize(hStdout, info.dwSize))
return FALSE;
}
else if (iWidth > info.dwSize.X)
{
info.dwSize.X = iWidth;

if (!SetConsoleScreenBufferSize(hStdout, info.dwSize))
return FALSE;

if (!SetConsoleWindowInfo(hStdout, TRUE, &info.srWindow))
return FALSE;
}

return TRUE;
}



int main(int argc, char** argv)
{
CONSOLE_SCREEN_BUFFER_INFO info;
HANDLE hStdout;
hStdout = GetStdHandle (STD_OUTPUT_HANDLE);

SetConsoleSizeXY(hStdout, 24, 12);
system("pause");
return 0;
}

Il ne fait, bien sûr, rien. Seule la fonction SetConsoleSizeXY permet de définir la taille de la console MS-DOS dans ton Windows.
Il ne te reste plus qu'à gérer, au besoin, les questions des barres de défilement et de taille du buffer.

En espérant t'avoir aidé,
A plus tard.

NB. Si tu veux entrer plus en profondeur dans ce thème, les API Windows en mode console...
0
meech Messages postés 209 Date d'inscription vendredi 11 avril 2003 Statut Membre Dernière intervention 14 août 2007
21 sept. 2005 à 15:54
Excuse-moi, j'ai omis de te préciser que le programme ci-dessus avait été compilé avec gcc, en utilisant l'environnement de développement Dev-C++.
Je ne pense pas que cela pose de problème avec Microsoft Visual C++ 6 ou .NET...
0
badboy38 Messages postés 95 Date d'inscription vendredi 14 janvier 2005 Statut Membre Dernière intervention 4 mars 2013
26 avril 2006 à 17:05
Bonjour,


c'est bien, on a le redimmensionnement sous windows...mais sous linux?
je cherche à faire la meme chose, mais je ne trouve que des solutions
windows...

BadBoy38


--==OPEN.SOURCES.FREE.FR==--
0
meech Messages postés 209 Date d'inscription vendredi 11 avril 2003 Statut Membre Dernière intervention 14 août 2007
26 avril 2006 à 17:29
Salut,

Tu veux dire, sous une distribution GNU/Linux avec serveur X ? un Xterm ou un truc du genre ?
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
badboy38 Messages postés 95 Date d'inscription vendredi 14 janvier 2005 Statut Membre Dernière intervention 4 mars 2013
26 avril 2006 à 17:55
Exactement, je voudrais redimmensionner un terminal.

BadBoy38


--==OPEN.SOURCES.FREE.FR==--
0
meech Messages postés 209 Date d'inscription vendredi 11 avril 2003 Statut Membre Dernière intervention 14 août 2007
26 avril 2006 à 18:43
En gros, il faut jouer avec les librairies libcurses ou libncurses, avec les fonctions resizeterm().

Mais je ne sais pas vraiment comment cela marche...

A plus.
0
badboy38 Messages postés 95 Date d'inscription vendredi 14 janvier 2005 Statut Membre Dernière intervention 4 mars 2013
27 avril 2006 à 19:48
Merci, je vais essayé

BadBoy38


--==OPEN.SOURCES.FREE.FR==--
0
Rejoignez-nous