2009-02-10 4 views
0

위젯에는 wxHtmlListBox에서 파생 된 CListCtr이라는 클래스가 있습니다. 목록에는 100 개의 항목이 있지만 한 페이지에 10 개의 항목을 표시하고 단추 pagerown을 누르면 다른 10 개의 항목을 표시하는 다른 페이지가 표시됩니다. 나는 스크롤바가 필요 없다. 그러나 클래스를 만들 때 항상 추가됩니다. 어떻게하면 스크롤바를 삭제하거나 생성하지 않을 수 있습니까?wxHtmlListBox에서 파생 된 클래스에서 스크롤 막대를 삭제하는 방법은 무엇입니까?

답변

0

wxHtmlListBox는 스크롤바 자체를 처리하는 특수 wxVScrolledWindow입니다. 당연히 클라이언트 영역에 동시에 표시 할 수있는 것보다 목록에 더 많은 목록 항목이 있으면 스크롤바가 나타납니다.

그러나 wxHtmlListBox에 사용 가능한 모든 항목이 포함되어 있어야한다고 말할 것도 없습니다. 10 개 항목에 대해 충분한 공간을 주면 SetItemCount (100) 대신 SetItemCount (10)를 호출하면 스크롤바가 표시되지 않습니다. 페이지 위/아래 또는 다른 네비게이션 키를 직접 처리하고 wxHtmlListBox의 내용을 무효화 할 수 있습니다. 가상 컨트롤이기 때문에 데이터를 변경할 필요가 없으며 파생 클래스의 OnGetItem() 및 OnGetItemMarkup() 메서드에서 목록의 다음 또는 이전 10 개 항목 만 반환하면됩니다.

이 방법을 구현하는 방법에 불과하다는 점에 유의 해주세요. 좋지 않다고 생각합니다. 스크롤바는 더 많은 데이터가 있고 사용자가 데이터의 시작과 끝에 상대적이라는 표시입니다. 사용자가 가진 가정을 깨뜨리지 마십시오. 페이지를 위/아래로 움직여서 보이는 데이터를 스크롤하는 것을 어떻게 알 수 있습니까?

관련 문제