2013-02-13 49 views
0

我创建了两个Ncurses窗口:窗口1和窗口2.我能够在窗口2被调用之前写入窗口1;然而,在我调用Window 2之后,我无法使用mvwprinw(window1,“Bla”)写入窗口1。举例说明:Ncurses:创建下一个窗口后,无法在前一个窗口中写入

... 

initscr(); 
Window* window1 = newwin(10,10,0,0); 
mvwprinw(window1, "i am writing to window"); // this works 
wrefresh(window1); 

Window* window2 = newwin(10,10, 12, 12); 
mvwprintw(window2, "whee");    //works too 
wrefresh(window2); 

mvwprintw(window1, 0,0,"writing new sentence");  
// this does not show on the screen 
wrefresh(window1); 

... 

这是为什么?

+0

“失败”是什么意思?崩溃?什么都不写?打印你的秘密文件?此外,您的代码看起来很腥:mvwprintw的签名与我看到的文档不匹配:http://linux.die.net/man/3/mvwprintw – 2013-02-13 12:29:08

+0

编辑过的(即使在调用wrefresh()后也不会写任何内容。 – jhtong 2013-02-13 12:35:55

+0

你的代码仍然明显被破坏,例如mvwprinw中的输入错误和缺少的x,y参数,我会说在修复你的代码之前请求帮助,因为现在它不是很好的形状。 WINDOW在我的系统而不是Window上。 – 2013-02-13 12:40:47

回答

0

解决:

如果有人遇到类似的问题,要知道多个C++类中的编码窗口。

一个监听器类是在其中一个类中构建的。但是,它称为无限循环(不是设计代码的最佳方式,但对于程序而言是足够的)。

因此,代码被卡在无限循环中,导致下一行代码未执行。

解决方案:如果需要,请使用多线程库。