정성훈.해미 님이 쓰신 글 :
: 스트링그리드 속성중에
: DefaultDrawing이 있습니다.
:
: 기본이 DefaultDrawing = true인데
:
: true일 경우,
: 그리드가 자동으로 그려집니다.
:
: false로 하면
: 그리드를 원하는 대로 그릴수 있습니다.
:
: DefaultDrawing 를 false로 하고
:
: OnDrawCell 이벤트에서 직접 그려주면 원하는 것을 할 수 있습니다.
:
: 예)
: 1. 스트링그리스 속성에서
: DefaultDrawing 를 false로 하거나
:
: 폼 생성자에 아래 코드를 추가합니다.
: StringGrid1->DefaultDrawing = false;
:
: 2. 스트링 그리드의 OnDrawCell 이벤트를 아래와 같이 작성합니다.
: void __fastcall TForm2::StringGrid1DrawCell(TObject *Sender, int ACol, int ARow, TRect &Rect, TGridDrawState State)
: {
: // 셀 그리기
: // 고정 셀은 버튼 모양으로
: if(State.Contains(gdFixed)) {
: StringGrid1->Canvas->Brush->Color = clBtnFace;
: StringGrid1->Canvas->Font->Color = clWindowText;
: StringGrid1->Canvas->FillRect(Rect);
: Frame3D(StringGrid1->Canvas, Rect, clBtnHighlight, clBtnShadow, 1);
: }
: // 선택된 셀은 하이라이트 색
: else if (State.Contains(gdSelected))
: {
: StringGrid1->Canvas->Brush->Color = clHighlight;
: 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);
: }
:
: // 셀 내용(텍스트) 출력
: StringGrid1->Canvas->TextRect(Rect, Rect.Left, Rect.Top, StringGrid1->Cells[ACol][ARow]);
: }
:
:
:
:
: 테두리 님이 쓰신 글 :
: : 제목 그대로의 내용입니다.
: :
: : 셀 선택시 점선으로 포커스 된 부분에 사각형이 그려지는데, 이게 안그려지게 하고 싶어요 ㅠㅠㅠ 이것때문에 자꾸 심적으로 앓고 있다가 결국 못찾아서 올립니다. 도와주세요 !!
제가 설명이 짧았던 모양입니다. 이미 DefaultDrawing은 False로 해둔 상태입니다. 그럼에도 셀을 선택하면 FocusRect가 점선처럼 그려지는 것 같은데, 이 사각영역을 없애고 싶어 드린 질문이었습니다.
|