Bha*_*rat 5 delphi fonts font-size delphi-2007
我有一个LOGFONT结构.现在我要做的就是从LOGFONT高度获得相关的字体大小.
Rob*_*edy 12
当映射模式mm_Text(通常是)时,当lfHeight字段为正时,它已经以点为单位给出了高度.当它为负数时,单位为像素.LogFont的MSDN为您提供了在它们之间进行转换的公式:
Run Code Online (Sandbox Code Playgroud)lfHeight = -MulDiv(PointSize, GetDeviceCaps(hDC, LOGPIXELSY), 72);
每英寸有72个点.GetDeviceCaps告诉你给定设备上每英寸的像素数.反转公式以从点获取像素:
PointSize := MulDiv(-lfHeight, 72, GetDeviceCaps(hDC, LogPixelsY);
Run Code Online (Sandbox Code Playgroud)
这里要认识到的重要一点是你需要一个设备上下文.字体大小不会独立于它们出现的媒体而存在.屏幕上字体的像素高度将与打印机上字体的像素高度不同.使用Handle您计划绘制的任何画布的属性.