1
stdscr에 두 개의 창을 나란히 인쇄하는 프로그램을 만들려고합니다. 나는 한 곳에서 전체 화면에 대한 모든 것을 선언하기 위해 'menu'클래스를 만들었고, main에서 'menu'객체 ('menu_principal')를 만들지 만 아무 일도 일어나지 않습니다. 내 객체가 만들어지고 있는지 확인하기 위해 두 개의 함수를 추가했습니다.내 윈도우가 표시되지 않는 이유는 무엇입니까? (Ncurses)
왜 창이 표시되지 않습니까?
class menu{
public:
menu(int row, int col){
display = newwin((row-4), (col/2), 2, 0);
getmaxyx(display, drow, dcol);
help = newwin((row-4), (col/2), 2, (col/2));
getmaxyx(help, hrow, hcol);
refresh();
box(display, 0, 0);
wrefresh(display);
box(help, 0,0);
wrefresh(help);
refresh();
}
int prueba1(){
return (this->drow);
}
int prueba2(){
return (this->hrow);
}
private:
int y, x, drow, dcol, hrow, hcol;
WINDOW * display;
WINDOW * help;
};
다음은 주요의 일부 : 여기
클래스 '메뉴'입니다int main(int argc, char const *argv[]) {
int row=0, col=0;
initscr();
refresh();
cbreak();
getmaxyx(stdscr, row, col);
menu* menu_principal = new menu(row, col);
refresh();
cout << row;
cout << menu_principal->prueba1();
cout << menu_principal->prueba2();
감사합니다. refresh() 호출을 더 나은 곳으로 옮겼지만 문제가 아닙니다. 내가 "int c = getch()"문을 추가하고 그것을 해결하기 전에 내가 닫히기 전에 기다리는 프로그램을 지시하지 않았다는 것을 깨달았다. 꽤 noobish 실수. –