C++Builder Programming Forum
C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
C++빌더 포럼
Q & A
FAQ
팁&트릭
강좌/문서
자료실
컴포넌트/라이브러리
메신저 프로젝트
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
볼랜드포럼 광고 모집

C++빌더 Q&A
C++Builder Programming Q&A
[19245] 오너드로우 리스트박스가 느리게 돌아가요.
유지상 [newjisang] 929 읽음    2002-06-10 23:25
리스트박스를 하나 만들고, 그 리스트박스가 화면에 스트링을 나타낼 때에 스트링이 다 한 줄로 나오지 않고 '\n'에서는 다음 줄로 건너가도록 하기 위하여,
다음과 같이 짯습니다.
그런데, 이렇게 짜놓으니까, 리스트박스가 디스플레이되는데 좀 많이 버벅거리는 것 같던데, 즉, 좀더 무겁게 돌아가던데, 이 문제를 어떻게 해결해야될까요?

__fastcall TForm1::TForm1(TComponent* Owner)
  : TForm(Owner)
{
  this->Position = poDesktopCenter;
  ListBox1->Style = lbOwnerDrawVariable;
  ListBox1->MultiSelect = true;
}

void __fastcall TForm1::ListBox1DrawItem(TWinControl *Control, int Index,
      TRect &Rect, TOwnerDrawState State)
{
  //TODO :
  TListBox* Lst = (TListBox*)Control;

  DrawText(Lst->Canvas->Handle, Lst->Items->Strings[Index].c_str(),-1,&Rect,DT_WORDBREAK);
}
//---------------------------------------------------------------------------

void __fastcall TForm1::ListBox1MeasureItem(TWinControl *Control,
      int Index, int &Height)
{
  //TODO :
  TListBox* Lst = (TListBox*)Control;
  TRect rect = Lst->ItemRect(Index);

  DrawText(Lst->Canvas->Handle, Lst->Items->Strings[Index].c_str(),-1,&rect,DT_CALCRECT|DT_WORDBREAK);
  Height = rect.Height();
}


+ -

관련 글 리스트
19245 오너드로우 리스트박스가 느리게 돌아가요. 유지상 929 2002/06/10
19253     Re:오너드로우 리스트박스가 느리게 돌아가요. 유영인.Chris 813 2002/06/11
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.