Jump to content
Fórum Script Brasil
  • 0

bilioteca curses.h


luizfernando
 Share

Question

tenho um programa no quel eu devo criar uma janela 64X64 usando a NCURSES

,entretanto, o máximo de linhas que o programa mostra são 20. Além disso nada é mostrado:

o código exemplo que eu tenho é:

#include <curses.h> //Incluiremos a biblioteca ao nosso sistema

#include <stdio.h>

void sair (void); //Esta função fará com que o programa seja fechado

int main(void)

{

int intKey; //Variável que receberá as teclas passada pelo usuário

WINDOW *janela1, *janela2;

initscr(); /* Esta função inicializa a ncurses. Para todos os programas devemos

sempre inicializar a ncurses e depois finalizar, como veremos adiante. */

start_color(); //Esta função torna possível o uso das cores

//Abaixo estamos definindo os pares de cores que serão utilizados no programa

init_pair(1,COLOR_WHITE,COLOR_BLUE);

init_pair(2,COLOR_BLUE,COLOR_WHITE);

init_pair(3,COLOR_RED,COLOR_WHITE);

init_pair(4,COLOR_GREEN,COLOR_BLACK);

bkgd(COLOR_PAIR(1)); /*Aqui nós definiremos que a cor de fundo do nosso

programa será azul e a cor dos textos será branca.*/

for(;;)

{

attron(COLOR_PAIR(3)); /* Estamos alterando o par de cores para 3 em vez de utilizar o

par de cor por omissão(1). */

mvprintw(2,1,"Menu Principal"); // Imprimimos um texto na tela na linha 2, coluna 1

attroff(COLOR_PAIR(3)); /* Estamos alterando o par com a cor por omissão, ou

seja, retornando para o par de cor 1. */

attron(COLOR_PAIR(2));

mvprintw(4,5,"1. Janela 1"); //Imprimimos um texto na tela na linha 4, coluna 5

mvprintw(5,5,"2. Janela 2"); //Imprimimos um texto na tela na linha 5, coluna 5

mvprintw(6,5,"3. Sair"); //Imprimimos um texto na tela na linha 6, coluna 5

mvprintw(8,5,"3. Digite sua opção: "); //Imprimimos um texto na tela na linha 8, coluna 5

intKey = getch();

attroff(COLOR_PAIR(2));

move(0,0);

refresh(); //Atualiza a tela

switch (intKey)

{

case 49: janela1 = newwin(21, 64, 5, 10); /*Criaremos uma no janela com 5 linhas, 40 colunas

e que aparecera na coluna 5, linha 10 */

wbkgd(janela1,COLOR_PAIR(4)); //Definiremos a cor de fundo da janela1

//Abaixo imprimiremos um t1exto dentro da janela1

wattron(janela1, A_BOLD);

mvwprintw(janela1,2,1,"JANELA1 Verde com A_BOLD. Aperte qualquer tecla para sair.");

wattroff(janela1, A_BOLD);

wrefresh(janela1); //Atualizaremos a janela1

wgetch(janela1); //Esperaremos que alguma tecla seja apertada

delwin(janela1); //Deletaremos a janela

break;

case 50: janela2 = newwin(5, 40, 5, 10); /*Criaremos uma no janela com 5 linhas, 40 colunas

e que aparecera na coluna 5, linha 10 */

wbkgd(janela2,COLOR_PAIR(4)); //Definiremos a cor de fundo da janela2

box(janela2, ACS_VLINE, ACS_HLINE); //Aqui colocaremos uma borda na janela2

//Abaixo imprimiremos um texto dentro da janela2

mvwprintw(janela2,2,2,"JANELA2 Verde sem A_BOLD. Aperte qualquer tecla para sair.");

wrefresh(janela2); //Atualizaremos a janela2

wgetch(janela2); //Esperaremos que alguma tecla seja apertada

delwin(janela2); //Deletaremos a janela

break;

case 51: sair(); // Sai do programa

break;

}

refresh(); //Atualiza a tela

}

}

void sair()

{

endwin(); /* Sempre que finalizarmos um programa com a biblioteca curses, devemos

executar este comando. */

exit(0);

}

caso seja digitado 1 nada aparece com 21 linhas, mas com 20 aparece

Como eu faço para que janelas maiores apareçam ?

mais uma coisa, como eu faço para que, usando a biblioteca curses, ou outra qualquer, eu saiba que o usuário digitou uma das setas de direçao?

Link to comment
Share on other sites

0 answers to this question

Recommended Posts

There have been no answers to this question yet

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share



  • Forum Statistics

    • Total Topics
      149.9k
    • Total Posts
      646.8k
×
×
  • Create New...