我正在使用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
表示标题栏。