Подпишитесь на наш Telegram-канал, чтобы всегда быть в курсе важных обновлений! Перейти

Как пофиксить курсор в imgui ?

Начинающий
Начинающий
Статус
Оффлайн
Регистрация
15 Сен 2020
Сообщения
4
Реакции
0
Такая проблема. Создал я говно менюшку, но при инжекте в игру(gta sa), стандартный курсор винды появляется по середине экрана. Как его скрыть ? Пробовал через "ImGui::GetIO().MouseDrawCursor = 0;" - не помогло.
Вторая проблема. Если свернуть игру и развернуть, то игра крашнется.
Третья проблема. Активирую я окно, но проблема в том, что игра держит курсор по серёдке и управлять менюшкой вообще не возможно.
Вот
Пожалуйста, авторизуйтесь для просмотра ссылки.
где наглядно видны эти баги. Помогите пж, уже второй день ищу по интернету как это исправить и ничего не помогает.
 
вместо

ImGui::GetIO().ConfigFlags |= ImGuiConfigFlags_NoMouseCursorChange;
Попробовал, пишет - "class "ImGuiIO" не содержит члена "ConfigFlags"" и "идентификатор "ImGuiConfigFlags_NoMouseCursorChange" не определён".
Снимок экрана (2083).png

Снимок экрана (2082).png
 
if (menuOpen)
SetCursor(NULL);
Спасибо! Только в моём случае не (menuOpen), а (menuOpen == false). Только проблема. Курсор постоянно появляется в середине и управлять менюшкой не возможно, пока не открою меню где курсором можно управлять\двигать\что угодно делать.(Надеюсь я понятно объяснил).



Я тоже думал что из-за этого, но обновлять это лишний гемор. Придётся наверное всё-таки опять с ним повозиться.

upd.Вот так будет лучше.
C++:
Expand Collapse Copy
SetCursor(NULL);

if (menuOpen == false) { ImGui::GetIO().MouseDrawCursor = 0; }

if (menuOpen) { ImGui::GetIO().MouseDrawCursor = 1; }
 
Последнее редактирование:
Используй хук setcursorpos
C++:
Expand Collapse Copy
typedef BOOL(APIENTRY* oSetCursorPos)(int, int);
oSetCursorPos pSetCursorPos = NULL;

BOOL APIENTRY MJHook_SetCursorPos(int X, int Y)
{
    if (!menuOpen)
        return pSetCursorPos(X, Y);

    return TRUE;
}

HMODULE USER32 = GetModuleHandleA("USER32.dll");
pSetCursorPos = (oSetCursorPos)GetProcAddress(USER32, "SetCursorPos");

DetourAttach(&(LPVOID&)pSetCursorPos, (PBYTE)MJHook_SetCursorPos);
 
Назад
Сверху Снизу