ImGui + Opengl3 + GLFW 在指定窗口绘制(已获取HWND)上
## ImGui + Opengl3 + GLFW 在指定窗口绘制(已获取HWND)上* 默认的glfw的是不支持直接从win32句柄直接创建窗口的
* 但是, glfw有一个分支 `attach-win32-window` 已经支持了通过win32句柄直接创建窗口, 地址: (https://github.com/glfw/glfw/tree/attach-win32-window)
### 集成步骤
* 你需要手动下载 `attach-win32-window` 分支的源码,并编译
```git
git clone https://github.com/glfw/glfw.git -b attach-win32-window
```
* 编译请参考 (https://www.glfw.org/docs/latest/compile.html)
> 我使用的 `cmake` 直接生成的vs2019的解决方案,然后打开Release模式编译就行了,获取到静态链接库 `glfw3.lib`
* 在自己的项目中包含头文件 `glfw3.h` 和 `glfw3native.h`, 然后静态链接 `glfw3.lib` , 就可以了
### 代码示例
```cpp
HWND hd = GetDesktopWindow(); //得到桌面句柄
hd = GetWindow(hd, GW_CHILD); //得到屏幕上第一个子窗口句柄
if (hd == NULL) {
throw std::exception("GetDesktopWindow failed");
}
GLFWwindow* window = glfwAttachWin32Window(hd, NULL);
if (window == NULL)
throw std::exception("glfwAttachWin32Window failed");
```
### 总结
> 这样你就获取到了通过glfw包装的win32窗口了,然后就可以愉快的在你想要的窗口上,用ImGui绘制了 审核这么慢?
页:
[1]