문제

를 얻을 수 있다 하나의 텍스트 항목을 선택한 목록에서의 일반적인 대화입니다.그러나 할 수 있지 않을 얻을 PIDL 경우에는 사용자가 선택하기 숨기기 알려진 확장을(기본값),그 다음 하나는 수 없이 정말로 무엇을 말할 파일을 선택하지 않고는 하나 그것의 확장 또는 그것의 PIDL.

그래서 가능한 방법으로 이를 해결하기 위해 수 있습니다:

  1. 을 얻 IShellView 서 표준 파일을 열화입니다.이 기본 IShellView 이 무엇인지 알 수 있습니다 이 PIDL 은 현재 선택합니다.그래서 내가 할 수있는 경우 단순히 얻 의 연락 IShellView 수도 있겠다는 생각이 드네요 황금입니다.불행하게도,I see no CDM_xxx 는 그것을 할 것입니다.고 나 생각할 수 없 떨어져 내 머리 위로 할 수 있습니다 아무것도 그것을 달성!!!:(
  2. 몇몇 다른 아이디어는?!

우리가 사용하는에 의존한다는 사실 Windows9x,2000,XP 버전의 일반적인 파일 저장 대화 각 항목의 PIDL 에 LVITEM 데이터(본래 신용 폴 DiLascia):

LPCITEMIDLIST pidlItem=(LPCITEMIDLIST)pListCtrl->과 integer 를(nItem);

그러나 비스타의 일반적인 통제 및 위는 기술 실패합니다.(

어떤 생각?

편집:내가 필요할 수 있는 이 정보를 얻을 뿐만 아니라 현재 선택한 항목에 대한 목록에서 볼 수 있지만,모든 항목에 대한 목록을 볼 수 있습니다.

EDIT2:그 이유는 내가 필요로를 파고 그렇게 깊이:

의 이전 버전에서의 응용 프로그램은 우리가 수있는 기능을 제공하기:(1)보도 사용자 지정"버튼을 미리보기"는 대화 상자를 닫습니다,그러나 전송하여 응용 프로그램 목록 항목의 현재 표시되는 뷰에서,그들의 눈에 보이는 순서와 함께 지수의 하나이 현재 강조 표시됩니다.이 목록되어야 함을 지정하는 3 는 파일은 모두"J1329192"(있을 때는 정말 3files"J1329192.xyz""J1329192.xzy"및"J1329192.zyx"[순서대로)유용하지 않습니다.

사용자가 허용 입력 부분 파일 이름 필터링으로"파일 이름:"field,그리고 일반적인 대화상자가 표시되는 파일만을 일치된 부분 필터,정렬 순서는 사용자가 선택.도록을 보고 다시 응용 프로그램에 정확히 무엇을 원하리요 우리는 우리를 쿼리할 수 있는 정보 목록에서 보기 관리(또는 일반 대화 자).

우리는 다른 개선 사항을 파일이 대화뿐만 아니라 등에서는 미리보기 창에서는 사용자의 현재 선택적으로 축소판뿐만 아니라,사용자 정의 최근-장소는 인터페이스,등등.이 모든 것이 가능합니다(작업을 많이)이전에 Vista.게시 Vista,로 벽에는 벽.간,우리가 사용하는 표준 파일을 대화만으로 매우 몇 가지 기능의 우리 자신의하지 않는 앉아서 잘 고객과(일어난 것 기능 X?!)

다른 향상된 기능,그러나 그것은 좋은 거친 개요합니다.그들은 모든 종을 요구하는 지식의"정말,정직하게,어떤 파일 구체적으로 보기에 인덱스×?" 과 알 수 없는 이유-Microsoft 지 않는 것이 필요하다는 것을 느낄 수 있을 제공한 인터페이스입니다.사실 그들은 결코하지 않았다.를 통해서만 일부 해킹과 리버스 엔지니어링 우리가 할 수 있는 방법을 알아낼 것들이 일하고 필요한 정보입니다.네,그것의 지원 및 예,MS 필연적으로 우리의 코드입니다.나는 진짜로 그들을 비난-무엇을 찾을 수 있습니까 독은 그들의 새로운,spiffier 인터페이스는 훨씬 더 많은 폐쇄보다 그들의 오래된 중 하나-그리고 그들을 제공하지 않았다 더하면 인터페이스-인터페이스를 지원하는-일을 위해 이러한 대화 향상을 제공합니다.그들은 커플의 단계를 거꾸로-도 앞으로(의 이름으로 진행).

도움이 되었습니까?

해결책

보내기 WM_USER+7 을 얻을 수 브라우저,그리고 다음의 활성 쉘 보기 IShellView 인터페이스입니다.

당신이 알고 보통의 결과를 사용하여 문서화하지 않는 행동을 옳은가?

다른 팁

아아,내가 그것을 발견했습니다.당신이 사용하고 싶 IFileOpenDialog Vista,해야 explicilty 지원이 모든 작업을 언급했다.

내가 이것을 알고 있는 오래된 스레드 그러나,비스타에 있는 이전 스타일의 대화 상자가 여전히 지원합니다.을 해제할 수 있습 Vista 스타일을 유지 모든 사용자 정의 컨트롤합니다.는 우리가 무엇을 할:우리는 사용자 정의 미리보기 창에서는 템플릿에 푹 CFileDialog 나타나는 것은 불가능한 것을 재현에 IFileDialog.

내가 믿고 전달해야 합 거짓에서 BOOL 매개 변수에서 생성자를 끄 Vista 스타일을 대화 상자를 재생할 수 있습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top