为什么我的 windows 没有显示? (诅咒)

Why aren't my windows being displayed? (Ncurses)

我正在尝试创建这个程序,我在 stdscr 上并排打印两个 windows。我创建了 class 'menu' 来在一个地方声明整个屏幕的所有内容,我在 main 中创建了一个 'menu' 对象 ('menu_principal') 但没有任何反应。我添加了两个函数来查看我的对象是否正在创建,它是。

为什么 windows 没有显示?

这里是 class 'menu':

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() 调用正在覆盖 window-特定的 wrefresh(display)wrefresh(help)。如果样本完整,有人可以指出执行此操作的特定代码行。

cout 调用没有太大帮助:您应该将该信息写入文件而不是屏幕)。