|
分享源码
界面截图: |
|
是否带模块: |
纯源码 |
备注说明: |
- |
本帖最后由 xiaolin666 于 2025-2-10 09:28 编辑
自己学习IMGUi模块时的新得和备注,教学模块为论坛的1.77模块,无模块守护,还担心的可以源码重新编译一个。指路:【新提醒】ImGui 1.77最新最全库函数封装,UI库的又一新选择!_精易论坛
几乎每一行都有备注,并且顺带教学了如何封装一个市面上的创建窗口命令,IMGUI基础设计相对比较繁琐,慢慢学习,互相进步只有docking分支才能算是真正脱离窗口,这个只是个分层的伪脱离
在上次的课程中,置透明的方法会导致鼠标无法穿透,所以我们这次使用了改进的方法
首先用CreateWindowExW创建窗口,因为只有EX窗口支持分层,普通是分不开的,没有第一个属性
hWnd = CreateWindowExW (位或 (#WS_EX_TOPMOST, #WS_EX_LAYERED), wc.lpszClassName, A2W (“易语言 - Dear ImGui DirectX11”, ), #WS_POPUP, 100, 100, 取屏幕宽度 (), 取屏幕高度 (), #NULL, #NULL, wc.hInstance, #NULL)
第一个属性里面,WS_EX_TOPMOST是顶端,WS_EX_LAYERED是分层,后面属性中WS_POPUP为无标题栏
然后我们用windowAPI,SetLayeredWindowAttributes ()来置部分颜色透明,我选择的是ColorValueToRGB (ColorConvertHSVtoRGB_ImVec4 (0, 0, 0))
这个颜色,它置透明后能尽量不干扰imgui的组件颜色。
最后我们在末尾,找到m_D3D11.DeviceContext_ClearRenderTargetView (刷新颜色),这个是负责背景刷新的,它的颜色也改成我们设置的颜色,即可透明,并且不影响鼠标穿透的问题,避免了很多麻烦。
2025年,祝大家天天开心
|
|