我想调用DrawText在一个canvas上输出文字,但发现DT_VCENTER或DT_BOTTOM无效,这是怎么回事,操作系统是win2000,代码如下:DrawText(Image1->Canvas->Handle,"test",4,Image1->ClientRect,DT_VCENTER)但是显示的文字出现在做上角,换成DT_BOTTOM也无效,请用过的哥们给看看,谢了

解决方案 »

  1.   

    DT_VCENTER或DT_BOTTOM要和DT_SINGLELINE一起用才有效.
    DrawText(Image1->Canvas->Handle,"test",4,Image1->ClientRect,DT_SINGLELINE or DT_VCENTER)
      

  2.   


    试了一下,不行,代码如下:#include <vcl.h>
    #pragma hdrstop#include "Unit1.h"
    //---------------------------------------------------------------------------
    #pragma package(smart_init)
    #pragma resource "*.dfm"
    TForm1 *Form1;
    //---------------------------------------------------------------------------
    __fastcall TForm1::TForm1(TComponent* Owner)
    : TForm(Owner)
    {
    }
    //---------------------------------------------------------------------------void __fastcall TForm1::Button1Click(TObject *Sender)
    {
    DrawText(Image1->Canvas->Handle,"test",4,&(Image1->ClientRect),DT_VCENTER || DT_SINGLELINE);}
    //---------------------------------------------------------------------------点完按钮后,"test"在Image1的顶端居中显示
      

  3.   

    在C里用“|”
    在Delphi里用“or”而不是“||”