詢問TStringGrid的cell的文字問題 |
答題得分者是:RaynorPao
|
kenbcb
中階會員 發表:171 回覆:129 積分:60 註冊:2003-07-15 發送簡訊給我 |
請問各位: 在TStringGrid中的cell內的文字要如何自動換行~ 請指導~謝謝(附我的程式碼)
void __fastcall TForm1::StringGrid1DrawCell(TObject *Sender, int ACol,
int ARow, TRect &Rect, TGridDrawState State)
{
if (State.Contains(gdSelected))
{
StringGrid1->Canvas->Brush->Color = clRed;
StringGrid1->Canvas->Font->Color = clHighlightText;
StringGrid1->Canvas->FillRect(Rect);
}
else
{
StringGrid1->Canvas->Brush->Color = StringGrid1->Color;
StringGrid1->Canvas->Font->Color = StringGrid1->Font->Color;
StringGrid1->Canvas->FillRect(Rect);
} RECT R = RECT(Rect);
UINT format = DT_LEFT | DT_VCENTER | DT_WORDBREAK;
AnsiString text = StringGrid1->Cells[ACol][ARow]; DrawText(StringGrid1->Canvas->Handle,text.c_str(), text.Length(),&R, format);
}
|
RaynorPao
版主 發表:139 回覆:3622 積分:7025 註冊:2002-08-12 發送簡訊給我 |
引言: 請問各位: 在TStringGrid中的cell內的文字要如何自動換行~ 請指導~謝謝(附我的程式碼) void __fastcall TForm1::StringGrid1DrawCell(TObject *Sender, int ACol, int ARow, TRect &Rect, TGridDrawState State) { if (State.Contains(gdSelected)) { StringGrid1->Canvas->Brush->Color = clRed; StringGrid1->Canvas->Font->Color = clHighlightText; StringGrid1->Canvas->FillRect(Rect); } else { StringGrid1->Canvas->Brush->Color = StringGrid1->Color; StringGrid1->Canvas->Font->Color = StringGrid1->Font->Color; StringGrid1->Canvas->FillRect(Rect); } RECT R = RECT(Rect); UINT format = DT_LEFT | DT_VCENTER | DT_WORDBREAK; AnsiString text = StringGrid1->Cells[ACol][ARow]; DrawText(StringGrid1->Canvas->Handle,text.c_str(), text.Length(),&R, format); } kenbcb 你好: 在 StringGrid1->Cells[ACol][ARow] 中的字串,要以「空白」分隔,才會換行 例如: aaaaabbbbbcccccddddd // 這樣不會換行 aaaaa bbbbb ccccc ddddd // 這樣才會換行-- Enjoy Researching & Developing --
------
-- 若您已經得到滿意的答覆,請適時結案!! -- -- 欲知前世因,今生受者是;欲知來世果,今生做者是 -- -- 一切有為法,如夢幻泡影,如露亦如電,應作如是觀 -- |
kenbcb
中階會員 發表:171 回覆:129 積分:60 註冊:2003-07-15 發送簡訊給我 |
|
littlehorse07
一般會員 發表:1 回覆:4 積分:1 註冊:2004-07-02 發送簡訊給我 |
你好: 不曉的這對你有沒有用,你可以試試 void __fastcall TForm1::BitBtn1Click(TObject *Sender)
{
StringGrid1->Cells[1][1] = "This is Multi-Line\n Demo" //在要換行的文字前加上\n
StringGrid1->Repaint();
}
//---------------------------------------------------------------------------
void __fastcall TForm1::StringGrid1DrawCell(TObject *Sender, int ACol,
int ARow, TRect &Rect, TGridDrawState State)
{
AnsiString Str;
int nHeight;
Str = StringGrid1->Cells[ACol][ARow];
StringGrid1->Canvas->FillRect(Rect);
StringGrid1->Canvas->Font->Color=clBlack;//or other color
DrawText(StringGrid1->Canvas->Handle, Str.c_str(),-1, &Rect,DT_LEFT); }
//---------------------------------------------------------------------------
|
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |