Вопрос Как написать мультиселект/MultiCombo?

Начинающий
Статус
Оффлайн
Регистрация
12 Ноя 2020
Сообщения
17
Реакции[?]
2
Поинты[?]
0
Помогите пожалуйста как написать мультиселект ( по типу ImGui::Combo("...") но только что бы можно было выбирать несколько функции для примера как в читах csgo (Hitbox))
 
Забаненный
Статус
Оффлайн
Регистрация
11 Май 2020
Сообщения
115
Реакции[?]
91
Поинты[?]
0
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Помогите пожалуйста как написать мультиселект ( по типу ImGui::Combo("...") но только что бы можно было выбирать несколько функции для примера как в читах csgo (Hitbox))
 
midnight.im
Администратор
Статус
Оффлайн
Регистрация
1 Июл 2015
Сообщения
1,650
Реакции[?]
2,173
Поинты[?]
162K
ImGui::BeginCombo
ImGui::Selectable
ImGui::Selectable
ImGui::Selectable
ImGui::Selectable
ImGui::Selectable
ImGui::Selectable
ImGui::EndCombo
 
Забаненный
Статус
Оффлайн
Регистрация
11 Май 2020
Сообщения
115
Реакции[?]
91
Поинты[?]
0
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Я смотрел но я понял то что сначала пишется if и всё :D
ну тогда тебе сюда
Пожалуйста, авторизуйтесь для просмотра ссылки.
ImGui::BeginCombo
ImGui::Selectable
ImGui::Selectable
ImGui::Selectable
ImGui::Selectable
ImGui::Selectable
ImGui::Selectable
ImGui::EndCombo
А потом для отступа ImGui::Spacing()
 
VirtualAllocEx
Пользователь
Статус
Оффлайн
Регистрация
30 Дек 2021
Сообщения
358
Реакции[?]
83
Поинты[?]
5K
хороший вариант, но говно
ImGui::BeginCombo
ImGui::Selectable
ImGui::Selectable
ImGui::Selectable
ImGui::Selectable
ImGui::Selectable
ImGui::Selectable
ImGui::EndCombo
Сплошной говнокод
На данный момент лучший и удобный мультикомбо
C++:
void ImGui::MultiCombo(const char* label, bool combos[], const char* items[], int items_count)
{
    std::vector<std::string> vec;
    static std::string preview;
    for (int i = 0, j = 0; i < items_count; i++)
    {
        if (combos[i])
        {
            vec.push_back(items[i]);
            if (j > 2)
                preview = vec.at(0) + ", " + vec.at(1) + ", " + vec.at(2) + ", ...";
            else if (j)
                preview += ", " + (std::string)items[i];
            else
                preview = items[i];

            j++;
        }
    }
    if (BeginCombo(label, preview.c_str()))
    {
        for (int i = 0; i < items_count; i++) {
            Selectable(items[i], &combos[i], ImGuiSelectableFlags_DontClosePopups);
        }
        EndCombo();
    }

    preview = "None";
}

static bool multi[5];
const char* multicombo_items[] = { "Selected 1", "Selected 2", "Selected 3", "Selected 4", "Selected 5" };
ImGui::MultiCombo("MultiCombo", multi, multicombo_items, IM_ARRAYSIZE(multicombo_items));
 
Последнее редактирование:
Сверху Снизу