목록의 모든 열에 대해 CListCtrl.EditLabel()을 갖고 싶습니다. 어떻게 이러한 기능을 구현할 수 있습니까?CListCtrl을 사용하여 열을 편집하는 방법은 무엇입니까?
3
A
답변
2
이 작업은 수행 할 수 있지만 마우스 클릭 및 포커스 이벤트로 인해 약간의 시간이 걸릴 수 있습니다.
요약하면 마우스 왼쪽 버튼을 메시지 아래로 트랩하고 셀 조회 세부 정보 (예 : 행 및 열 색인)로 변환합니다.
이러한 셀 정보를 사용하면 목록보기 셀의 크기와 위치 및 셀에 포함 된 텍스트 값을 결정할 수 없습니다.
이제 이전 단계의 크기 및 위치 정보를 사용하여이 셀에 직접 CEdit 컨트롤을 만들고 셀의 텍스트 값을 지정하십시오.
마지막 단계는 CEdit의 텍스트 세부 정보를 목록보기 셀에 다시 넣을 수 있도록 CEdit의 포커스 및 키보드 입력 이벤트를 처리하는 것입니다.
코딩 작업량이 적지 만 올바르게 수행되면 그리드 컨트롤의 대안으로 잘 작동합니다.
2
CListCtrl을 사용하여 시도하지 마십시오.
MFC Grid Control을 사용하십시오. 우리는 성공으로 기성품 응용 프로그램에 배포합니다. 그것은 열 및 행 헤더, 자동 크기, 자동 확장, 색상, 드래그 드롭뿐만 아니라 모든 셀에 대해 내부 편집, 확인란, 스핀 등을 제공합니다.
더 나은 사용 http://www.codeproject.com/KB/list/CGridListCtrlEx.aspx Vista/Win7에서는 지옥처럼 추악하지 않습니다. – Lothar