|
원래 그런건데요...
canvas에 직접 그려줬으니까 다른윈도우에 가렸다거나 어떤이유에서건 지워졌으면
paint이벤트때 다시 그려줘야 됩니다.
Sgrid->Cells[row][col[]="adsf"; //==> 이런식으로 설정하면
StringGrid control이 알아서 paint이벤트에 다시 그려주는거구요
님께서는 직접 그렸으면 직접 paint이벤트에 다시 그려줘야 되죠
StringGrid 의 DrawCell 이벤트에
row와 col을 확인한후 다시 아래코드와 똑같이 코딩하시면 됩니다.
void __fastcall TForm1::StringGrid1DrawCell(TObject *Sender, int ACol,
int ARow, TRect &Rect, TGridDrawState State)
{
if(ARow==0 && ACol==1)
{
pCanvas->Brush->Color = 0x00A04A44;
pCanvas->Font->Color = clWhite;
pCanvas->FillRect(Rect);
pCanvas->TextOut(Rect.left, Rect.top, "동해물과");//
pCanvas->TextOut(Rect.left, Rect.top + 15, "백두산이");//))
}
}
//---------------------------------------------------------------------------
뭐 이런식으로요....
pili 님이 쓰신 글 :
: 스트링 그리드에서 동적으로 텍스트를 출력합니다.. 즉 db에서 값을 읽어와 출력을 하는데 텍스트길이가
:
: 길어 2줄로 출력 하려고 합니다.
:
: 아래와 같이 사용자 함수에
: TRect pRect = suiStringGrid1->CellRect(1, 0);
:
: pCanvas->Brush->Color = 0x00A04A44;
: pCanvas->Font->Color = clWhite;
: pCanvas->FillRect(pRect);
:
: pCanvas->TextOut(pRect.left, pRect.top, "동해물과");//
: pCanvas->TextOut(pRect.left, pRect.top + 15, "백두산이");//))
:
: 코드를 위와 같이 해놨습니다. 그런데 폼을 가렸다 띄우면 해당 텍스트가 사라져 버리네요...
:
: 별 문제 없을 것 같은데... ㅡ.ㅡ++ 답변좀 부탁드릴께요..
:
: 그럼 다들 수고하세요.
|