\   /
本来正常的(文字)显示是               \ /   (只有以符号代替文字演示)
                                      |
                                      |                                       |
                                       |
但我要显示成这样,怎么办?            / \
                                     /   \该功能应用行业:电影售票,如果售票员看到的是正常方向的文字,那么顾客看到的就是反方向的文字(显示器在桌子下面,桌面相当于显示器的平面)。为了顾客能看到正常方向的文字,所以请各位大虾帮个忙,想想办法,谢谢。

解决方案 »

  1.   


    procedure TForm1.BitBtn1Click(Sender: TObject);
    var
      lf: TLogFont;
    begin
      //得到当前窗体的TLogFont
      GetObject(Self.Font.Handle, SizeOf(lf), @lf);
      //设置旋转角度,值为角度*10
      lf.lfEscapement := 1800;
      //同上
      lf.lfOrientation := 1800;
      //根据lf创建新字体并赋给窗体
      Self.Font.Handle := CreateFontIndirect(lf);
    end;
    procedure TForm1.FormPaint(Sender: TObject);
    begin
      Self.Canvas.TextOut(250,250,'旋转的字体');
    end;
      

  2.   

    procedure AngleTextOut(CV: TCanvas; const sText: String; x, y, angle:integer);
    var
      LogFont: TLogFont;
      SaveFont: TFont;begin
      SaveFont := TFont.Create;
      SaveFont.Assign(CV.Font);
      GetObject(SaveFont.Handle, sizeof(TLogFont), @LogFont);
      with LogFont do
      begin
        lfEscapement := angle *10;
        lfPitchAndFamily := FIXED_PITCH or FF_DONTCARE;
      end; {with}
      CV.Font.Handle := CreateFontIndirect(LogFont);
      SetBkMode(CV.Handle, TRANSPARENT);
      CV.TextOut(x, y, sText);
      CV.Font.Assign(SaveFont);
      SaveFont.Free;
    end;procedure TForm1.Button1Click(Sender: TObject);begin
      AngleTextOut(Canvas,'Y',100,100,900);
    end;
      

  3.   

    好久没上来,sorry~,谢谢你们。