环境:
问题
PDCurses提供了一个函数getmaxxy来获得屏幕的最大x和y坐标。这将在启动时返回正确的值,但如果我用鼠标调整窗口大小,然后再次调用getmaxxy,则会得到相同的值。
这是bug中的错误/限制吗?是否有一种特定于windows的方法来获取这些信息?
我也尝试过这个特定于windows的解决方案,而且它也总是返回启动值:窗口的终端尺寸是c吗?
发布于 2016-05-28 00:46:28
阅读消息来源,
_maxx和_maxy成员的WINDOW。stdscr是一个窗口如果您调整了屏幕的大小,那么您应该使用PDCurses (一个来自ncurses的函数)告诉resize_term新的大小,例如,
resize_term(new_lines, new_cols);并重新创建标准窗口,如stdscr。
值得注意的是,PDCurses提供了这些函数以与ncurses兼容:
发布于 2016-05-28 04:08:09
只需检查是否有KEY_RESIZE,如果发生,就调用resize_term(0, 0)。您可以在演示中看到这方面的几个例子(在testcurs、下雨和蠕虫中)。如果不检查键盘输入,可以使用is_termresized()。
resize_term()实际上是两个不同的函数--以零作为参数,它响应用户发起的大小调整;对于非零,它试图将窗口实际调整到给定的大小。通常,在给定的平台上只有一种或另一种功能(或两者都不可用)。SDL允许两者都可以。
https://stackoverflow.com/questions/37489736
复制相似问题