下面是一个使用Dear ImGui库的ImGui::BeginCombo()函数的完整代码示例:
#include <imgui.h>
#include <imgui_impl_glfw.h>
#include <imgui_impl_opengl3.h>
int main()
{
// 初始化GLFW窗口和OpenGL上下文
glfwInit();
GLFWwindow* window = glfwCreateWindow(800, 600, "ImGui BeginCombo示例", nullptr, nullptr);
glfwMakeContextCurrent(window);
// 初始化Dear ImGui
IMGUI_CHECKVERSION();
ImGui::CreateContext();
ImGuiIO& io = ImGui::GetIO(); (void)io;
// 配置Dear ImGui为在OpenGL3上渲染
ImGui_ImplGlfw_InitForOpenGL(window, true);
ImGui_ImplOpenGL3_Init("#version 330");
// 设置样式
ImGui::StyleColorsDark();
while (!glfwWindowShouldClose(window))
{
glfwPollEvents();
// 开始新的帧,并开始创建GUI元素
ImGui_ImplOpenGL3_NewFrame();
ImGui_ImplGlfw_NewFrame();
ImGui::NewFrame();
// 创建一个具有下拉选项的Combo Box
static const char* items[] = { "选项1", "选项2", "选项3" };
static int currentItem = 0;
if (ImGui::Begin("示例窗口"))
{
if (ImGui::BeginCombo("下拉框", items[currentItem]))
{
for (int i = 0; i < IM_ARRAYSIZE(items); i++)
{
bool isSelected = (currentItem == i);
if (ImGui::Selectable(items[i], isSelected))
currentItem = i;
if (isSelected)
ImGui::SetItemDefaultFocus();
}
ImGui::EndCombo();
}
}
ImGui::End();
// 渲染GUI
glClearColor(0.45f, 0.55f, 0.60f, 1.00f);
glClear(GL_COLOR_BUFFER_BIT);
ImGui::Render();
ImGui_ImplOpenGL3_RenderDrawData(ImGui::GetDrawData());
glfwSwapBuffers(window);
}
// 清理Dear ImGui和GLFW资源
ImGui_ImplOpenGL3_Shutdown();
ImGui_ImplGlfw_Shutdown();
ImGui::DestroyContext();
glfwDestroyWindow(window);
glfwTerminate();
return 0;
}
请确保你已经正确安装并链接了Dear ImGui库,以及相关的GLFW和OpenGL库。此示例演示了如何使用ImGui::BeginCombo()函数创建一个具有下拉选项的Combo Box,并处理选择事件。你可以根据自己的需求进行修改和扩展。
内容由零声教学AI助手提供,问题来源于学员提问