2

Ncurses ライブラリを使用していくつかのインタラクティブなメニューを実行していますが、1 つのことを行う方法がわかりません。オプションがほとんどないシンプルなメニューがあります。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何もしないように設定しても、私の間違いはどこにありますか?

4

1 に答える 1

0

post_menu を呼び出した後に set_menu_items を呼び出そうとしているようです。おそらく E_POSTED エラーが発生している set_menu_items からの戻り値を確認してください。

于 2012-06-18T20:11:35.087 に答える