• Я зарабатываю 100 000 RUB / месяц на этом сайте!

    А знаешь как? Я всего-лишь публикую (создаю темы), а админ мне платит. Трачу деньги на мороженое, робуксы и сервера в Minecraft. А ещё на паль из Китая. 

    Хочешь так же? Пиши и узнавай условия: https://t.me/alex_redact
    Реклама: https://t.me/yougame_official

Гайд [ImGui] ListBox & Callback getter

Статус
В этой теме нельзя размещать новые ответы.
///
Пользователь
Пользователь
Статус
Оффлайн
Регистрация
25 Янв 2018
Сообщения
528
Реакции
114
Привет всем)
Сегодня я очередной раз делаю пасто-тему)
Меньше слов больше темы:
В ImGui есть такая штука, как ListBox
3b41347cc23a.png
Всё хорошо, но есть одно ограничение, а конкретно то, что функция ListBox
в качестве элементов принимает указатель на массив строк, а я хочу передать
туда vector<string>, как же это сделать?
------------------------------------------------------------------------------------------------------------------------------------
Нам нужно описать простою CallBack функцию и перегрузить оригинальный ListBox
Код:
Expand Collapse Copy
static auto vector_callback = [](void* vec, int idx, const char** out_text)
{
auto& vector = *static_cast<vector<string>*>(vec);
if (idx < 0 || idx >= static_cast<int>(vector.size())) { return false; }
*out_text = vector.at(idx).c_str();
return true;
};
Код:
Expand Collapse Copy
bool ListBox(const char* label, int* currIndex, vector<string>& values)
{
if (values.empty()) { return false; }
return ListBox(label, currIndex, vector_callback,
static_cast<void*>(&values), values.size());
}
Код:
Expand Collapse Copy
void AddProcessToVec() {
        hSnap = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);
        m_ProcNames.clear();
        if (Process32First(hSnap, &pe)) {
            while (Process32Next(hSnap, &pe)) {
                m_ProcNames.push_back(pe.szExeFile);
            }
        }
    }
Код:
Expand Collapse Copy
static int VotedIdx = 0;
ImGui::ListBox("##List1", &VotedIdx, proc.m_ProcNames);
В скором времени @P45H3 возможно сольёт исходник этой программы.
ffb29e68775f.png
-----------------------------------------------------------------------------------------------------------------------------------
Credits: @P45H3
 
Прикольна,а нахуя оно надо???
 
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Для какой Visual Studio? При копировании половина кода красное.
 
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Элита , скриншот посмотри.
#include <vector>
using namespace std;

а нахуя оно надо???
Разница между мосивом и контейнером в том, что у мосива фиксированное число элементов, а в контейнер их можно добавлять на лету.
 
Credits: @@P45H3 Это значит автор? Вы бы хотя бы гуглом пользовались для начала , прежде чем чужое за своё выдавать.
 
Credits: @@P45H3 Это значит автор? Вы бы хотя бы гуглом пользовались для начала , прежде чем чужое за своё выдавать.

Я хотел бы промолчать, но отвечу... Посмотри вниз темы!!!
Даже тему не чекнул и пишешь ...
 
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Credits: @@P45H3 Это значит автор? Вы бы хотя бы гуглом пользовались для начала , прежде чем чужое за своё выдавать.
чувак чо ты несешь? он указал автора темы ты предьявляешь хуйню рил
 
чувак чо ты несешь? он указал автора темы ты предьявляешь хуйню рил
Чувак это ты скорее всего.

Будьте добры , администрация или топик пастер темы.
Автора кода добавьте в первый пост "Elias Daler"
 
Можно исходник этого чуда?
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху Снизу