[发明专利]一种长文本显示方法有效
申请号: | 201310720949.4 | 申请日: | 2013-12-24 |
公开(公告)号: | CN104731445B | 公开(公告)日: | 2018-11-30 |
发明(设计)人: | 陈秋龙;程时宋;黄东豹;怀保胜 | 申请(专利权)人: | 惠州市德赛西威汽车电子股份有限公司 |
主分类号: | G06F3/0481 | 分类号: | G06F3/0481;G06F3/0484;G06F3/0487 |
代理公司: | 广州粤高专利商标代理有限公司 44102 | 代理人: | 任海燕 |
地址: | 516006 广东省*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 文本 显示 方法 | ||
1.一种长文本显示方法,其特征在于,包括:
鼠标消息响应步骤,监控鼠标操作,判断是否需要发出重新描绘消息,由系统调用重画函数,对控件重新描绘;
宽度可描绘字符数计算步骤:计算在fwidth的宽度上可以描绘的前n个完整字符,其中n为计算后的返回值;
文字描绘步骤:根据待显示字符信息、鼠标消息响应单元以及宽度可描绘字符数计算单元返回的数据通过DrawText对待显示字符进行显示;
所述文字描绘步骤包括:
(31)判断指定显示区域的宽度是否能完整显示待显示字符;若是则直接对待显示字符进行描绘显示,并跳过以下步骤,否则进入步骤(32);
(32)当待显示字符左对齐显示时,初始化字符显示的起始位置Pos为0;
(33)当通过鼠标对指定显示区域进行操作时,创建一个宽度为等于待显示字符宽度的临时画布,令临时画布的起始位置为-Pos,大小与指定显示区域一致,并根据鼠标的操作,不断调整Pos值并截取从-Pos开始宽度等于显示区域宽度的画布区域,拷贝至指定显示区域;
(34)当鼠标没有对指定显示区域进行操作时,根据Pos值,判断左侧或右侧是否有字符被截断,在指定显示区域的左侧或右侧添加省略号,计算减去省略号所占宽度后指定显示区域剩余的可描绘宽度,描绘显示从Pos开始的完整的字符。
2.根据权利要求1所述的一种长文本显示方法,其特征在于,所述鼠标消息响应步骤包括:
(11)鼠标压下动作记录步骤,设置压下标志bIsPress=True,记录鼠标压下时的坐标pressPos;
(12)鼠标移动动作记录步骤,计算鼠标移动偏移量MoveOffSet = 当前鼠标坐标X值currMousePos.x - 鼠标压下时的坐标X值pressPos.x;
(13)鼠标释放动作记录步骤,设置压下标志为bIspress = false。
3.根据权利要求2所述的一种长文本显示方法,其特征在于,宽度可描绘字符数计算步骤包括:
(21)设置第一临时变量sOK为空,并使用DrawText计算完整描绘待显示字符str所需的范围Width;
(22)判断Width是否小于等于可进行字符描绘的宽度fWidth,如是,则返回待显示字符str的字符长度并退出;
(23)若Width>fWidth, 将待显示字符str对半拆分成sLeft、sRight, 利用DrawText计算描绘sLeft所需宽度lWidth;
(24)若lWidth>fWidth,则令str=sLeft,执行步骤(23)否则令str=sRight,并设置fWidth=fWidth–lWidth,sOK=sOK+sLeft;
以上步骤中,若sRight或sLeft为空,则直接返回sOK的Length的值。
4.根据权利要求1所述的一种长文本显示方法,其特征在于,所述步骤(34)包括:
(a)初始化第二临时变量DStr=待显示字符FTStr;
(b)通过宽度可描绘字符数计算步骤计算-Pos宽度可描绘的待显示字符的前n字符个数;
(c)如果n>=1,截取待显示字符FTStr从n+1起至尾部的字符串FTStr_Right,并在左侧添加省略号“…”,即DStr = “…” +FTStr_Right;
(d)使用DrawText函数,计算描绘DStr所需的长度DStrWidth,若DStrWidth大于指定显示区域的宽度Ctrl.Width,则进入步骤(e),否则进入步骤(g);
(e)使用DrawText函数,计算描绘省略号显示所需的宽度OmitWidth;计算剩余宽度nWidth = Ctrl.Width-OmitWidth,并通过使用宽度可描绘字符数计算步骤计算nWidth可描绘DStr的前m1个字符DStr.Left;
(f)计算出最终显示的字符串为 DStr = DStr.Left+ “…”;
(g)使用宽度可描绘字符数计算步骤计算Ctrl.Width可描画DStr的前m2个字符DStr.Left,计算出最终显示的字符串为 DStr = DStr.Left。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于惠州市德赛西威汽车电子股份有限公司,未经惠州市德赛西威汽车电子股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201310720949.4/1.html,转载请声明来源钻瓜专利网。