Windows 10 关闭、最小化和最大化按钮 [英] Windows 10 Close, Minimize and Maximize buttons

查看:54
本文介绍了Windows 10 关闭、最小化和最大化按钮的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

绘制主题按钮我使用以下代码:

to paint themed button I use this code:

var
  h: HTHEME;
begin
  if UseThemes then begin
    SetWindowTheme(Handle, 'explorer', nil);
    h := OpenThemeData(Handle, 'WINDOW');
    if h <> 0 then
    try
      DrawThemeBackground(h, Canvas.Handle, WP_CLOSEBUTTON, GetAeroState, ClientRect, nil);
    finally
      CloseThemeData(h);
    end;
  end
  else
    DrawFrameControl(Canvas.Handle, ClientRect, DFC_CAPTION, DFCS_CAPTIONCLOSE or GetClassicState)
end;

此代码工作正常,但绘制的按钮看起来像 Windows 7 主题,即使在 Windows 8 或 10 上也是如此.这可以使用 Windows 10 或 8 主题绘制关闭按钮吗?

This code works fine but painted button looks like from Windows 7 theme, even on Windows 8 or 10. This is possible to paint the Close button using Windows 10 or 8 theme?

推荐答案

从主题获取位图的可行解决方案:

Workable solution to get bitmaps from theme:

var
  h: HTHEME;
  Rect: TRect;
  BufSize: Cardinal;    

h := OpenThemeData(Handle, 'DWMWINDOW');
if h <> 0 then
try
  GetThemeRect(h, WP_MINCAPTION, MNCS_ACTIVE, TMT_ATLASRECT, Rect);
  ...
  GetThemeStream(...);
finally
  CloseThemeData(h);
end;

以及如何使用此处描述的 GetThemeStream:GetThemeStream 用法,非常感谢 AndreasVerhoeven,Vista Style Builder 程序的作者

And how to use GetThemeStream described here: GetThemeStream usage, many thanks to Andreas Verhoeven, author of the program Vista Style Builder

这篇关于Windows 10 关闭、最小化和最大化按钮的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