目前已完成如下控件:
1.按钮
按钮可以通过提供四个状态的个性化纹理来定制,也可以使用库提供的默认纹理。可以只有图片,这通常用于定制。也可以在图片上叠加文字,多数情况下使用库默认的纹理即可;当然也可以自己提供纹理并指定文字。
2.单选按钮、复选框
可以利用库提供的选中/非选中纹理,也可以定制纹理。
3.编辑框
可以自己提供纹理,默认使用库中的纹理。可以指定文字颜色、选中框背景颜色、选中文字颜色等。
4.组合框
可指定边框颜色和下拉按钮的纹理(四个状态),可指定下拉框高度、滚动条宽度。
5.滑块
可以指定轨迹、填充层、小拖动块等。
6.垂直滚动条
不能直接在配置中指定此类型控件,它只是在列表框、组合框、列表控件中被使用。它的纹理可以修改looknfeel文件来指定,可以定制(还没有实现)。
7.列表控件
支持多列,每列支持文本、图片、简单控件的混合显示。尚未完善。
8.超链接风格按钮
可指定文本的四个状态的颜色,指定是否显示下划线。
9.静态控件
支持图片和文字。默认没有背景和边框。
10.窗口
窗口可以有背景,可以单独提供一张背景纹理,也可以分9部分提供纹理以定制,也可以不要背景,只指定背景颜色。可以有标题栏,也可以没有。
待实现的控件:
1.多行编辑框
分析DXUT的编辑框,修改一下。
2.列表框
修改DXUT的列表框,应该很快。
这些控件完成后,一个基本齐全的控件库就OK了,可以构建复杂界面。
下一步的想法是实现窗口嵌套。不过要往后放一放,先来实现用户输入和脚本的关联。准备用lua或javascript。
有个问题:我大刀阔斧修改DXUTGUI后,帧率只有50左右,哈哈,对D3D不熟,要慢慢查是什么地方导致的。貌似ID3DXSprite的使用有些问题。