我试图创建这个程序,在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();发布于 2017-12-28 11:02:19
普通的refresh()调用正在覆盖特定于窗口的wrefresh(display)和wrefresh(help).。如果示例完成,有人可以指向正在执行此操作的特定代码行。
( cout调用没有多大帮助:您应该将这些信息写入文件而不是屏幕)。
https://stackoverflow.com/questions/48001412
复制相似问题