如何在NCurses/PdCurses中实现滚动或列表框?(C)

How to implement a scroll or list box in NCurses/PdCurses? ( C )

本文关键字:列表 滚动 实现 NCurses PdCurses      更新时间:2023-10-16

我正在为一个学校项目创建一个文本用户界面应用程序。我真的需要关于如何在NCurses/PDCurses(C)中实现滚动框或列表框的帮助。

就我所研究的而言,scrollok使它成为可能。我在我的项目中试过,但没有用。

滚动框用于垂直显示名称列表,当用户按"N"时,滚动下一部分,当用户按下"p"时,则滚动到上一部分。

谢谢!

scrollok并没有神奇地创建滚动框,它只是允许窗口向上滚动。您甚至不需要scrollok。只是

  • 维护要显示的最顶端名称的索引i(最初为0)
  • 从最顶层开始,将索引i到最小值(i+h-1imax)的高度h名称打印到窗口
  • 当用户按下"N"时,如果i+himax然后将i设置为i+h,清除窗口框,转到打印
  • 当用户按下"P"时,如果i>0然后将i设置为i-h,清除窗口框,转到打印

你见过CDK(Curses Development Kit)吗?它有源代码,所以你可以检查或使用它。这个工具包上还有关于ncurses网站的信息。