首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ Builder >

遇到超级奇怪的有关问题,呼唤高手~

2012-04-03 
遇到超级奇怪的问题,呼唤高手~~~在Image中用TextOutA输出文字,事先定义好了逻辑字体(倾斜角大于零,向上倾

遇到超级奇怪的问题,呼唤高手~~~
在Image中用TextOutA输出文字,事先定义好了逻辑字体(倾斜角大于零,向上倾斜),为了调整Image至适当大小,写了如下的代码
s=VarToStr(……FieldByName……从数据库读取);                                        
        int       Length=Image1-> Canvas-> TextWidth(s);
        int       H=Image1-> Canvas-> TextHeight(s);
        float   a=Form1-> MyLogFont.lfEscapement/10*PI/180;       //字体倾斜角
Image1-> Height=H*cos(a)+Length*sin(a);
Image1-> Width=H*sin(a)+Length*cos(a);
Image1-> Canvas-> TextOutA(0,Length*sin(a),s);
上面的计算应该没有问题,当s为     100.0+j-50.0     类型的字符串时也正确,Image刚好容纳倾斜字体。但当s为     3*(100.0+j-50.0)     类型的字符串时,好像Image就不够大了,最后一两个字符无法显示,就算再加大Image1-> Height,Image1-> Width也没用。
请高手指教:这是什么原因呀,该如何解决呢?谢谢!


[解决办法]
String a= "781.2+j-123.3 ";
int Length=PaintBox1-> Canvas-> TextWidth(a);
int H=PaintBox1-> Canvas-> TextHeight(a);
为什么取出来的Lengtht值不对,不能完全显示出a字符串

热点排行