The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

форумы  помощь  поиск  регистрация  майллист  ВХОД  слежка  RSS
"ncurses.h -- не работают окна"
Вариант для распечатки Архивированная нить - только для чтения! 
Пред. тема | След. тема 
Форумы Программирование под UNIX (Public)
Изначальное сообщение [Проследить за развитием треда]

"ncurses.h -- не работают окна"
Сообщение от vincent Искать по авторуВ закладки on 01-Дек-03, 18:44  (MSK)
Помогите разобраться с окнами.
Суть проблемы:
не получается что либо сделать с созданными окнами, даже вывести простой текст
Подскажите что я делаю не так.
Заранее благодарен.
Вот пример моего Makefile и моей программы
===Makefile===
#Makefile for the program window
OBJECTS= window.o
PROGRAMS= window
window: $(OBJECTS)
g++ $(CFLAGS) -o $(PROGRAMS) $(OBJECTS)  -lncurses -lm
# Clean up build products.
clean:
rm -f *.o $(PROGRAMS)
===window.cpp===
#include <ncurses.h>
int main() {
    
    if(!initscr()){
printf("ERROR");
return 1;
    }
    else{
addstr("SCREEN is work\n");//выводится это сообщение
getch();
    }
    refresh();
    noecho();
    cbreak();
    WINDOW* mywin;
    mywin=newwin(0,0,0,0);
    
    for(int i=0; i<COLS; i++){
waddch(mywin,'#');//хочу вывести в окно mywin знаки #
    }//но они не выводятся
    getch();
    endwin();
    return 0;
}
  Рекомендовать в FAQ | Cообщить модератору | Наверх

 Оглавление

Индекс форумов | Темы | Пред. тема | След. тема
Сообщения по теме

1. "ncurses.h -- не работают окна"
Сообщение от divan emailИскать по авторуВ закладки on 02-Дек-03, 15:08  (MSK)
>Помогите разобраться с окнами.
>Суть проблемы:
>не получается что либо сделать с созданными окнами, даже вывести простой текст
>
>Подскажите что я делаю не так.
>Заранее благодарен.
>Вот пример моего Makefile и моей программы
>===Makefile===
>#Makefile for the program window
>OBJECTS= window.o
>PROGRAMS= window
>window: $(OBJECTS)
>g++ $(CFLAGS) -o $(PROGRAMS) $(OBJECTS)  -lncurses -lm
># Clean up build products.
>clean:
>rm -f *.o $(PROGRAMS)
>===window.cpp===
>#include <ncurses.h>
>int main() {
>
>    if(!initscr()){
>printf("ERROR");
>return 1;
>    }
>    else{
>addstr("SCREEN is work\n");//выводится это сообщение
>getch();
>    }
>    refresh();
>    noecho();
>    cbreak();
>    WINDOW* mywin;
>    mywin=newwin(0,0,0,0);
>
>    for(int i=0; i<COLS; i++){
>waddch(mywin,'#');//хочу вывести в окно mywin знаки #
>    }//но они не выводятся
>    getch();
>    endwin();
>    return 0;
>}

if(!initscr()){ - означает true если initscr возвращает ноль. А при ошибке initscr возвращает NULL, иначе - указатель. В мане ведь написано.
Поэтому эта строчка должна выглядеть так - if (initscr() == NULL) {

Удачи!

  Рекомендовать в FAQ | Cообщить модератору | Наверх

2. "ncurses.h -- не работают окна"
Сообщение от divan emailИскать по авторуВ закладки on 02-Дек-03, 15:14  (MSK)
А символы не выводяться потому что, после вывода сивмовлов нужно обновлять окно - wrefresh(mywin);

Плюс размер окошка нужно сделать больше чем 0х0 :) ХОтя бы newwin(LINES, COLS, 0, 0);

  Рекомендовать в FAQ | Cообщить модератору | Наверх

3. "ncurses.h -- не работают окна"
Сообщение от vincent emailИскать по авторуВ закладки on 02-Дек-03, 16:25  (MSK)
wrefresh(mywin);  -- помогло, большое спасибо
newwin(0,0, 0, 0); -- это создается окно размером в весь экран


  Рекомендовать в FAQ | Cообщить модератору | Наверх

4. "ncurses.h -- не работают окна"
Сообщение от divan emailИскать по авторуВ закладки on 02-Дек-03, 17:09  (MSK)
>newwin(0,0, 0, 0); -- это создается окно размером в весь экран
Да, точно, уже увидел. My bad :)


  Рекомендовать в FAQ | Cообщить модератору | Наверх


Удалить

Индекс форумов | Темы | Пред. тема | След. тема
Пожалуйста, прежде чем написать сообщение, ознакомьтесь с данными рекомендациями.




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2025 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру