Ncurses: move() ne fonctionne pas

ebousquie -  
fiddy Messages postés 11653 Date d'inscription   Statut Contributeur Dernière intervention   -
Bonjour,

Queslqu'un peut-il m'expliquer s'il existe des raisons qui pourraient empêcher la commande move(y,x) de fonctionner en mode ncurses? J'ai tenté toutes sortes d'astuces: refresh(), clear()... rien n'y fait !

Merci d'avance pour vos réponses

3 réponses

fiddy Messages postés 11653 Date d'inscription   Statut Contributeur Dernière intervention   1 847
 
Salut,
Queslqu'un peut-il m'expliquer s'il existe des raisons qui pourraient empêcher la commande move(y,x) de fonctionner en mode ncurses?
Principalement une mauvaise utilisation. As-tu par exemple utilisé getch() avant le return 0; final ?
Cdlt
0
ebousquie Messages postés 42 Statut Membre
 
Grosso modo la structure est celle ci-dessous.
Mais le texte est toujours placé au même endroit vers le milieu de la fenêtre. Quelle serait l'erreur?

Merci !

while(true)
{
move(0,0);
refresh();
printw("Texte\n" ) ;
refresh();
ch = getch();

switch(ch)
{
case A
for i de 1 à 3
move(10*i,0);
refresh();
printw("Texte1\n" ) ;
refresh();
break;

case B
move(-40,0);
refresh();
printw("Texte2\n" ) ;
refresh();
break;

case C
move(-50,0);
refresh();
printw("Texte3\n" ) ;
refresh();
return 0;
break;

{
}

Et le texte du case B ne s'affiche jamais en (-40,0)
0
fiddy Messages postés 11653 Date d'inscription   Statut Contributeur Dernière intervention   1 847
 
move(-40,0), ne fera pas grand chose de plus que move(0,0) qui est le coin supérieur gauche.
Si tu veux afficher à peu près au milieu verticalement : move(20,0).
Si tu veux afficher à peu près au milieu horizontalement : move(0,40).
N'oublie pas de faire un getch() avant le return 0; pour que tu puisses voir ce que t'affiches.

Cdlt
0