2011-10-17 7 views
0

Office 2010에는 backstage view이라는 새 유형의 리본이 있습니다. 이 코드는 Codejock Xtreme Toolkit Pro V15.0.1을 사용하는 MFC에서 구현되었습니다.파일 열기 대화 상자 포함

필자는 Office에서 파일> 열기 및 파일> 저장 파일 동작이 매우 이상하다고 생각합니다. 그들은 무대 뒤에서 임베디드 파일 열기 대화 상자를 열지 않고 모달 파일 열기 대화 상자를 엽니 다. 그러면 IMHO가 훨씬 자연 스럽습니다.

MFC 또는 Win32를 사용하여 C++에서이 작업을 수행하는 방법을 찾을 수 없습니다. 내가 찾은 유일한 것은 this 질문 이었지만 델파이를위한 것이었다.

그래서 다른 대화 상자에서 표준 Windows 파일 열기 대화 상자를 컨트롤로 포함 할 수 있습니까? 아니면 전체를 직접 구현해야합니까?

+0

이 작업을 수행 할 수 있을지는 의문입니다. 제쳐두고 Office 팀은 시스템 대화 상자가 아닌 자신의 파일 대화 상자를 사용하여 수년 동안 비웃 았습니다. Office 2007이 출시되기 전까지는 줄 서서 시스템 대화 상자를 사용했습니다. 내 시스템에서는 시스템 대화 상자를 사용하는 것이 좋지만 무대 뒤쪽에 내장 된 기능이 어떻게 깨끗하게 느껴지는지 확인할 수 있습니다. –

답변

1

다른 대화 상자에 파일 열기 대화 상자를 포함 할 수 있을지는 모르겠지만, 당신은 확실히 기존의 대화 상자를 확장 할 수 있습니다 : -

Here's one implementation

.

And another.

And an MSDN version. 빠른 구글, 여기 내 지식, 표준 열기의 최고에 more modern take on extending the file dialogs (and lots of other stuff as well).

+0

모든 링크가 오래되었습니다. Vista가 출시되면 게임이 완전히 바뀌 었습니다. 'IFileDialogCustomize'이이를 수행하는 새로운 방법입니다. –

2

가/대화 기능을 통해 노출되는 저장의 후 위의 지적 다윗

덕분에, 구식 조금, 그래서 모달 대화 상자는 (GetOpenFilename Win32 API를 통해).

대화 상자를 사용자 정의하는 표준 메커니즘이 있지만 (Skizz answer 참조) 모달 대화 상자가 유지됩니다.

enter image description here

Existing 탭 파일 대화 상자를 포함 : 고급 사용자 지정 중 하나 경우는 VB6 프로젝트 열기 대화했다. 그들은 어떻게 했습니까? 내 말은, 표준 대화 상자를 어떻게 3 탭 속성 시트의 한 페이지에 넣을 수 있었는지 말입니다.

표준 사용자 지정 대화 상자를 사용하고 dir/file 컨트롤 위에있는 탭 컨트롤을 추가하고 dir/file 컨트롤 위에있는 다른 '탭'에 대해서는 listview를 추가 한 것으로 보입니다. Existing 이외의 탭을 클릭하면 이러한 dir/파일 컨트롤이 사용자 지정 코드에 의해 숨겨집니다. 당신은 그것을 얻는다 : 진짜 탭 없음! 메인 컨트롤이 다른 컨트롤에 비해 숨겨진 좋은 대화 상자.

내 짧은 대답은 : 당신은 꽤 많은 자식 컨트롤로 대화 상자를 사용하여 운이 좋다.

이제 Office로 돌아가려면 : 모달 대화 상자를 유지하는 것이 좋습니다. 그렇지 않으면 사용자에게 혼란을 겪을 것입니다. 나는 실제 경로를 입력하기 시작한 경로가 방금 '홈'을 클릭하고 저장 명령을 완료하지 않았습니까?

+0

Skizz의 답변에 대한 내 의견대로,이 모든 정보는 Vista의 'IFileDialogCustomize' 도입 이후 구식입니다. –

+1

@David : IFileDialogCustomize에 대해 알아두면 좋지만, [this one] (http://www.w3schools.com/browsers/browsers_os.asp)과 같은 다양한 보고서에 따르면 XP는 여전히 35 컴퓨터의 %,이 새로운 사용자 정의 메커니즘이 내 대답을 어떻게 쓸모 없게 만들었습니까? 그것은 OP에 의해 묻는대로 파일 대화 상자를 포함시킬 수 있습니까? –

+0

불완전합니다. XP에 대한 지원을 포기할 준비가 될 때까지 파일 다이얼로그의 모든 사용자 정의가 두 가지 방법으로 구현되어야합니다. IFileDialogCustomize가 제공하는 커스터마이징은 구식 XP 대화 상자에서 제공하는 것보다 훨씬 유연합니다. 따라서 귀하가 보여 주신 스크린 샷은 새 대화 상자에서 실행되지 않습니다. IFileDialogCustomize를 사용하여 임베드를 변경하지 않아도됩니다. XP 스타일의 커스터마이제이션을 계속할 수있는 반면에, 결과는 혁명적 인 레거시 대화 상자입니다. –