Я пытаюсь проверить зависимость между CFont
высотой и размером на примере:Вычислить высоту шрифта из его размера в C++?
int main(int argc, char* argv[])
{
int myVariableFontHeight = 90;
CFont * font = new CFont();
LOGFONT lf;
memset(&lf,0,sizeof(LOGFONT));
lf.lfHeight = myVariableFontHeight;
lf.lfWeight =FW_BOLD;
lf.lfCharSet = 1;
_tcscpy_s(lf.lfFaceName , "Arial Unicode MS");
font->CreatePointFontIndirect(&lf);
font->GetLogFont(&lf);
int fontHeight = lf.lfHeight;
HWND console = GetConsoleWindow();
HDC dc = GetDC(console);
int nFontSize = -::MulDiv(lf.lfHeight, 72, ::GetDeviceCaps(dc, LOGPIXELSY));
delete font;
return 0;
}
И результат всегда nFontSize = myVariableFontHeight/10
. Что это за фактор 10? Откуда это? Можно ли вычислить высоту шрифта из заданного размера?
Thanks
Какую проблему вы действительно пытаетесь решить? – IInspectable
В нашем инструменте 'myVariableFontHeight' было зафиксировано значение 90. После того как я сделал это, я хотел бы использовать размеры шрифта, как в обычных текстовых редакторах. Но этот var используется несколько в коде, поэтому я не хочу нарушать логику и вычислять ее с помощью myFontSize. – alex555