PDCurses getmaxxy 函数总是 returns 相同的值
PDCurses getmaxxy function always returns the same values
环境:
- PDCurses 最新版本
- Windows 10
- Visual Studio 2015 更新 2
问题
PDCurses 提供了一个函数getmaxxy
来获取屏幕的最大x 和y 坐标。这个 returns 在启动时正确的值,但是如果我用鼠标调整 window 的大小然后再次调用 getmaxxy
,我会得到相同的值。
这是 pdcurses 中的 bug/limitation 吗?是否有 windows 获取此信息的特定方法?
我也试过这个 windows 特定的解决方案,它也总是 returns 启动值:Getting terminal size in c for windows?
正在阅读源代码,
WINDOW
的_maxx
和_maxy
成员仅在创建window(包括复制window)时设置。
stdscr
是一个 window
如果您调整了屏幕大小,那么您应该使用 resize_term
(从 ncurses 改编的函数)将新大小告诉 PDCurses,例如,
resize_term(new_lines, new_cols);
和那重新创建了标准windows,例如stdscr
。
对于它的价值,PDCurses 提供了这些功能以与 ncurses 兼容:
- curses_version
- is_termresized(应该是is_term_resized)
- resize_term
- wresize
只需检查 KEY_RESIZE
,如果出现,请调用 resize_term(0, 0)
。您可以在演示中看到几个这样的示例(在 testcurs、rain 和 worm 中)。如果您不检查键盘输入,可以使用 is_termresized()
。
resize_term()
实际上是两个不同的函数——以零作为参数,它响应用户启动的调整大小;对于非零值,它会尝试实际将 window 的大小调整为给定的大小。通常在给定平台上只有一个或另一个功能(或两者都不可用)。 SDL 允许两者。
环境:
- PDCurses 最新版本
- Windows 10
- Visual Studio 2015 更新 2
问题
PDCurses 提供了一个函数getmaxxy
来获取屏幕的最大x 和y 坐标。这个 returns 在启动时正确的值,但是如果我用鼠标调整 window 的大小然后再次调用 getmaxxy
,我会得到相同的值。
这是 pdcurses 中的 bug/limitation 吗?是否有 windows 获取此信息的特定方法?
我也试过这个 windows 特定的解决方案,它也总是 returns 启动值:Getting terminal size in c for windows?
正在阅读源代码,
WINDOW
的_maxx
和_maxy
成员仅在创建window(包括复制window)时设置。stdscr
是一个 window
如果您调整了屏幕大小,那么您应该使用 resize_term
(从 ncurses 改编的函数)将新大小告诉 PDCurses,例如,
resize_term(new_lines, new_cols);
和那重新创建了标准windows,例如stdscr
。
对于它的价值,PDCurses 提供了这些功能以与 ncurses 兼容:
- curses_version
- is_termresized(应该是is_term_resized)
- resize_term
- wresize
只需检查 KEY_RESIZE
,如果出现,请调用 resize_term(0, 0)
。您可以在演示中看到几个这样的示例(在 testcurs、rain 和 worm 中)。如果您不检查键盘输入,可以使用 is_termresized()
。
resize_term()
实际上是两个不同的函数——以零作为参数,它响应用户启动的调整大小;对于非零值,它会尝试实际将 window 的大小调整为给定的大小。通常在给定平台上只有一个或另一个功能(或两者都不可用)。 SDL 允许两者。