|
맛스타:
좋은 정보 감사합니다.^^
근데 말씀이 좀 어렵습니다 ^^;;(제가 초보라서)
좋은 답변 감사드립니다~*
김상면 님이 쓰신 글 :
: MFC에서는 리스트 박스를 사용자 정의 할때 Style 속성을 lbOwnerDrawFixed나 lbOwnerDrawVariable이나 lbVirtualOwnerDraw로 해두고 OnDrawItem 이벤트 핸들러에서 그리기를 하는것 같더군요...
: 근대 이들 이벤트와 스타일을 처리 할때는 기타 몇가지 다른 이벤트도 핸들링 해주어야 할뿐더러... 리스트의 Item에 대한 모든 그리기 코드와 텍스트 출력 프로그램을 모두 직접 해야 한다는 것입니다.
:
: 그래서 주로 응용되는 분야가 칼라 콤보 박스에 주로 사용됩니다.
:
: LISTBOX에 대한 SDI문서를 한번 보시기 바랍니다.
: 잘 설명이 되어 있더군요
: 그럼
:
:
: 맛스타 님이 쓰신 글 :
: : : 이상한 것은 TListBox에 OnPaint 이벤트가 있던가요?
: : :
: : : TListBox가 기본으로 제공하는 그리기 방법이 아닌 다른 방법으로 그리려면 TListBox 인스턴스의 Style 속성을 lbOwnerDrawFixed나 lbOwnerDrawVariable이나 lbVirtualOwnerDraw로 해두고 OnDrawItem 이벤트 핸들러에서 그리기를 하는 것으로 알고 있습니다만...
: :
: : ------------------------------------
: : 일단 외랑님과 ㅁ님의 답변 감사드립니다.
: : 외랑님이 주신 답변데로 첨엔 Onpaint이벤트 핸들러에 루틴을 넣었습니다.
: : ㅁ님의 말씀대로 ListBox엔 Onpaint이벤트가 없었구요~폼의 Onpaint에 넣었습니다.
: : (답변에도 ListBox의 Onpaint라고 쓰여 있지 않아서 폼 밖에 안 떠오르더군요^^;;)
: : ㅁ님께서 가르쳐주신 방법으로 방금 해봤습니다.
: :
: : //대각선 생성.
: : ListBox1->Canvas->Pen->Color = clBlack;
: : ListBox1->Canvas->Pen->Width=2;
: : ListBox1->Canvas->MoveTo(ListBox1->ClientWidth,0);
: : ListBox1->Canvas->LineTo(0,ListBox1->ClientHeight);
: :
: : 요런 코드입니다. ListBox의 오브젝트인스펙터에 가서 style을 lbOwnerDrawFixed로 두고
: : OnDrawItem이벤트 핸들러에 위의 코드를 기입했습니다.
: : 화면엔 아무것도 안 나타났습니다.
: : OnDrawItem<==요게 생성시 바로 발생하는 건가요? 아님 특별한 이벤트가 발생해야 하나요?
: :
: : 답변 부탁드리겠습니다.
|