如何解决StringGrid控件中文本换行问题(50分)

  • 主题发起人 主题发起人 duckstar
  • 开始时间 开始时间
D

duckstar

Unregistered / Unconfirmed
GUEST, unregistred user!
在StringGrid控件中若文本超过预定的宽度,将不能显示后面的内容,能否使文本在某一格内分行显示?
 
这个效果需要指定 OnDrawCell 事件。
procedure TForm1.StringGrid1DrawCell(Sender: TObject; ACol,
ARow: Integer; Rect: TRect; State: TGridDrawState);
var
S: string;
R: TRect;
begin
S := StringGrid1.Cells[ACol, ARow];
R := Rect;
with StringGrid1 do
begin
DrawText(Canvas.handle, PChar(S), -1, @R, DT_WORDBREAK);
end;
end;
 
有一点改正:DrawText(Canvas.handle, PChar(S), -1, @R, DT_WORDBREAK);语句中@R前的@符号应该去掉,这大概是笔误。
 
后退
顶部