|
임프랍니다.
리스트뷰의 경우, OwnerDraw 프로퍼티를 false로 해도 발생하는 OnCustomDraw 이벤트와는 달리,
OnDrawItem은 반드시 OwnerDraw를 true로 설정해야 발생하게 됩니다.
그런데 아래 다른 글을 보니 OwnerDraw를 설정해도 안된다는 말이 있군요.
보여주신 소스대로 실행해서는, OnDrawItem 이벤트는 발생하겠지만, 리스트뷰에 아무것도 안그려질 것으로
생각됩니다. 왜냐하면.. 텍스트를 안그려줬으니까요.
ListView1->Canvas->TextRect(Rect, Rect.Left+2, Rect.Top, Item->Caption);
이와 같이 텍스트를 그리는 코드를 추가해주세요.
그럼 이만...
김병은 님이 쓰신 글 :
: 정말 초보적인 질문입니다.
:
: New Project를 해서 Form에 ListView에 아이템을 하나를 추가 해놓고,
: OwnerDraw를 true로 하면 아래의 OnDrawItem이벤트가 일어나야 하잖습니까?
: 저도 그렇게 알고 있는데..이벤트가 일어나지 않네요..
: 다른 옵션을 정해 주어야 하는 것 있습니까?
:
: //------------------------------------------------------------------
: void __fastcall TForm1::ListView1DrawItem(TCustomListView *Sender,
: TListItem *Item, TRect &Rect, TOwnerDrawState State)
: {
: ListView1->Canvas->Font->Color = clRed;
: ListView1->Canvas->Brush->Color = clWhite;
: ListView1->Canvas->FillRect(Rect);
: }
: //------------------------------------------------------------------
:
: 단순히 폼위에 ListView하나와 ImageList 하나만 올러 놓고 Test 하는데 않돼네요.
: 감사합니다. 도와 주세요.
|