shbrowseforfolder 예제

shbrowseforfolder 예제

XBrowseForFolder API는 소스 코드에 문서화되어 있으며 XBrowseForFolderTestDlg.cpp의 예가 있습니다. 그러나 SHBrowseForFolder내 가장 큰 문제는 대화 상자의 모양입니다. 그것은 상단과 하단에 큰 여백과 반 완성 보인다. 이러한 공간에 배치 할 수있는 선택적 컨트롤이 있다는 것을 알고 있지만 방금 클릭 한 내용을 사용자에게 알려주는 컨트롤을 추가하는 것은 말도 안된다고 생각합니다. 또한 대화 상자 자체가 너무 작습니다. 마지막으로 대화 상자에는 “항목 옆에 있는 더하기 기호를 클릭하여 더 많은 선택 항목을 표시합니다”와 같이 도움이 되지 않는 텍스트가 표시되는 캡션 막대에 컨텍스트 도움말 버튼이 표시됩니다. 이렇게 하면 MSDN 기술 자료 문서 Q179497 “HOWTO: 공통 대화 제어 없이 디렉터리 선택”에서 제공된 기능이 확장됩니다. 1999년 5월 30일: 모든 Windows 플랫폼에서 PIDL 메서드(BrowseForFolderByPIDL 함수)를 사용할 수 있도록 코드가 크게 변경되었습니다. 또한 API에 제공된 경로는 후행 슬래시를 제거해야 하므로 이를 위해 루틴이 추가되었습니다. 실제로, 당신이 볼 수 있듯이, 파일 열려 있는 대화 상자의 장소 표시 줄대화 상자 자체와 다른 배경을 가지고 있습니다.

그래서, 이 작업을 수행 하 고 내 도구 모음에서 시작 됩니다 메시지를 처리 하려면, SHBrowseForFolder 대화 상자의 메시지를 보고 해야 합니다. 이 작업을 수행하는 한 가지 방법은 후크를 사용하는 것이지만 여기서는 다른 방법을 시도하고 있습니다 . 이 대화 상자에서는 관심있는 메시지만 처리하고 다른 모든 것을 기본 대화 상자에 throw합니다. 나는 윈도우 v7.0 sDK와 윈도우 7 전문 버전과 비주얼 스튜디오 2008을 사용하고 있습니다. 이 윈도우 7에서 잘 작동하지만 Windows Server 2008에서 사용하고 폴더를 선택하면 “이러한 인터페이스가 지원되지 않습니다”라는 메시지가 나타납니다. 1. 플래그 “BIF_RETURNONLYFSDIRS”폴더 브라우저 대화 상자는 윈도우 7에서와 같은 방식으로 작동합니다. 사용자가 폴더를 선택할 수 있도록 허용해야 하는 경우가 있습니다. Win95로 시작, 이 작업을 수행 하는 표준 방법은 SHBrowseForFolder API를 사용 하는 것입니다., 여기 MSDN에서 찾을 수 있는. 유즈넷 뉴스 그룹을 읽는다면 SHBrowseForFolder가 얼마나 복잡한지, 그리고 문서가 얼마나 나쁜지에 대한 많은 불만 사항을 발견할 수 있습니다.

다음은 XP에서 일반적인 SHBrowseForFolder 대화 상자모양입니다: 프로그래머는 초기 폴더를 지정할 수 있습니다. 사용자는 새 폴더를 만들 수 있습니다. 대화 상자의 을 사용할 수 있습니다. XBrowseForFolder는 SHBrowseForFolder API를 활용하여 미래의 호환성을 보장하면서, 위에서 언급 한 문제를 극복 SHBrowseForFolder에 대한 래퍼를 제공합니다. 사용자에게 몇 가지 추가 정보를 제공하려면 다음 줄을 추가 할 수 있습니다 : MSDN 기술 자료 기사 Q179378 “HOWTO : 현재 디렉토리에서 폴더 찾아보기”를 읽은 후 다음 을 설정하는 콜백 함수를 추가하는 방법을 알아낼 수있었습니다. “폴더 검색” 대화 상자에 현재 선택된 경로를 표시합니다.

Share this post