如何获取航空和基本设计的标题栏高度和宽度

Alp*_*h0r 6 winapi

我正在使用GetSystemMetrics(SM_CXSIZEFRAME)边框的宽度,它适用于基本设计,但不适用于航空,我该如何改进它,使其适用于航空?

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

Eri*_*own 7

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

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