BOOL GetTextExtentExPointI(const UINT *lpnCharWidths, int nCount, int& nFit, int& nDx, LPSIZE lpSize) const;
这个方法返回一个布尔值,指示是否成功获取文本的信息。如果成功,nFit 将包含适合的字符数,nDx 将包含每个字符的宽度,lpSize 将包含文本的宽度和高度。
参数说明:
- lpnCharWidths: 一个指向包含每个字符的宽度(逻辑单位)的数组。
- nCount: 字符数组的元素数。
- nFit: 输出参数,用于返回适合的字符数。
- nDx: 输出参数,用于返回每个字符的宽度。
- lpSize: 输出参数,用于返回文本的宽度和高度。
使用示例:
CDC dc; // 假设已经创建了一个 CDC 对象
UINT charWidths[] = {10, 20, 15, 25}; // 假设每个字符的宽度
int nFit, nDx;
CSize textSize;
CString strText = _T("ABCD");
BOOL bResult = dc.GetTextExtentExPointI(charWidths, strText.GetLength(), nFit, nDx, &textSize);
if (bResult) {
// 在这里,textSize 包含文本的宽度和高度
// nFit 包含适合的字符数
// nDx 包含每个字符的宽度
} else {
// 获取失败的处理
}
这个方法适用于需要获取每个字符宽度的场景,例如在进行文本对齐等操作时。
转载请注明出处:http://www.zyzy.cn/article/detail/16951/MFC/CDC