1

環境:

  • PDCurses 最新バージョン
  • ウィンドウズ10
  • Visual Studio 2015 Update 2

問題

PDCurses はgetmaxxy、画面の最大 x 座標と y 座標を取得する関数を提供します。これは起動時に正しい値を返しますが、マウスでウィンドウのサイズを変更してからgetmaxxy再度呼び出すと、同じ値が返されます。

これは pdcurses のバグ/制限ですか? 代わりにこの情報を取得する Windows 固有の方法はありますか?

私もこのWindows固有のソリューションを試しましたが、それも常にスタートアップ値を返します: Getting terminal size in c for windows?

4

2 に答える 2

2

ソースを読むと、

  • _maxxおよびの_maxyメンバーはWINDOW、ウィンドウの作成時 (ウィンドウの複製を含む) にのみ設定されます。
  • stdscr窓です

画面のサイズを変更した場合は、resize_term(ncurses から適応した関数)を使用して、新しいサイズについて PDCurses に通知する必要があります。

resize_term(new_lines, new_cols);

などの標準ウィンドウstdscr再作成します。

価値のあるものとして、PDCurses は ncurses との互換性のために次の関数を提供します。

于 2016-05-28T00:46:28.343 に答える