【发布时间】:2017-02-21 00:02:17
【问题描述】:
我的问题是我不知道如何使用 ncurses5 和鼠标事件向下和向上滚动。
我知道这是 ncurses5.6+ 的一个功能,但我不知道我是否可以从打包者那里获得这个版本。
即使我能得到它,zsh、bash、sh 等在每个终端上都能很好地滚动(如何?),这是硬件功能吗?我可以在我的 c++ 程序中获得我自己的库而不添加比 ncurses、c 标准和 std 更多的库吗?
此代码适用于向下滚动,但在我尝试集成 BUTTON5_PRESSED 时无法编译(因为我的 ncurses 版本)。
等等,实际上我可以处理向下滚动,但不能处理向上滚动。有没有办法处理这两者?
// mouse event structure
MEVENT event;
if (getmouse(&event) == OK) {
printw("mouse Event OK");
if (event.bstate & BUTTON4_PRESSED)
wprintw(_win, "Button4\n");
else if (event.bstate & BUTTON5_PRESSED) // does not compile
wprintw(_win, "Button5\n");
}
我的实际代码托管在 github https://github.com/Liroo/Nanotekspice/blob/master/lib/cli/mode/NcursesMode.cpp,如果你有动力就去看看吧! (顺便说一句,使用它和这个命令来获取 ncurses 格式:./nanotekspice resources/basics/test.nts c=1 --mode=ncurses)
【问题讨论】:
-
不要垃圾标签。 C 不是 C++ 不是 C!
-
这种行为可以用 c 和 c++ 编码...我认为我可以同时使用这两个标签
-
当然,我不会重现这个错误。
-
@toohonestforthissite 在这种情况下你是不对的。该代码对 C 和 C++ 都有效,最重要的是,同一个包含的库适用于两种语言。在这种情况下使用这两个标签是完全有效的。此外,尽管它是一个
.cpp示例文件,但我怀疑更多的 C 用户会熟悉 ncurses