CDC::GetOutlineTextMetrics 是 MFC(Microsoft Foundation Classes)中的一个公共方法,用于获取字体的轮廓文本度量信息。这个方法返回一个 OUTLINETEXTMETRIC 结构,包含了有关字体的详细度量信息,如字符宽度、高度、基线等。

以下是使用 GetOutlineTextMetrics 方法的简单示例:
CDC dc; // 假设已经创建了设备上下文对象

TEXTMETRIC tm;
dc.GetTextMetrics(&tm); // 获取当前字体的基本文本度量信息

OUTLINETEXTMETRIC otm;
dc.GetOutlineTextMetrics(sizeof(OUTLINETEXTMETRIC), &otm); // 获取轮廓文本度量信息

// 使用获取到的 otm 结构中的信息进行后续处理

在这个示例中,首先调用 GetTextMetrics 方法获取当前字体的基本文本度量信息,然后调用 GetOutlineTextMetrics 方法获取更详细的轮廓文本度量信息。

OUTLINETEXTMETRIC 结构的定义如下:
typedef struct _OUTLINETEXTMETRIC {
  UINT     otmSize;
  TEXTMETRIC otmTextMetrics;
  BYTE     otmFiller;
  PANOSE   otmPanoseNumber;
  UINT     otmfsSelection;
  UINT     otmfsType;
  int      otmsCharSlopeRise;
  int      otmsCharSlopeRun;
  int      otmItalicAngle;
  UINT     otmEMSquare;
  int      otmAscent;
  int      otmDescent;
  UINT     otmLineGap;
  UINT     otmsCapEmHeight;
  UINT     otmsXHeight;
  RECT     otmrcFontBox;
  int      otmMacAscent;
  int      otmMacDescent;
  UINT     otmMacLineGap;
  UINT     otmusMinimumPPEM;
  POINT    otmptSubscriptSize;
  POINT    otmptSubscriptOffset;
  POINT    otmptSuperscriptSize;
  POINT    otmptSuperscriptOffset;
  UINT     otmsStrikeoutSize;
  int      otmsStrikeoutPosition;
  int      otmsUnderscoreSize;
  int      otmsUnderscorePosition;
  PSTR     otmpFamilyName;
  PSTR     otmpFaceName;
  PSTR     otmpStyleName;
  PSTR     otmpFullName;
} OUTLINETEXTMETRIC, *POUTLINETEXTMETRIC;

这个结构包含了各种字体度量的详细信息。你可以根据需要使用这些信息进行后续处理。


转载请注明出处:http://www.zyzy.cn/article/detail/17117/MFC/CDC