至此,环境配置完毕
需要补充几个用得到glfw代码:让鼠标事件透过创建的窗口glfwWindowHint(GLFW_MOUSE_PASSTHROUGH, GLFW_TRUE);让窗口透明glfwWindowHint(GLFW_TRANSPARENT_FRAMEBUFFER, true);置顶窗口glfwWindowHint(GLFW_FLOATING, true);禁止更改窗口大小glfwWindowHint(GLFW_RESIZABLE, false);窗口最大化glfwWindowHint(GLFW_MAXIMIZED, true);设置没有标题栏glfwSetWindowAttrib(window, GLFW_DECORATED, false);删除掉没有用的代码,删掉界面显示的代码 , 设置窗口透明,设置窗口最大化,设置鼠标通过 , 设置窗口不允许resize,就可以得到一个透明的窗口,即下面的代码
#include <stdio.h>#include<Windows.h>#include <GLFW/glfw3.h>#include "imgui/imgui.h"#include "imgui/imgui_impl_glfw.h"#include "imgui/imgui_impl_opengl3.h"#include "imgui/alifont.hpp"static void glfw_error_callback(int error, const char* description){fprintf(stderr, "Glfw Error %d: %s\n", error, description);}int main(){glfwSetErrorCallback(glfw_error_callback);if (!glfwInit())return 1;GLFWmonitor *monitor = glfwGetPrimaryMonitor();//###########################设置窗口###########################const char* glsl_version = "#version 130";int Height = glfwGetVideoMode(monitor)->height;int Width = glfwGetVideoMode(monitor)->width;glfwWindowHint(GLFW_FLOATING, true);glfwWindowHint(GLFW_RESIZABLE, false);glfwWindowHint(GLFW_MAXIMIZED, true);glfwWindowHint(GLFW_TRANSPARENT_FRAMEBUFFER, true);glfwWindowHint(GLFW_MOUSE_PASSTHROUGH, GLFW_TRUE);//###########################设置窗口###########################GLFWwindow* window = glfwCreateWindow(Width, Height, "titile", NULL, NULL);if (window == NULL)return 1;glfwSetWindowAttrib(window, GLFW_DECORATED, false); //设置没有标题栏ShowWindow(GetConsoleWindow(), SW_HIDE);glfwMakeContextCurrent(window);glfwSwapInterval(1);IMGUI_CHECKVERSION();ImGui::CreateContext();ImGuiIO& io = ImGui::GetIO(); (void)io;ImGui::StyleColorsDark();ImGui_ImplGlfw_InitForOpenGL(window, true);ImGui_ImplOpenGL3_Init(glsl_version);while (!glfwWindowShouldClose(window)){glfwPollEvents();glClear(GL_COLOR_BUFFER_BIT);ImGui_ImplOpenGL3_NewFrame();ImGui_ImplGlfw_NewFrame();ImGui::NewFrame();ImGui::Render();int display_w, display_h;glfwGetFramebufferSize(window, &display_w, &display_h);glViewport(0, 0, display_w, display_h);ImGui_ImplOpenGL3_RenderDrawData(ImGui::GetDrawData());glfwSwapBuffers(window);}// CleanupImGui_ImplOpenGL3_Shutdown();ImGui_ImplGlfw_Shutdown();ImGui::DestroyContext();glfwDestroyWindow(window);glfwTerminate();return 0;}至此 , 已经配置好了glfw+imgui的环境,并且创建了透明窗口,下一章用第一篇里的偏移值做点事
【【C++】从零开始的CS:GO逆向分析2——配置GLFW+IMGUI环境并创建透明窗口】
推荐阅读
- 迷你世界怎么做海上汽车(迷你世界怎么造海底汽车)
- 【原创】推流录屏软件OBS使用教程--录屏
- 【Python+C#】手把手搭建基于Hugging Face模型的离线翻译系统,并通过C#代码进行访问
- 【前端必会】不知道webpack插件? webpack插件源码分析BannerPlugin
- 永恒岛之彩虹世界礼包码兑换不成功怎么办
- 天玑1200处理器相当于骁龙多少?
- 天玑800u处理器怎么样_天玑800u处理器性能如何
- 最简单的水晶泥怎么做(0岁小孩自制水晶石)
- 智能工厂的ERP和MES之间的区别?
- 摩尔庄园手游拟叶碟在哪里