Другое С/С++ Вопрос - Ответ

whyega52

Гений, миллионер, плейбой, долбаеб
Модератор
2,731
2,545
Из-за чего может не реагировать менюшка на курсор (нажатия, растягивание), при этом скролл меню при помощи колесика и шифта работает?

C++:
void menu::set_visible(bool visible) {
  this->visible = visible;
  if (!visible)
    sampapi::v037r3::RefGame()->SetCursorMode(sampapi::v037r3::CURSOR_NONE, 1);
  ;
}

void menu::present() {
  if (!visible) return;

  ImGui_ImplDX9_NewFrame();
  ImGui_ImplWin32_NewFrame();
  ImGui::NewFrame();

  ImGui::SetNextWindowPos(
      ImVec2(RsGlobal.maximumWidth / 2, RsGlobal.maximumHeight / 2),
      ImGuiCond_FirstUseEver, ImVec2(0.5, 0.5));
  ImGui::SetNextWindowSize(ImVec2(700, 420), ImGuiCond_FirstUseEver);
  if (ImGui::Begin("abcde", nullptr, ImGuiWindowFlags_NoCollapse)) {
    sampapi::v037r3::RefGame()->SetCursorMode(sampapi::v037r3::CURSOR_LOCKCAM,
                                              0);
      // render

    ImGui::End();
  }

  ImGui::EndFrame();
  ImGui::Render();
  ImGui_ImplDX9_RenderDrawData(ImGui::GetDrawData());
}

bool menu::wndproc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam) {
  switch (uMsg) {
    case WM_CHAR: {
      wchar_t wch;
      MultiByteToWideChar(CP_ACP, MB_PRECOMPOSED,
                          reinterpret_cast<char*>(&wParam), 1, &wch, 1);
      wParam = wch;
      break;
    }
    case WM_KEYUP:
      if (wParam == VK_ESCAPE) set_visible(false);
      break;
  }

  ImGui_ImplWin32_WndProcHandler(hwnd, uMsg, wParam, lParam);
  auto& io = ImGui::GetIO();
  if (io.WantCaptureKeyboard || io.WantCaptureMouse) {
    return false;
  }
  return true;
}
 

Smeruxa

Известный
1,334
703
Из-за чего может не реагировать менюшка на курсор (нажатия, растягивание), при этом скролл меню при помощи колесика и шифта работает?

C++:
void menu::set_visible(bool visible) {
  this->visible = visible;
  if (!visible)
    sampapi::v037r3::RefGame()->SetCursorMode(sampapi::v037r3::CURSOR_NONE, 1);
  ;
}

void menu::present() {
  if (!visible) return;

  ImGui_ImplDX9_NewFrame();
  ImGui_ImplWin32_NewFrame();
  ImGui::NewFrame();

  ImGui::SetNextWindowPos(
      ImVec2(RsGlobal.maximumWidth / 2, RsGlobal.maximumHeight / 2),
      ImGuiCond_FirstUseEver, ImVec2(0.5, 0.5));
  ImGui::SetNextWindowSize(ImVec2(700, 420), ImGuiCond_FirstUseEver);
  if (ImGui::Begin("abcde", nullptr, ImGuiWindowFlags_NoCollapse)) {
    sampapi::v037r3::RefGame()->SetCursorMode(sampapi::v037r3::CURSOR_LOCKCAM,
                                              0);
      // render

    ImGui::End();
  }

  ImGui::EndFrame();
  ImGui::Render();
  ImGui_ImplDX9_RenderDrawData(ImGui::GetDrawData());
}

bool menu::wndproc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam) {
  switch (uMsg) {
    case WM_CHAR: {
      wchar_t wch;
      MultiByteToWideChar(CP_ACP, MB_PRECOMPOSED,
                          reinterpret_cast<char*>(&wParam), 1, &wch, 1);
      wParam = wch;
      break;
    }
    case WM_KEYUP:
      if (wParam == VK_ESCAPE) set_visible(false);
      break;
  }

  ImGui_ImplWin32_WndProcHandler(hwnd, uMsg, wParam, lParam);
  auto& io = ImGui::GetIO();
  if (io.WantCaptureKeyboard || io.WantCaptureMouse) {
    return false;
  }
  return true;
}
C++:
if (io.WantCaptureKeyboard || io.WantCaptureMouse) {
    return true;
}
 
  • Влюблен
Реакции: whyega52

nonelike

Известный
33
2
оч странный вопрос конечно, может есть у кого адреса лимитов на тачки для сампа (и гташку если это нужно)? на любую версию сампа