PDCurses提供了一个函数getmaxxy
来获取屏幕的最大x和y坐标。这会在启动时返回正确的值,但如果我用鼠标调整窗口大小然后再次调用getmaxxy
,我会返回相同的值。
这是pdcurses中的错误/限制吗?是否有一种特定于Windows的方式来获取此信息?
我也尝试过这个特定于Windows的解决方案,它也总是返回启动值:Getting terminal size in c for windows?
答案 0 :(得分:2)
阅读来源,
_maxx
的{{1}}和_maxy
成员(包括复制窗口)。WINDOW
是一个窗口如果您调整了屏幕大小,那么您应该使用stdscr
(一种改编自ncurses的函数)告诉PDCurses新的大小,例如,
resize_term
和 重新创建标准窗口,例如resize_term(new_lines, new_cols);
。
对于它的价值,PDCurses提供了与ncurses兼容的这些功能:
答案 1 :(得分:1)
只需检查view.php
,如果发生,请致电KEY_RESIZE
。你可以在演示中看到几个这样的例子(在testcurs,rain和worm中)。如果您没有检查键盘输入,可以使用resize_term(0, 0)
。
is_termresized()
实际上是两个不同的函数 - 以零作为参数,它响应用户启动的大小调整;使用非零,它会尝试将窗口实际调整为给定大小。通常,在给定平台上只有一个或另一个功能(或两者都不可用)。 SDL允许两者。