社区
界面
帖子详情
GetTextExtentPoint计算结果不准确
stivenjia
2013-07-04 10:51:49
对RichEdit输出的中文,使用GetTextExtentPoint计算字符的长宽发现,宽度计算不准确,高度还是准确的;
而且该误差只存在中文英文还是正确的,很奇怪,不知道谁遇到过;
例如:宋体 14号字 GetTextExtentPoint得到结果是23*23而通过截屏等工具得到的结果是17*23,宽度误差6个像素;
...全文
267
3
打赏
收藏
GetTextExtentPoint计算结果不准确
对RichEdit输出的中文,使用GetTextExtentPoint计算字符的长宽发现,宽度计算不准确,高度还是准确的; 而且该误差只存在中文英文还是正确的,很奇怪,不知道谁遇到过; 例如:宋体 14号字 GetTextExtentPoint得到结果是23*23而通过截屏等工具得到的结果是17*23,宽度误差6个像素;
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
3 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
向立天
2013-08-05
打赏
举报
回复
您好 我是本版版主 此帖已多日无人关注 请您及时结帖 如您认为问题没有解决可按无满意结帖处理 另外本版设置了
疑难问题汇总帖
并已在版面置顶 相关规定其帖子中有说明 您可以根据规定提交您帖子的链接 如您目前不想结帖只需回帖说明 我们会删除此结帖通知 见此回复三日内无回应 我们将强制结帖 相关规定详见界面
界面版关于版主结帖工作的具体办法
stivenjia
2013-07-04
打赏
举报
回复
楷体和微软雅黑也存在这问题,只是偏差值略大或略小
Eleven
2013-07-04
打赏
举报
回复
如果你用等宽的字体呢?
计算机DialogProc函数.pdf
计算机技术
ListView 自动调整列宽
ListView 自动调整列宽ListView 自动调整列宽
斜体字体的文本宽度
显示GetCharABCWidths和GetCharABCWidthsFloat的替代方法
为何我用Get
Tex
t
Exte
ntP
o
int
32这个API总是得不到正确的文本长度?
原文转载自:http://bbs.csdn.net/topics/80515448 呵呵,偶问题解决了,不能独享,贴出来,楼主看一下,有一个步骤是必须的,就是取得主窗口的FONT,然后设置DC的FONT,然后再计算,这样才正确,参考下面的代码 CSize s; CFont *font = this->GetFont(); CFont *def_font = NULL;
Get
Tex
t
Extent、Get
Tex
t
Exte
ntP
o
int
32 精确无误差的使用注意【vc++ / MFC】
网上有大量的有关“获取字符串的显示宽度”的文章,基本都是用 Get
Tex
t
Extent 或 Get
Tex
t
Exte
ntP
o
int
32,但大多数都没说字体的影响,直接结果是误差很大,包括MSDN上的示例: MSDN这段示例原代码: // Po
int
er to the myListBox. extern CListBox* pmyListBox; // Find the longest string in the list box. CString str; CSize sz;
int
dx=0
界面
15,978
社区成员
115,866
社区内容
发帖
与我相关
我的任务
界面
VC/MFC 界面
复制链接
扫一扫
分享
社区描述
VC/MFC 界面
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章