环境:

  • PDCurses最新版本
  • Windows 10
  • Visual Studio 2015更新2

  • 问题
    PDCurses提供了一个函数getmaxxy来获取屏幕的最大x和y坐标。这将在启动时返回正确的值,但是如果我用鼠标调整窗口的大小,然后再次调用getmaxxy,我将获得相同的值。
    这是pdcurses中的错误/限制吗?是否有Windows特定的方法来获取此信息?
    我也尝试过Windows特定的解决方案,它也总是返回启动值:Getting terminal size in c for windows?

    最佳答案

    阅读源代码,

  • 仅在创建窗口(包括复制窗口)时设置_maxx_maxyWINDOW成员。
  • stdscr是一个窗口

  • 如果您调整了屏幕大小,则应使用resize_term(由ncurses改编的函数)告知PDCurses新的大小,例如,
    resize_term(new_lines, new_cols);
    

    并重新创建标准窗口,例如stdscr

    就其值(value)而言,PDCurses提供了以下功能以与ncurses兼容:
  • curses_version
  • is_termresized(应该是is_term_resized)
  • resize_term
  • wresize
  • 关于c++ - PDCurses getmaxxy函数始终返回相同的值,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/37489736/

    10-11 03:57