我想在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下,边框会被涂成深灰色。所有四个边框的颜色都相同。但是在Vista下,TEdit看起来不同:顶部边框为深灰色,右侧边框为中灰色,左侧和底部边框为浅灰色。我希望你能理解这种差异。如何以正确的方式进行绘制?谢谢!