遇到超级奇怪的问题,呼唤高手~~~
在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字符串