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
[51784] Re:open dialog에 check box를 붙일수 있나요?
장성호 [nasilso] 1294 읽음    2008-01-03 03:01
재미있는 발상이네요
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 여부를 전부 검사해야 할까요?
: 맨땅에 헤딩이라도 해야되는 상황이라 절박합니다.
:
: 아시는 분의 답변 부탁드립니다.

+ -

관련 글 리스트
51781 open dialog에 check box를 붙일수 있나요? 불붕어 917 2008/01/02
51784     Re:open dialog에 check box를 붙일수 있나요? 장성호 1294 2008/01/03
51787         Re:Re:open dialog에 check box를 붙일수 있나요? 불붕어 1593 2008/01/03
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.