Страницы

Поиск по вопросам

воскресенье, 2 февраля 2020 г.

Можно ли как то добавить в диалог открытия файла в WINAPI дополнительные кнопки?

#cpp #c #windows #winapi




Например в Visual Studio есть такой диалог для открытия проекта с двумя переключателями,
есть ли какой то простой способ сделать подобное без написания всего диалога с нуля?
    


Ответы

Ответ 1



Можно. Для WinAPI используйте флажки в структуре OPENFILENAME, переопределяющие шаблон диалога (поле LPCTSTR lpTemplateName + флажок OFN_ENABLETEMPLATE в поле Flags) и добавляющие хук к обработчику сообщений (поле LPOFNHOOKPROC lpfnHook + флажок OFN_ENABLEHOOK в поле Flags). Однако есть некоторые ограничения именно для общих шаблонов выбора файла для чтения Open / записи SaveAS, в зависимости от того, используется ли старый стиль или новый стиль шаблона (флажок OFN_EXPLORER в поле Flags). В одном случае Вы можете только добавить свой шаблон к стандартному шаблону, а в другом полностью заменить его. Учтите, что идентификаторы ваших дополнительных элементов управления не должны совпадать с идентификаторами стандартных элементов. Описание деталей этого можно почитать в MSDN в разделе Customizing Common Dialog Boxes. Там же указано, в каких именно файлах можно посмотреть определение стандартных шаблонов, используемых в рамках ComDlg32 / Common Dialog Box Library. Этот метод работает на системах, начиная с Windows 2000 / Windows Server 2000 и выше. Если нам достаточно поддержки Windows Vista / Windows Server 2008 и выше, мы пишем на С++, а не на С, то используем интерфейс IFileDialogCustomize из Common Item Dialog.

Ответ 2



Для этого служит интерфейс IFileDialogCustomize. Этот интерфейс реализован в стандартных диалогах выбора файлов. Позволяет добавлять кнопки, переключатели, текстовые поля и т.п.

Комментариев нет:

Отправить комментарий