从VCL样式中提取图标并用作菜单图标,不适用于所有样式

时间:2017-01-04 07:10:02

标签: delphi vcl-styles

我需要用当前正在使用的VCL样式中的图标替换主菜单图标(特别是帮助图标)(我们的应用程序在菜单栏的右侧显示此图标,看起来很奇怪使用从与活动主题不匹配的资源文件中提取的图标。

我找不到从样式中提取图像然后将其用作菜单图标的方法。有没有人这样做过?

更新:这不是绘制样式图标(按照上一个问题),而是让主菜单有主题图标(而不是未经修改的资源或标准图标)。

Update2:如果我获得了样式元素并将其绘制到TBitmap中,则当样式为“Windows”时它会起作用,但对于其他主题则不起作用。

  // Need to populate the image from the theme
  LDetails := StyleServices.GetElementDetails(twHelpButtonNormal);

  bitmap := Tbitmap.Create;
  bitmap.Height := 16;
  bitmap.width := 16;
  StyleServices.DrawElement(bitmap.Canvas.Handle, LDetails, bitmap.Canvas.ClipRect);

  HelpMenuItem.Bitmap := bitmap;

元素在那里,但它没有图标。

Default Windows style With a style

0 个答案:

没有答案