Диалог открытия файла встраивания - PullRequest
0 голосов
/ 17 октября 2011

В Office 2010 появился новый тип ленты - представление за кулисами .Это было реализовано в MFC с использованием Codejock Xtreme Toolkit Pro V15.0.1.

Дело в том, что мне кажется, что File> Open и File> SaveAs в Office работают очень странно.Они открывают модальное диалоговое окно открытия файла вместо того, чтобы открывать встроенное диалоговое окно открытия файла за кулисами, что (IMHO) кажется более естественным.

Я не могу найти способ сделать это в C ++ с использованием MFC или Win32.Единственное, что я нашел, это этот вопрос, но это было для Delphi.

Итак, возможно ли встроить стандартный диалог открытия файлов Windows в качестве элемента управления в другое диалоговое окно?Или мне нужно реализовать все это самостоятельно?

Ответы [ 2 ]

2 голосов
/ 17 октября 2011

Насколько мне известно, стандартная функциональность диалога Open / Save предоставляется только через модальное диалоговое окно (через GetOpenFilename Win32 API).

Существует стандартный механизм настройки диалога (см. Skizz answer ), но он остается модальным диалогом. Одним из примеров расширенной настройки был диалог VB6 Open Project :

enter image description here

Вкладка Existing содержит диалоговое окно файла. Как они это делают? Я имею в виду, как им удалось поместить стандартный диалог на страницу их страницы свойств с 3 вкладками?

Похоже, что они просто использовали стандартный диалог настройки и добавили элемент управления вкладками над стандартными элементами управления dir / file и просмотр списка для других «вкладок» над элементами управления dir / file. Эти элементы управления dir / file были затем скрыты пользовательским кодом при нажатии на вкладку, отличную от Existing. Вы получаете это: никаких реальных вкладок! Просто старый добрый файловый диалог, в котором основные элементы управления могут быть скрыты в пользу других.

Итак, мой короткий ответ: вам почти не повезло, если вы используете диалог в качестве дочернего элемента управления.

Теперь, чтобы вернуться в Office: я считаю, что лучше вести модальный диалог. В противном случае это могло бы сбить пользователя с толку: путь, который я начал набирать, реальный путь, я просто нажал «Домой» и оставил команду сохранения незавершенной?

1 голос
/ 17 октября 2011

Я не знаю, можете ли вы встроить диалог открытия файла в другой диалог, но вы, безусловно, можете расширить существующие диалоги: -

Вот одна реализация .

И еще .

И версия MSDN .

Спасибо Дэвиду за то, что он указал выше, немного устарели, поэтомупосле быстрого Google, есть более современный подход к расширению файловых диалогов (и многих других вещей).

...