CDC::GetCharABCWidthsI 是 MFC(Microsoft Foundation Classes)中的一个成员函数,用于获取指定字体的字符的 ABC 宽度信息。ABC 宽度信息包括字符的 Ascent(上升部分)、Descent(下降部分)和 Width(宽度)。

函数原型如下:
BOOL GetCharABCWidthsI(
  UINT      nFirst,      // 字符的 Unicode 码的第一个值
  UINT      nCount,      // 字符的数量
  LPWORD    lpwWidths    // 接收 ABC 宽度信息的缓冲区
) const;

参数解释:
  •  nFirst:要检索的字符范围的第一个字符的 Unicode 码。

  •  nCount:要检索的字符数量。

  •  lpwWidths:指向一个用于接收 ABC 宽度信息的缓冲区的指针。


该函数返回一个布尔值,表示操作是否成功。如果成功,返回 TRUE;否则,返回 FALSE。

使用示例:
CDC dc;
// 假设已经初始化了 CDC 对象

UINT nFirstChar = 'A';  // 'A' 的 Unicode 码
UINT nCharCount = 26;   // 获取 26 个字符的 ABC 宽度信息

WORD arrWidths[26];     // 存储 ABC 宽度信息的缓冲区

BOOL bSuccess = dc.GetCharABCWidthsI(nFirstChar, nCharCount, arrWidths);

if (bSuccess) {
    // 在这里使用 arrWidths 中的宽度信息
} else {
    // 操作失败,处理错误
}

请确保在调用该函数之前,已经创建了有效的 CDC 对象,并且有一个合适的字体选中到该设备上下文(DC)。


转载请注明出处:http://www.pingtaimeng.com/article/detail/17094/MFC/CDC