2012-06-13 78 views
2

我正在使用Ncurses库做一些交互式菜单,我不知道如何做一件事。我有几个选项简单的菜单,我打开O_ONEVALUE这么多的选项可以同时选择,在发布菜单之前,我得到所有菜单项并将它们标记为选中或不选,具体取决于我保存在某处的位掩码别的,但是当菜单张贴的每一个选项是关闭的,这里是代码:Ncurses菜单 - 记住选择

//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什么也没有发生,哪里是我的错?

回答

0

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