In OnDrawCellWindows.DrawText(Canvas.Handle, PChar(Str), -1, Rect, DT_RIGHT or DT_SINGLELINE or DT_VCENTER);
上面是右对齐的

解决方案 »

  1.   

    先在DBGrid中添加好列,直接指定列的对齐方式。
      

  2.   


      我已经在dbgrid已经指定好了对齐方式,但是还是不行。, 1: In OnDrawCell这种方法的时候,defaultdrawing得属性为false还是true,Windows.DrawText(Canvas.Handle, PChar(Str), -1, Rect, DT_RIGHT or DT_SINGLELINE or DT_VCENTER);
    上面是右对齐的
      

  3.   

    DefaultDrawing我一般都设为False
    因为在OnDrawCell里就是要自己画的。我在窗体上放一个TDrawGrid,然后响应OnDrawCell事件
    DefaultDrawing:=False
    我想让第一列左对齐,第二列居中,其它列右对齐
    procedure TForm1.DrawGrid1DrawCell(Sender: TObject; ACol, ARow: Integer;
      Rect: TRect; State: TGridDrawState);
    var
      style: DWORD;
    begin
      if ACol=0 then
        style:=DT_LEFT
      else if ACol=1 then
        style:=DT_CENTER
      else style := DT_RIGHT;
      Windows.DrawText(DrawGrid1.Canvas.Handle, 'test', -1, Rect, 
        style or DT_SINGLELINE or DT_VCENTER);
    end;