为什么我的窗户没有显示? (Ncurses的)

时间:2017-12-28 03:57:24

标签: c++ linux ncurses

我试图创建这个程序,我在stdscr上并排打印两个窗口。我创建了课程菜单'要在一个地方宣布整个屏幕的所有内容,我会创建一个菜单'主要的对象(' menu_principal')但没有任何反应。我添加了两个函数来查看我的对象是否正在创建,它是。

为什么不显示窗户?

以下是课程':

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();

1 个答案:

答案 0 :(得分:0)

简单的 program Files2; {$mode objfpc}{$H+} uses SysUtils; var TotalBytes : Int64; f : file of byte; FileName : String; begin FileName := ChangeFileExt(ParamStr(0), '.BU'); // get name of this app AssignFile(f, FileName); Reset(f); try TotalBytes := System.FileSize(f); writeln('Size of ', FileName, ' = ', TotalBytes, ' bytes'); readln; finally CloseFile(f); end; end. 调用会覆盖特定于窗口的 refresh() wrefresh(display) 。如果样本完整,有人可以指向执行此操作的特定代码行。

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