本帖最后由 xiaolin666 于 2024-11-11 18:31 编辑
教学模块为论坛的1.77模块,无模块守护,还担心的可以源码重新编译一个。指路:【新提醒】ImGui 1.77最新最全库函数封装,UI库的又一新选择!_精易论坛.
上周赶工漏了一个结构体没讲,是关于全局风格的其实你通过getstyle()
可以直接导出结构体当前的风格
我们基于此原理,获取全局风格,然后赋值给它,可以达到全局风格修改的效果
它与push+pop的修改不同的是,它的位置是放在开始绘制之前
push是动态的修改,每次回调都会执行push里的上色,类似我们到了面试的时候,才去买西装套在身上
而这个style结构体是一个全局风格,它就类似于人的衣柜,你每天出门都要从衣柜里取衣服,上衣,裤子,袜子,鞋子,裤衩,眼镜,假发,帽子。。。它们在衣柜里一 一对应
所谓的初始蓝黑界面,白蓝界面,紫灰界面,其实就是把对应的衣柜里的衣服换了颜色。
那么我们可以在创建窗口前,就把一些自己想要的衣柜里放进去,这样不需要用到的时候再买衣服,而是直接从衣柜取出。 变量名 | 类 型 | 静态 | 数组 | 备 注 | 风格 | ImGuiStyle | | |
f2 = font2. AddFontFromFileTTF (“C:\Windows\Fonts\msyh.ttc”, 24, , ImGetGlyphRangesData (gb2. BuildRanges ()) ) 调试输出 (f2 ) 主颜色 = ImVec4 (0.4, 0.5, 0.6, 1 ) 圆角度 = 0 多行文本输入框风格 = #ImGuiInputTextFlags_AllowTabInput 风格 = ImGui. GetStyle ()风格.WindowRounding = 6 风格.FrameRounding = 4 风格.ChildRounding = 6 风格.ScrollbarSize = 10 风格.ItemSpacing = ImVec2 (8, 8 ) 风格.Alpha = 0.1 风格.Colors [ #ImGuiCol_WindowBg + 1 ] = ImVec4 (1, 1, 1, 1 ) 风格.Colors [ #ImGuiCol_Button + 1 ] = ImVec4 (1, 1, 1, 1 ) 风格.Colors [ #ImGuiCol_ButtonActive + 1 ] = ImVec4 (1, 1, 1, 1 ) 风格.Colors [ #ImGuiCol_ButtonHovered + 1 ] = ImVec4 (1, 1, 1, 1 ) 风格.Colors [ #ImGuiCol_ChildBg + 1 ] = ImVec4 (1, 1, 1, 1 )风格.Colors [ #ImGuiCol_SliderGrabActive + 1 ] = ImVec4 (1, 1, 1, 1 ) 判断循环首 (消息.message ≠ #WM_QUIT ) 如果真 (PeekMessageW (消息, #NULL, 0, 0, #PM_REMOVE )) TranslateMessage (消息 ) DispatchMessageW (消息 ) 到循环尾 ()Impl.DX11_NewFrame ()
Impl. Win32_NewFrame () ImGui. NewFrame () 如果真 (取反 (第一次绘制 )) 关闭 = 1 ImGui. SetNextWindowPos (ImVec2 (0, 0 ), , ) ImGui. SetNextWindowSize (ImVec2 (600, 400 ), ) 第一次绘制 = 真 这样把风格渲染提前放在衣柜里可以有效地优化代码结构,上次真的是写太晚了,凌晨没仔细审代码。
|