2013-02-13 72 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++類中的編碼窗口。

一個監聽器類是在其中一個類中構建的。但是,它稱爲無限循環(不是設計代碼的最佳方式,但對於程序而言是足夠的)。

因此,代碼被卡在無限循環中,導致下一行代碼未執行。

解決方案:如果需要,請使用多線程庫。