begin process at 2012 05 29 13:09:05
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C++ & C++ .NET

 > 

Linux

 > 

Fichier & Disque

 > 

ncuses obtenir les information de la taill du terminal ? MessagePosté: Ven Juin 26, 2009 1:58 am


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

ncuses obtenir les information de la taill du terminal ? MessagePosté: Ven Juin 26, 2009 1:58 am

vendredi 26 juin 2009 à 03:01:03 | ncuses obtenir les information de la taill du terminal ? MessagePosté: Ven Juin 26, 2009 1:58 am

panthere007

hello

Je cherche a obtenir la taille de la Fenetre principal afin de pouvoir la diviser en 2 a la verticale. un peux comme mignight commander, mai vraiment 2 fenetre séparée et indépendante.

Note Je decouvre ncuse et également le c++ (bon le c++ depuis 2 ou 3 mois sa commence a rentrer)

je me suis trouver l'unique doc en anglait , rien en français pour le moment
ici: [ Lien ]

mai j'ai rien trouver en ce qui concerne mon probleme car c'est a moi de fournir les première cordonné aux pif. pour la première (box ?) avec le code suivant:
la fonction ncurse_affichage(); peux etre remplacée par le main aux besoin (ou si sa bug ..)

#include <ncurses.h>
#include <stdio.h>
#include <string.h>
#include <iostream>

WINDOW *create_newwin(int height, int width, int starty, int startx);
ncurse_affichage();

void ncurse_affichage()
{

WINDOW *my_win;
int startx, starty, width, height;

initscr();
height = 30; /* c est ici que je fournis les dimention pour la box  ou la windows ? */
width = 100;
starty = (LINES - height) / 2;   /* Calculating for a center placement */
startx = (COLS - width) / 2;   /* of the window      */
my_win = create_newwin(height, width, starty, startx);
}

WINDOW *create_newwin(int height, int width, int starty, int startx)
{   WINDOW *local_win;

   local_win = newwin(height, width, starty, startx);
   box(local_win, 0 , 0);      /* 0, 0 gives default characters
                * for the vertical and horizontal
                * lines         */
   wrefresh(local_win);      /* Show that box       */

   return local_win;
}

Merci d'avance


vendredi 26 juin 2009 à 08:42:05 | Re : ncuses obtenir les information de la taill du terminal ? MessagePosté: Ven Juin 26, 2009 1:58 am

ghuysmans99

Membre Club
BOOL Console_GetSize(HANDLE hConsoleOut, COORD* Size)
{
    CONSOLE_SCREEN_BUFFER_INFO csbi;
    if (!GetConsoleScreenBufferInfo(hConsoleOut,&csbi)) return FALSE;
    memcpy(Size,&csbi.dwSize,sizeof(COORD));
    return TRUE;
}

Signature.gif
vendredi 26 juin 2009 à 12:32:39 | Re : ncuses obtenir les information de la taill du terminal ? MessagePosté: Ven Juin 26, 2009 1:58 am

panthere007

Merci pour ta réponse
euh je pense que je me suis mal fait comprendre.
 on dirait que ton code fournis la taille de la console ou du terminal sans passer par ncuse, pourquoi pas ?  mai cepandan il retourn une valeur true ou false, alors qu'il me faut les cordonées je les récupère comment ?
je doit fournire le handle de la console , une piste sur l'api a utiliser ?

Merci encore pour ta réponse
vendredi 26 juin 2009 à 19:39:39 | Re : ncuses obtenir les information de la taill du terminal ? MessagePosté: Ven Juin 26, 2009 1:58 am

ghuysmans99

Membre Club
Ah, ok j'avais pas documenté :

BOOL Console_GetSize(HANDLE hConsoleOut, COORD* Size)
//Retourne un booléen : ok=TRUE pasOk=FALSE
{
    CONSOLE_SCREEN_BUFFER_INFO csbi;
    if (!GetConsoleScreenBufferInfo(hConsoleOut,&csbi)) return FALSE;
    memcpy(Size,&csbi.dwSize,sizeof(COORD));
    return TRUE;
}


/* Appel de la fonction */

HANDLE hConsoleOut = GetStdHandle(STD_OUTPUT_HANDLE);
if (hConsoleOut == INVALID_HANDLE_VALUE)
{
  printf("Erreur fatale : impossible de recuperer le handle de la console.\n");
  return 1;
}

COORD consoleSize;
if (Console_GetSize(hConsoleOut,&consoleSize)) printf("X=%d -- Y=%d\n",consoleSize.X,consoleSize.X);
else
{
  printf("Erreur fatale : impossible de determiner la taille de la console.\n");
  return 1;
}

CloseHandle(hConsoleOut);

Signature.gif
samedi 27 juin 2009 à 13:09:24 | Re : ncuses obtenir les information de la taill du terminal ? MessagePosté: Ven Juin 26, 2009 1:58 am

panthere007

Merci pour ta réponse.
sa compile pas , voila les détails.

Je pense que sa doit etre du C , j'utilise le C++ avec comme compilateur g++ (qui devrai supporter aussi le C )

voila comment j'ai tester

