我正在尝试创建这个程序,我在stdscr上并排打印两个窗口。我已经创建了类'菜单'来在一个地方声明整个屏幕的所有内容,我在main中创建了一个'menu'对象('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();
普通的refresh()
调用覆盖了窗口特定的wrefresh(display)
和wrefresh(help)
。如果样本完整,有人可以指向执行此操作的特定代码行。
(cout
调用没有多大帮助:您应该将该信息写入文件而不是屏幕)。