Ncurses菜单 – 记住选择

我正在使用Ncurses库来做一些交互式菜单,我不知道如何做一件事。 我有简单的菜单,只有很少的选项,我转向O_ONEVALUE可以同时选择多个选项,在发布菜单之前我获取所有菜单项并将它们标记为选中或不选,这取决于我保存在某处的位掩码否则,但是当菜单发布时,每个选项都关闭,这里是代码:

 //acquiring menu items ITEM** header_items = menu_items(params.header_opts_menu); ITEM* cur_item; if (header_items == NULL) { client_cleanup(); syslog_nsys_f(LOG_ERR, "error while getting header menu items"); } //selecting appropriate items long header_menu_items_count = ARRAY_SIZE(header_menu_choices); for (i = 0; i < header_menu_items_count; ++i) { if ((params.header_flags & (1 << (i))) != 0) decision = TRUE; else decision = FALSE; if (set_item_value(header_items[i], TRUE) != E_OK) { client_cleanup(); syslog_nsys_f(LOG_ERR,"error while setting menu item value"); } } if (post_menu(params.header_opts_menu) != E_OK) { client_cleanup(); syslog_nsys_f(LOG_ERR,"error while posting header options menu"); } set_menu_items(params.header_opts_menu,header_items); refresh(); 

即使我将每个项目的值设置为TRUE也没有任何反应,我的错误在哪里?

看起来你试图在调用post_menu之后调用set_menu_items。 检查set_menu_items的返回值,您可能会收到E_POSTED错误。