DefaultDrawing 를 false로 하면
그리드 껍데기 모양만 그려지는게 정상입니다.
어딘가에서 포커스된 셀을 따로 그려주는건 아닌지
소스를 다시 확인해 보셔야 할 것 같습니다.
님이 쓰신 글 :
: 정성훈.해미 님이 쓰신 글 :
: : 스트링그리드 속성중에
: : 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가 점선처럼 그려지는 것 같은데, 이 사각영역을 없애고 싶어 드린 질문이었습니다.
:
:
:
:
:
:
:
:
:
:
|