c++ 如何使imgui菜单栏粘在SDL窗口的顶部?

vjrehmav  于 2024-01-09  发布在  其他
关注(0)|答案(1)|浏览(209)

我有一个小游戏写在SDL,我试图添加顶栏由Imgui部件到我的应用程序的顶部。

  1. void Application::render()
  2. {
  3. #ifndef NDEBUG
  4. ImGui_ImplSDLRenderer3_NewFrame();
  5. ImGui_ImplSDL3_NewFrame();
  6. ImGui::NewFrame();
  7. ImGui::Begin("My Menu Bar", NULL, ImGuiWindowFlags_MenuBar );
  8. if (ImGui::BeginMenuBar())
  9. {
  10. if (ImGui::BeginMenu("File"))
  11. {
  12. if (ImGui::MenuItem("Open..", "Ctrl+O")) { }
  13. if (ImGui::MenuItem("Save", "Ctrl+S")) { }
  14. if (ImGui::MenuItem("Close", "Ctrl+W")) { }
  15. ImGui::EndMenu();
  16. }
  17. ImGui::EndMenuBar();
  18. }
  19. ImGui::End();
  20. ImGui::Render();
  21. #endif
  22. SDL_RenderClear(m_renderer->getRenderer());
  23. SDL_SetRenderTarget(m_renderer->getRenderer(), nullptr);
  24. m_stateMachine->render();
  25. #ifndef NDEBUG
  26. ImGui_ImplSDLRenderer3_RenderDrawData( ImGui::GetDrawData() );
  27. #endif
  28. SDL_RenderPresent(m_renderer->getRenderer());
  29. }

字符串
它的工作原理,但Imgui创建另一个窗口,并提请它的小部件.如何使它显示在现有窗口的顶部?

lstz6jyr

lstz6jyr1#

正如HolyBlackCat提到的,ImGui::BeginMainMenuBar() + ImGui::EndMainMenuBar()适用于这种情况

相关问题