0

ウィンドウ 1 とウィンドウ 2 の 2 つの Ncurses ウィンドウを作成しました。ウィンドウ 2 が呼び出される前にウィンドウ 1 に書き込むことができます。ただし、ウィンドウ 2 を呼び出した後、mvwprinw(window1, "Bla") を使用してウィンドウ 1 に書き込むことができません。説明する:

...

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

...

どうしてこんなことに?

4

1 に答える 1

0

解決済み:

誰かが同様の問題に遭遇した場合は、複数の C++ クラス内でウィンドウをコーディングしていることに注意してください。

クラスの 1 つにリスナー クラスが作成されました。ただし、これは無限ループを呼び出します (コードを設計するための最適な方法ではありませんが、プログラムには十分です)。

そのため、コードが無限ループに陥り、次のコード行が実行されないままになっていました。

解決策: 必要に応じて、マルチスレッド ライブラリを使用します。

于 2013-02-13T12:45:44.037 に答える