Ncurses:如何在不丢失当前位置的情况下刷新菜单?

如何在不丢失当前位置的情况下重新加载菜单中的数据?

例如,当用户“选择”项目时,执行改变数据的动作。 (更新项目,删除项目或在菜单中添加新项目。)我想重新加载菜单但仍然将光标保持在刚刚选择的项目上。 最好的方法是什么?


作为参考,这个问题似乎非常接近,但我认为它不包括添加/删除问题: 如何替换ncurses&C中的字符串菜单项

这个问题似乎也很相似,但对我来说太具体了: Ncurses菜单 – 记住选择

如果您重建菜单,您的程序将必须跟踪之前的“当前”项目,并在通过getch恢复其读取之前找到该项目。 getch函数刷新屏幕,程序为getch设置的位置变为明显的光标位置。

通常你会使用item_index来询问当前项目的菜单库,并使用set_current_item来告诉菜单库光标所在的项目,但是你可以在屏幕上的“任何地方”进行调用。 同样,如果重建菜单,该索引信息可能是陈旧的。

如果没有一些特定的样本程序,那么只能提供一般建议。