我有一个小游戏写在SDL,我试图添加顶栏由Imgui部件到我的应用程序的顶部。
void Application::render()
{
#ifndef NDEBUG
ImGui_ImplSDLRenderer3_NewFrame();
ImGui_ImplSDL3_NewFrame();
ImGui::NewFrame();
ImGui::Begin("My Menu Bar", NULL, ImGuiWindowFlags_MenuBar );
if (ImGui::BeginMenuBar())
{
if (ImGui::BeginMenu("File"))
{
if (ImGui::MenuItem("Open..", "Ctrl+O")) { }
if (ImGui::MenuItem("Save", "Ctrl+S")) { }
if (ImGui::MenuItem("Close", "Ctrl+W")) { }
ImGui::EndMenu();
}
ImGui::EndMenuBar();
}
ImGui::End();
ImGui::Render();
#endif
SDL_RenderClear(m_renderer->getRenderer());
SDL_SetRenderTarget(m_renderer->getRenderer(), nullptr);
m_stateMachine->render();
#ifndef NDEBUG
ImGui_ImplSDLRenderer3_RenderDrawData( ImGui::GetDrawData() );
#endif
SDL_RenderPresent(m_renderer->getRenderer());
}
字符串
它的工作原理,但Imgui创建另一个窗口,并提请它的小部件.如何使它显示在现有窗口的顶部?
1条答案
按热度按时间lstz6jyr1#
正如HolyBlackCat提到的,
ImGui::BeginMainMenuBar() + ImGui::EndMainMenuBar()
适用于这种情况