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

3
如何在不失去当前位置的情况下重新加载菜单中的数据?
例如,当用户“选择”一个项目时,并执行更改数据的操作(更新该项、删除它或将新项添加到菜单中),我想重新加载菜单但仍保持光标在刚才选择的项目上。怎样才是最好的做法?
供参考,这个问题看起来非常接近,但我认为它没有涵盖添加/删除问题:如何在ncurses&C中替换字符串菜单项 这个问题也类似,但对我来说过于具体:Ncurses菜单-记忆选择

相关问题:http://stackoverflow.com/questions/34448130/menu-dividers-in-ncurses/34454987 - Sauce McBoss
1个回答

3
如果您重建菜单,您的程序将不得不跟踪之前的“当前”项目,并在通过getch继续读取之前找到该项目。 getch函数刷新屏幕,并且您的程序为getch设置的位置成为表面光标位置。
通常,您会使用item_index询问菜单库哪个是当前项目,并使用set_current_item告诉菜单库光标位于哪个项目上,但是可能会在屏幕的“任何位置”调用getch。同样,如果您重新构建菜单,则索引信息可能已过时。
没有具体示例程序,只能提供一些一般性建议。

谢谢!我现在想保持问题的普遍性,所以这个答案对我来说似乎很合适。 - Sauce McBoss

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接