1
私はこのプログラムを作成しようとしています。ここでは、stdscrに2つのウィンドウを並べて表示します。私はクラス 'メニュー'を作成して、スクリーン全体についてのすべてを1か所で宣言し、メインメニューに 'menu'オブジェクト( 'menu_principal')を作成しますが、何も起こりません。オブジェクトが作成されているかどうかを確認するために2つの関数を追加しました。なぜ私のウィンドウは表示されませんか? (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()"ステートメントを追加して解決したことに気付きました。かなりノービッシュミス。 –