精易论坛

标题: [IMGUI]易语言imgui入门教学补充,初始化加载风格修改 [打印本页]

作者: xiaolin666    时间: 2024-11-11 17:25
标题: [IMGUI]易语言imgui入门教学补充,初始化加载风格修改
本帖最后由 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 ()))  ' 把微软雅黑添加字体到字体指针,字体大小为 24 像素,并且塞进你刚刚建好的2空间中
调试输出 (f2)  ' 调试输出字体2标识
主颜色 = 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)  ' 滚动条触发背景颜色
' imgui未来的渲染都会一直应用这个结构体的风格
' ——————————————————————开始绘制区——————————————————————————————————————————
判断循环首 (消息.message ≠ #WM_QUIT )  ' 开始绘制主循环,只要消息不是WM_QUIT(退出消息),循环就会继续。
如果真 (PeekMessageW (消息, #NULL, 0, 0, #PM_REMOVE ))  ' 这行代码检查消息队列中是否有消息。如果有,PeekMessageW函数会移除消息并返回真(非零值)。
TranslateMessage (消息)  ' 将虚拟键消息转换为字符消息
DispatchMessageW (消息)  ' 将消息发送到窗口的消息处理函数。
到循环尾 ()
Impl.DX11_NewFrame ()  ' 开始一个DirectX 11的新帧
Impl.Win32_NewFrame ()  ' 开始一个win32窗口的新帧
ImGui.NewFrame ()  ' 开始一个新的ImGui帧
' ——————————————————————————打开应用第一眼的初始化——————————————————————————————————
如果真 (取反 (第一次绘制))  ' 第一帧绘制的时候初始化一下
关闭 = 1
ImGui.SetNextWindowPos (ImVec2 (0, 0), , )  ' 设置imgui窗口位置
ImGui.SetNextWindowSize (ImVec2 (600, 400), )  ' 设置imgui窗口大小
第一次绘制 = 真


i支持库列表   支持库注释   
spec特殊功能支持库
这样把风格渲染提前放在衣柜里可以有效地优化代码结构,上次真的是写太晚了,凌晨没仔细审代码。


作者: 李泽勇2    时间: 2024-11-11 18:29
感觉好复杂
作者: GawrGura    时间: 2024-11-11 20:11
感谢分享啊啊
作者: xiaojiancccc    时间: 2024-11-11 20:34
支持开源~!感谢分享
作者: trynew002    时间: 2024-11-11 20:40

感觉好复杂
作者: renhe2018    时间: 2024-11-12 05:28
确实没有易这么容易理解啊。
作者: 查过    时间: 2024-11-12 06:07
下个学习一下
作者: 豆豆灰常开心    时间: 2024-11-12 06:12
感谢发布原创作品,精易因你更精彩!6666666666666
作者: qwe111qwe    时间: 2024-11-12 07:15
感谢分享!!!!
作者: year1970    时间: 2024-11-12 09:00
感谢分享
作者: 一指温柔    时间: 2024-11-12 09:17
感谢分享
作者: 佛学e语言    时间: 2024-11-12 09:41
学习一下
作者: 396384183    时间: 2024-11-12 14:11

感谢分享
感谢分享
作者: 查过    时间: 2024-11-13 06:04
感谢您对论坛的支持!
作者: 豆豆灰常开心    时间: 2024-11-13 06:08
感谢您对论坛的支持!
作者: year1970    时间: 2024-11-13 09:46
感谢分享
作者: 396384183    时间: 2024-11-13 10:02
支持开源~!感谢分享
作者: fenxiangzhe    时间: 2024-11-13 14:50
6666666666666666666666666666666666
作者: lxh3936815    时间: 2024-11-14 08:36

作者: lxh3936815    时间: 2024-11-14 08:36

作者: 光影魔术    时间: 2024-11-15 19:45
感谢分享源码
作者: 2297129548    时间: 2024-11-18 13:51
不错,好好学习一下666
作者: 无极T    时间: 2024-11-21 11:43
支持开源!~~
作者: topy123    时间: 2024-11-21 19:36

作者: yezirun888    时间: 2024-11-26 02:59
666666666666666666666666666
作者: 熊不熊    时间: 2024-12-4 03:17
感谢分享,很给力!~
作者: 770345278    时间: 2025-1-3 13:56
        支持开源~!感谢分享
作者: clm6068    时间: 2025-1-7 03:08
其实我也是看上
作者: l405927571    时间: 2025-1-18 13:20
1111111111111111
作者: w857191509    时间: 2025-2-1 09:50
奥术大师大所大所
作者: l1220020800    时间: 2025-2-20 19:14
小小心意,意思一下
作者: kissp21    时间: 2025-2-22 15:01
新人,来学习学习
作者: 佳信家电    时间: 2025-3-16 15:08

还要考虑当前任务是否执行完毕
作者: kuy5230    时间: 2025-3-25 19:22
新人,来学习学习
作者: hnzmd1111    时间: 2025-5-1 11:00
66666666666666666666666666666
作者: dxh123    时间: 2025-5-14 15:57

新人,来学习学习
作者: h123135157    时间: 2025-7-3 08:58
加油!6666




欢迎光临 精易论坛 (https://125.confly.eu.org/) Powered by Discuz! X3.4