2

ウィンドウのサイズ変更を扱うSOに関する他の質問を見てきました。たとえば、ncurses - サイズ変更の不具合

その質問のコードには、サイズ変更にウィンドウの内容を再描画するための for ループがあります。

私の質問は: への呼び出しの後と へclear()の呼び出しの前にウィンドウを再表示するのではなくrefresh()、すでに出力バッファーにあるテキストを curses に使用させることは可能ですか?

つまり、クリア/再印刷ではなく、テキストを「リフロー」するには?

複数のウィンドウが複数のスレッドによって更新されるかなり複雑な ncurses アプリケーションがあり、これを行うためのきれいな方法が実際にはわかりません。

4

1 に答える 1

0

あなたの質問に直接答えるには、「リフロー」する方法や、ncurses にテキストの調整を処理させる方法はありません。

ただし、パネル ライブラリ (ncurses の一部) を使用してウィンドウを処理できます。パネルを使用すると、 set_panel_userptrを介して任意のユーザー データをアタッチできます。これを使用して、コンテンツのサイズを変更できる各パネルにコールバック関数を保存できます。

サイズ変更ハンドラーは、サイズ変更コールバックを呼び出すすべてのパネルをループできます。

ちなみに、ncurses はスレッドセーフではありません。スレッドが ncurses を安全に使用していることを確認してください。

于 2013-05-03T16:31:45.197 に答える