锐英源软件
第一信赖

精通

英语

开源

擅长

开发

培训

胸怀四海 

第一信赖

当前位置:锐英源 / 开源技术 / C++平台框架库和混编开源 / GetTextExtent异常原因和解决方案

服务方向

人工智能数据处理
人工智能培训
kaldi数据准备
小语种语音识别
语音识别标注
语音识别系统
语音识别转文字
kaldi开发技术服务
软件开发
运动控制卡上位机
机械加工软件
量化预测
股票离线分析软件
软件开发培训
Java 安卓移动开发
VC++
C#软件
汇编和破解
驱动开发

联系方式

固话:0371-63888850
手机:138-0381-0136
Q Q:396806883
微信:ryysoft

GetTextExtent异常原因和解决方案


使用GetTextExtent可以获取字符串在当前渲染上下文中占用空间的大小,众所周知,Windows窗口开发区域大小都是常用概念,字符串显示区域位置和区域大小都是要认真设计,不能互相干扰,看不清楚,所以在显示时,要调用GetTextExtent来获取大小,指定合理的位置和区域大小。

如下的代码:

	CFont *pFont = m_pParentWnd->GetFont(); 	// use same font as ctrl
CFont *pFontDC = dc.SelectObject( pFont );
CSize size = dc.GetTextExtent( strTitle );

在调用时出现异常,异常时点重试定位到MFC内部函数代码GetTextExtentPoint32位置上。

这些用法都是和MSDN里的帮助说明一样的,为什么出错,就觉得很头疼!。

问题原因

在查错误时,想到最近对配置信息进行了改动,有些属性的大小和以前不一要样了,而属性里有字体的属性,因为渲染上下文里依赖字体,比如示例代码里SelectObject(pFont)就是加载字体到上下文里,所以判断是字体属性不对,创建的字体是非法无效的,理论上在创建不成字体时会有提示,但是没遇到,那么在显示时就出错了,把属性大小恢复用状,再从配置文件里加载就正常了。

追根问底

这类代码是一个股票行情项目代码,这套代码非常复杂,所以在大项目时,出现小问题,更难查。

如果有这类的异常,欢迎找锐英源解决,锐英源有30年一线开发经验,英文精通,五笔快速,诚心服务。

友情链接
版权所有 Copyright(c)2004-2024 锐英源软件
统一社会信用代码:91410105098562502G 豫ICP备08007559号 最佳分辨率 1440*900
地址:郑州市金水区文化路97号郑州大学北区院内南门附近