我正在使用自定义控件,混合了两个Windows控件(ListView和TreeView)。在某些情况下,我需要绘制使用Windows 7(启用主题)的图像来识别父节点,我正在使用
DrawThemeBackground
函数,其中包括TVP_GLYPH
部分和GLPS_CLOSED
状态(我尝试了所有与TREEVIEW
类相关的部分和状态,但没有运气),但结果图像总是旧的(+)或(-)。
此图片显示了问题:
我想绘制黑色圆圈内的箭头图像,而不是橙色圆圈内的(+)符号。
这是我用于绘制图像的示例代码:
uses
UxTheme;
procedure TForm40.Button1Click(Sender: TObject);
var
iPartId : integer;
iStateId: integer;
hTheme : THandle;
begin
hTheme := OpenThemeData(Handle, VSCLASS_TREEVIEW);
iPartId := TVP_GLYPH;
iStateId:= GLPS_CLOSED;
//iPartId := TVP_TREEITEM;
//iStateId:= TREIS_NORMAL;
if hTheme <> 0 then
try
//if (IsThemeBackgroundPartiallyTransparent(hTheme, iPartId, iStateId)) then
// DrawThemeParentBackground(Handle, PaintBox1.Canvas.Handle, nil);
DrawThemeBackground(hTheme, PaintBox1.Canvas.Handle, iPartId, iStateId, Rect(0, 0, 31, 31), nil);
finally
CloseThemeData(hTheme);
end;
end;
我查看了一些工具,例如由Andreas Rejbrand制作的应用程序和这个,但我找不到我想要的图像。
我的问题是:如何获取箭头图像?
更新
感谢Stigma发布的答案,我找到了有关Explorer::Treeview
类的部件和状态值的其他资源。
VSCLASS_TREEVIEW
ňťĘUxTheme
ňŹĽňůâńŞşň«Üń╣ë´╝îňƬŠś»TREEVIEW
ňÇ╝šÜäńŞÇńެňŞŞÚçĆŃÇé - RRUZ