Dalam contoh proyek dua pelajaran sebelumnya, setiap kali kita buka proyek pakai Visual Studio, dua jendela akan muncul sekaligus: satu jendela command line hitam dan satu jendela utama GUI ImGui. Kita hanya ingin menampilkan jendela GUI saja tanpa konsol tambahan.
Cara Menghapus Jendela Konsol Hitam

Seperti pada gambar di atas, program akan menampilkan dua jendela sekaligus saat dijalankan. Berikut langkah untuk menonaktifkan jendela command line sepenuhnya.
Pertama, tambahkan baris kode berikut di paling atas file sumber, sebelum semua perintah include header:
#pragma comment(linker, "/SUBSYSTEM:windows /ENTRY:mainCRTStartup")Code language: C++ (cpp)

Jika tidak menambahkan baris ini, nanti akan muncul error linker saat build. Setelah menambahkan, klik kanan nama proyek di Solution Explorer lalu pilih Properties.


Kemudian buka menu pengaturan secara berurutan: Configuration Properties → Linker → System
Ubah nilai kolom SubSystem menjadi Windows
Simpan semua pengaturan lalu jalankan ulang proyek, jendela konsol hitam tidak akan muncul lagi, program akan berjalan layaknya aplikasi GUI standar.

Saat ini semua elemen UI masih terbatas di panel kecil bernama Control Panel. Selanjutnya kita ubah kode agar panel ini memenuhi seluruh jendela GLFW utama.
Atur Kontrol Agar Memenuhi Seluruh Jendela Utama
Cari baris kode asli berikut di dalam loop render:
ImGui::Begin("Control Panel");Code language: PHP (php)
Ganti baris tunggal tersebut dengan blok kode lengkap di bawah ini:
// Pengaturan utama untuk layar penuh
// Paksa panel ImGui menutupi seluruh jendela GLFW
// 1. Sinkronkan posisi dan ukuran setiap frame dengan jendela GLFW luar
ImGui::SetNextWindowPos(ImVec2(0, 0));
ImGui::SetNextWindowSize(io.DisplaySize);
// 2. Hapus semua hiasan jendela: bingkai, seret, ubah ukuran, simpan pengaturan tata letak
ImGuiWindowFlags window_flags = ImGuiWindowFlags_NoDecoration
| ImGuiWindowFlags_NoMove
| ImGuiWindowFlags_NoResize
| ImGuiWindowFlags_NoSavedSettings;
// 3. Hilangkan sudut bulat dan garis tepi agar menempel sempurna ke pinggir jendela
ImGui::PushStyleVar(ImGuiStyleVar_WindowRounding, 0.0f);
ImGui::PushStyleVar(ImGuiStyleVar_WindowBorderSize, 0.0f);
// 4. Buat jendela dengan flag (bilah judul akan tersembunyi)
ImGui::Begin("Control Panel", nullptr, window_flags);Code language: C++ (cpp)
Blok kode ini berfungsi menyesuaikan ukuran panel ImGui agar sama persis dengan jendela GLFW sekaligus menghapus hiasan berlebih untuk tampilan layar penuh tanpa bingkai.
Lalu tepat di bawah baris
ImGui::End();Code language: CSS (css)
Tambahkan kode berikut:
ImGui::PopStyleVar(2);Code language: CSS (css)
Fungsi PushStyleVar menyimpan perubahan gaya sementara ke tumpukan dan menimpa gaya global default.
Sebelumnya kita memasukkan dua pengaturan gaya ke tumpukan:
ImGui::PushStyleVar(ImGuiStyleVar_WindowRounding, 0.0f);
ImGui::PushStyleVar(ImGuiStyleVar_WindowBorderSize, 0.0f);Code language: CSS (css)
PopStyleVar(2) mengeluarkan dua nilai sekaligus dari tumpukan dan mengembalikan gaya global awal.
Berikut kode main lengkap dengan semua perubahan:
#pragma comment(linker, "/SUBSYSTEM:windows /ENTRY:mainCRTStartup")
#include <GLFW/glfw3.h>
#include "imgui.h"
#include "backends/imgui_impl_glfw.h"
#include "backends/imgui_impl_opengl3.h"
#include <cstdio>
int main()
{
// Initialize GLFW
if (!glfwInit())
{
printf("GLFW initialization failed\n");
return -1;
}
// OpenGL 3.3
const char* glsl_version = "#version 330";
glfwWindowHint(GLFW_CONTEXT_VERSION_MAJOR, 3);
glfwWindowHint(GLFW_CONTEXT_VERSION_MINOR, 3);
glfwWindowHint(GLFW_OPENGL_PROFILE, GLFW_OPENGL_CORE_PROFILE);
// Create window
GLFWwindow* window = glfwCreateWindow(1000, 600, "ImGui Minimal Demo (VS2022)", nullptr, nullptr);
if (!window)
{
glfwTerminate();
return -1;
}
glfwMakeContextCurrent(window);
glfwSwapInterval(1); // VSync enable
// Initialize ImGui
IMGUI_CHECKVERSION();
ImGui::CreateContext();
ImGuiIO& io = ImGui::GetIO();
ImGui::StyleColorsDark();
// Bind GLFW + OpenGL3 backend
ImGui_ImplGlfw_InitForOpenGL(window, true);
ImGui_ImplOpenGL3_Init(glsl_version);
// UI state variables
float slider_value = 0.5f;
int click_count = 0;
bool show_full_demo = false;
// Main render loop
while (!glfwWindowShouldClose(window))
{
glfwPollEvents();
// Start new ImGui frame
ImGui_ImplOpenGL3_NewFrame();
ImGui_ImplGlfw_NewFrame();
ImGui::NewFrame();
// Pengaturan utama untuk layar penuh
// Paksa panel ImGui menutupi seluruh jendela GLFW
// 1. Sinkronkan posisi dan ukuran setiap frame dengan jendela GLFW luar
ImGui::SetNextWindowPos(ImVec2(0, 0));
ImGui::SetNextWindowSize(io.DisplaySize);
// 2. Hapus semua hiasan jendela: bingkai, seret, ubah ukuran, simpan pengaturan tata letak
ImGuiWindowFlags window_flags = ImGuiWindowFlags_NoDecoration
| ImGuiWindowFlags_NoMove
| ImGuiWindowFlags_NoResize
| ImGuiWindowFlags_NoSavedSettings;
// 3. Hilangkan sudut bulat dan garis tepi agar menempel sempurna ke pinggir jendela
ImGui::PushStyleVar(ImGuiStyleVar_WindowRounding, 0.0f);
ImGui::PushStyleVar(ImGuiStyleVar_WindowBorderSize, 0.0f);
// 4. Buat jendela dengan flag (bilah judul akan tersembunyi)
ImGui::Begin("Control Panel", nullptr, window_flags);
ImGui::Text("Hello ImGui + VS2022");
ImGui::SliderFloat("Slider Value", &slider_value, 0.f, 1.f);
if (ImGui::Button("Click to Count"))
click_count++;
ImGui::SameLine();
ImGui::Text("Click Count: %d", click_count);
ImGui::Checkbox("Show Full ImGui Demo Window", &show_full_demo);
ImGui::End();
// 5. Keluarkan dua gaya dari tumpukan untuk kembalikan pengaturan awal
ImGui::PopStyleVar(2);
// Akhir bagian yang diubah
if (show_full_demo)
ImGui::ShowDemoWindow(&show_full_demo);
// Render ImGui draw data
ImGui::Render();
int width, height;
glfwGetFramebufferSize(window, &width, &height);
glViewport(0, 0, width, height);
glClearColor(0.12f, 0.12f, 0.12f, 1.f);
glClear(GL_COLOR_BUFFER_BIT);
ImGui_ImplOpenGL3_RenderDrawData(ImGui::GetDrawData());
glfwSwapBuffers(window);
}
// Cleanup resources
ImGui_ImplOpenGL3_Shutdown();
ImGui_ImplGlfw_Shutdown();
ImGui::DestroyContext();
glfwDestroyWindow(window);
glfwTerminate();
return 0;
}
Code language: PHP (php)
Terapkan semua perubahan lalu jalankan ulang proyek, tampilan akan seperti gambar di bawah:

Tampilan sudah mirip dengan aplikasi GUI desktop biasa pada umumnya.