Ir para conteúdo
Fórum Script Brasil
  • 0

bilioteca curses.h


luizfernando

Pergunta

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 para o comentário
Compartilhar em outros sites

0 respostass a esta questão

Posts Recomendados

Até agora não há respostas para essa pergunta

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,1k
    • Posts
      651,8k
×
×
  • Criar Novo...