|
답변 정말 감사합니다.
내용은 이해는 가지만, 할 수 있을까 라는 생각이 드네요...
열심히 해보고 다시 여쭙겠습니다.
좋은 하루되세요.
장성호 님이 쓰신 글 :
: 재미있는 발상이네요
: TOpenDialog가 그런기능을 지원하지는 않는것 같습니다.
:
: 일단 OpenDialog의 파일 리스트 부분은 ListView 입니다.
: 좀더 정확히 SysListView32 이죠
: TListView 비롯하여 ListVeiw는 CheckBox 기능이 기본적으로 있죠
:
: 그럼..
: ListView에 CheckBox 옵션은 어떻게 변경하는가?
: TListView에서 Checkboxes 프로퍼티를 이용하지 않고 하려면 다음과 같이 해야 합니다.
:
: //체크박스 빼기
: DWORD dStyle;
: dStyle=SendMessage(ListView1->Handle, LVM_GETEXTENDEDLISTVIEWSTYLE, 0, 0);
: dStyle=dStyle&~LVS_EX_CHECKBOXES;
: SendMessage(ListView1->Handle, LVM_SETEXTENDEDLISTVIEWSTYLE, 0, dStyle);
:
: //체크박스 넣기
: DWORD dStyle;
: dStyle=SendMessage(ListView1->Handle, LVM_GETEXTENDEDLISTVIEWSTYLE, 0, 0);
: dStyle=dStyle|LVS_EX_CHECKBOXES;
: SendMessage(ListView1->Handle, LVM_SETEXTENDEDLISTVIEWSTYLE, 0, dStyle);
:
:
: 자 그러면 결론적으로 OpenDialog 에 CheckBox를 보이게 하려면...
: [방법]
:
: 1. OpenDialog 에서 SysListView32 를 찾아서
:
: 2. LVM_SETEXTENDEDLISTVIEWSTYLE 메세지를 날려서 ListView의 Style을 바꿔줍니다.
:
:
:
: [중요체크사항]
:
: 1. OpenDialog는 Execute 가 호출되기 전까지 Window Handle은 존재하진 않습니다.
: 즉 Execute 가 호출되어 close되기전에 작업해야하죠
:
: 2. ListBox의 ViewStyle중 "큰아이콘"보기는 CheckBox부분을 클릭해도 Checked가 변경되지 않더군요
: 이에 대한 적절한 처리가 필요할듯...
:
: 3. ListBox의 Check된 내역을 가져오는것이 중요할듯 하네요..
: 아래 메세지를 이용하여 Checked된 아이템의 내요을 가져올수 있습니다.
: LVM_GETITEMCOUNT
: LVM_GETITEMSTATE
: LVM_GETITEM
:
:
: 그럼..
:
:
:
: 불붕어 님이 쓰신 글 :
: : 이제 C Builder를 시작하는 초보입니다.
: :
: : open dialog에서 모든 항목에 checkbox를 붙일수 있나요?
: : properties의 option에는 없는것 같습니다.
: :
: : 할수 없다면, chebox가 구현된 api나 소스를 구할수 있는 곳이 있을까요?
: :
: : 없으면, 트리를 만들고 각각의 checkbox를 붙인다음 check 여부를 전부 검사해야 할까요?
: : 맨땅에 헤딩이라도 해야되는 상황이라 절박합니다.
: :
: : 아시는 분의 답변 부탁드립니다.
|