2012-05-30 3 views
2

SHBrowseForFolder()에 관한 몇 가지 질문이 있습니다. 나는 BIF_USENEWUI, BIF_RETURNONLYFSDIRSBIF_VALIDATE과 함께 사용하고 있습니다. 주로 편집 상자에 문제가 있습니다. 나는 그것이 조금 다르게 작용하고 싶다.SHBrowseForFolder 텍스트 수정

  1. 나는 유효한 디렉토리 "C:\path"에 있다고 가정합시다. 텍스트 상자에 존재하지 않는 폴더 ("Folder1")를 입력하고 OK를 누르면받은 경로는 "C:\path"입니다. 확인 버튼을 누르면 "Folder1""C:\path"에 생성되고 경로는 "C:\path\Folder1"이됩니다. (새 폴더 만들기 버튼을 사용하지 않고)

  2. 현재 이름을 바꿀 수있는 새 폴더를 만드는 "Make New Folder"을 클릭 할 수 있습니다. 텍스트 편집에서 새 폴더 (기본 이름)로 나타납니다. 폴더의 이름을 변경 한 후에도 다른 폴더를 클릭 한 다음 새로 명명 된 폴더를 다시 클릭하지 않으면 텍스트 편집에 새 폴더로 나타납니다. 폴더의 이름을 변경하자마자 텍스트 편집을 업데이트 할 수있는 방법이 있습니까?

답변

1

1 BIF_VALIDATE 플래그를 응용 프로그램 정의 콜백 함수를 설치하고 지정한 다음 BFFM_VALIDATEFAILED를 처리하고이 폴더를 만들어보십시오.

2 BFFM_INITIALIZED에서 대화 상자와 텍스트 편집을 서브 클래스 화하고 트리 컨트롤에서 TVN_BEGINLABELEDIT 및 TVN_ENDLABELEDIT를 찾은 다음 사용자가 편집을 마칠 때 트리 노드 텍스트 변경을 기반으로 편집 컨트롤의 텍스트를 변경할 수 있습니다. 찾아보기 폴더 대화 상자의 컨트롤에 대한 대화 ID는 문서화되어 있지 않으므로 고려해야 할 호환성 위험이 있습니다. Windows 업데이트/업그레이드 후에 코드가 손상된 경우 놀라지 않을 것이지만 사용자로서 이것은 어쨌든 놓칠 수있는 기능이 아닙니다.