2010-04-09 9 views
11

CListCtrl은 열의 너비를 자동으로 조정할 수 있습니까? 일반적으로 목록의 항목이 너무 길어지면 백엔드가 보이지 않게되고 사용자는 해당 열의 너비를 수동으로 조정해야합니다. 코드로이를 수행 할 수있는 방법이 있습니까?CListCtrl의 열 크기 자동 조절

답변

12

은 간단합니다 :

for(int i = 0;i < pListCtrl->GetHeaderCtrl()->GetItemCount();++i) 
    pListCtrl->SetColumnWidth(i,LVSCW_AUTOSIZE_USEHEADER); 

이 열을 최적화합니다.

+0

헤이, 나는 그것을 시도하고 잘 작동하는 것 :) :) 답장을 많이 주셔서 감사합니다 dwo : D – Isuru

+0

작은 질문 dwo, 나는 HeaderControl에 대해 들어 본 적이있다. 그것은 정확히 무엇입니까 ??? 감사합니다. – Isuru

+0

머리글 컨트롤은 열 제목이있는 목록 컨트롤의 위쪽 부분입니다. – dwo

1

"스크롤하지 않음"옵션이 설정되어 있습니까? 기본적으로 ("스크롤하지 않음"옵션을 해제하면) 항목이 너무 길면 스크롤 막대가 나타납니다.

1

보고서 모드에서 목록 컨트롤이라고 생각하십니까? 불행히도 열의 크기를 자동으로 조정할 방법은 없습니다. 할 수있는 일 (내가 어떤 곳에서하는 일)은 항목을 입력 할 때 열 폭을 계산 한 다음 WM_SIZE를 처리하고 열의 크기를 조정합니다. 그러나 이로 인해 사용자가 잃어버린 변경 사항이 발생하므로 크기를 조정하지 않은 경우 사용자가 변경 한 경우 추적과 같은 더 나은 알고리즘이 필요할 수 있습니다. UX의 관점에서보기 좋지는 않지만 UI의 나머지 부분에서 그 동작이 의미있는 상황에서만 사용합니다. 자동 열 크기 조정

+0

예, 그것이 제가 의미했던 것입니다. 답장을 보내 주셔서 감사합니다. 적합한 알 고를 얻지 못하면 수동으로 크기를 조정하기 위해 OnSize()를 처리하고 독자에게 창 크기를 조정하도록 요청할 것입니다. – Isuru

관련 문제