我正在使用GetSystemMetrics(SM_CXSIZEFRAME)作为边框的宽度,它可以用于基本设计,但不能用于Aero,我如何改进它,所以它可以与Aero一起使用?

我使用GetSystemMetrics(SM_CYCAPTION)作为标题栏的高度,但是对于基本和航空设计而言,该值都太小,我在这里做错了什么?

最佳答案

在非主题Windows中,GetSystemMetrics(SM_CYCAPTION)是标题栏中文本的高度;您需要添加边框和边框填充(GetSystemMetrics(SM_CYSIZEFRAME) + GetSystemMetrics(SM_CYEDGE) * 2)的大小。

对于主题Windows(这是当前的默认设置), GetThemeSysSize 最有可能是您正在寻找的功能;特别是,GetThemeSysSize(SM_CXBORDER)表示边框宽度,GetThemeSysSize(SM_CYSIZE) + GetThemeSysSize(SM_CXPADDEDBORDER) * 2表示标题栏。

10-07 16:09