#include <iostream>
#include <string>
BOOL Console_GetSize(HANDLE hConsoleOut, COORD* Size)
//Retourne un booléen : ok=TRUE pasOk=FALSE
{
    CONSOLE_SCREEN_BUFFER_INFO csbi;
    if (!GetConsoleScreenBufferInfo(hConsoleOut,&csbi)) return FALSE;
    memcpy(Size,&csbi.dwSize,sizeof(COORD));
    return TRUE;
}

int main()
{


/* Appel de la fonction */

HANDLE hConsoleOut = GetStdHandle(STD_OUTPUT_HANDLE);
if (hConsoleOut == INVALID_HANDLE_VALUE)
{
  printf("Erreur fatale : impossible de recuperer le handle de la console.\n");
  return 1;
}

COORD consoleSize;
if (Console_GetSize(hConsoleOut,&consoleSize)) printf("X=%d -- Y=%d\n",consoleSize.X,consoleSize.X);
else
{
  printf("Erreur fatale : impossible de determiner la taille de la console.\n");
  return 1;
}

CloseHandle(hConsoleOut);

}
teste_me.cpp:3: erreur: 'BOOL' does not name a type
teste_me.cpp: In function 'int main()':
teste_me.cpp:18: erreur: 'HANDLE' was not declared in this scope
teste_me.cpp:18: erreur: expected `;' before 'hConsoleOut'
teste_me.cpp:19: erreur: 'hConsoleOut' was not declared in this scope
teste_me.cpp:19: erreur: 'INVALID_HANDLE_VALUE' was not declared in this scope
teste_me.cpp:25: erreur: 'COORD' was not declared in this scope
teste_me.cpp:25: erreur: expected `;' before 'consoleSize'
teste_me.cpp:26: erreur: 'hConsoleOut' was not declared in this scope
teste_me.cpp:26: erreur: 'consoleSize' was not declared in this scope
teste_me.cpp:26: erreur: 'Console_GetSize' was not declared in this scope
teste_me.cpp:33: erreur: 'hConsoleOut' was not declared in this scope
teste_me.cpp:33: erreur: 'CloseHandle' was not declared in this scope


je vois pas pourquoi sa compile pas, peut etre il manque un #include ?
samedi 27 juin 2009 à 21:49:09 | Re : ncuses obtenir les information de la taill du terminal ? MessagePosté: Ven Juin 26, 2009 1:58 am

ghuysmans99

Membre Club
T'as oublié d'inclure <windows.h> ...
Signature.gif
dimanche 28 juin 2009 à 02:12:19 | Re : ncuses obtenir les information de la taill du terminal ? MessagePosté: Ven Juin 26, 2009 1:58 am

panthere007

alors petite erreur il s'agis de linux ,donc j'ai pas c'est include:

mai le code m'a été donner par Debuger sur irc, merci a lui :)

pour compiler ne pas oublier d'ajouter -lncurses
ensuite voila le code:

#include <ncurses.h>
#include <iostream>

intmain()
{
initscr();
cbreak();
while(true)
{
std::cout<<LINES<<" "<<COLS<<std::endl;
refresh();
sleep(1);
}
}


dimanche 28 juin 2009 à 09:12:58 | Re : ncuses obtenir les information de la taill du terminal ? MessagePosté: Ven Juin 26, 2009 1:58 am

ghuysmans99

Membre Club
Réponse acceptée !
Ah j'avais mal lu la catégorie
Signature.gif


Cette discussion est classée dans : int, width, height, win, starty


Répondre à ce message

Sujets en rapport avec ce message

Probleme urgent [ par pozor16 ] Une image est composée d'un ensemble de points (des pixels) dont on peut fixer la couleur en donnant la valeur des 4 composantes qui composent une cou Pointeur récalcitrant [ par asmanur ] Bonjour, j'ai des prob avec des pointeurs regardez le codevoid LoadMap(int** Data,char* path){FILE* f=fopen(path,"r+");int Width=getc(f)-50;//Pourquoi [XLib] Gestion de l'event ResizeRequest [ par NaeiKinDus ] Bonjour tout le monde ! Je suis en train de plancher sur une petite application s'apparentant a un Gimp, mais un leger ennuie se pose a moi concernant GTK+/VC++ [ par niwniwa ] bonjour je veux travailler avec GTK+, et pour commencer j'ai fait un petit programme juste pour faire la lecture d'une image et l'affichage de ses d css [ par gabrielle32 ] Salut à tous!J'ai plusieurs soucis avec mon css. Regardez ici: http://paysdetrie.fr/dev1/spip.php?page=revue_presseComme vous pouvez le remarquer, mes [C++] Ncuses et les couleur ? (linux) [ par panthere007 ] lien du totorielhttp://tldp.org/HOWTO/NCURSES-Progra...ml#COLORBASICS donc j' obtient que du noire et blanc quoi que je rôle de AdjustWindowRect en MFC [ par rachid12450 ] Bonjour à tous.voilà,j'ai un petit problèmedans le codeCRect W_rec, C_rec;GetWindowRect(&W_rec);j'obtiens                      W_rec.Height() = 24     OpenCV, flot optique (opticalflow) [ par Ncharpen ] Bonjour à tous, j'utilise actuellement la bibliothèque OpenCV pour effectuer le flot optique entre deux images A et B à deux instants différents (ces traitement d'image [ par abdobergach ] bonjour j'ai trouvé ce code dans une application de chargement d'une image bmp en C mais le problem j'arrive pas à comprendre ca sert à qoi le[color


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,530 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales