gpt4 book ai didi

delphi - 绘制 TEdit 的主题边框

转载 作者:行者123 更新时间:2023-12-03 15:12:03 30 4
gpt4 key购买 nike

我想在 Paintbox 中绘制 TEdit 的主题边框。该代码必须在 Windows Vista 和 7 下运行。我已尝试以下操作。它只能在 Windows XP 下运行。

var
Details: TThemedElementDetails; //uses Themes
begin
if ThemeServices.ThemesEnabled then
begin
Details := ThemeServices.GetElementDetails(teEditRoot);
ThemeServices.DrawElement(PaintBox1.Canvas.Handle, Details, PaintBox1.ClientRect);
end;
end;

在 Windows XP 下一切正常。但在 Windows Vista 和 7 下,边框被涂成深灰色。所有 4 个面的颜色相同。但 Vista 下的 TEdit 看起来有所不同:顶部边框是深灰色的。右边框为中灰色。左侧和底部边框为浅灰色。我希望你能理解其中的区别。如何以正确的方式进行绘画呢?谢谢!

最佳答案

尝试:

R := Rect(15, 15, 80, 30);
DrawThemeBackground(ThemeServices.Theme[teEdit], PaintBox1.Canvas.Handle, EP_EDITBORDER_NOSCROLL, ETS_NORMAL, R, @R);
/// DrawThemeBackground(ThemeServices.Theme[teEdit], PaintBox1.Canvas.Handle, EP_EDITTEXT, ETS_NORMAL, R, @R); <<< XP Behaviour

如果您希望代码在 XP 中运行,您应该设置该条件,就像在 WinXP 上您应该使用第二个条件一样。

关于delphi - 绘制 TEdit 的主题边框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3476653/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com