我正在尝试根据系统图标字体大小设置节点高度。
到目前为止我的代码:
LOGFONT lf;
ZeroMemory(&lf, sizeof(lf));
if (SystemParametersInfo(SPI_GETICONTITLELOGFONT, sizeof(lf), &lf, 0))
{
// This is a hack because font height itself doesn't give me correct node height - everything is too tight
int Height = VST->DefaultNodeHeight - abs(VST->Font->Height)+1;
VST->DefaultNodeHeight = abs(lf.lfHeight)+Height;
VST->Font->Name = lf.lfFaceName;
VST->Font->Height = lf.lfHeight;
}
上述工作但我无法获得DefaultNodeHeight
权限 - 它与修复字体时使用的默认值不同。字体高度很好。
如何从系统中检索正确的值,或自动调整VirtualTreeView的大小以使用正确的节点高度,该高度与默认值相同但基于以上代码?
默认字体高度为-14,字体大小为8,节点高度为18。
所以换句话说我需要:
a)图标字体大小
b)相应的DefaultNodeHeight,基于字体大小(如果我使用不同的字体大小,则根据特定大小重新计算DefaultNodeHeight)