Класс CMFCEditBrowseCtrl
Класс CMFCEditBrowseCtrl
поддерживает элемент управления "Обзор редактирования", который является редактируемым текстовым полем, которое при необходимости содержит кнопку обзора. Когда пользователь нажимает кнопку обзора, элемент управления выполняет настраиваемое действие или отображает стандартное диалоговое окно, содержащее браузер файла или папки в браузере.
Синтаксис
class CMFCEditBrowseCtrl : public CEdit
Участники
Открытые конструкторы
Имя | Описание |
---|---|
CMFCEditBrowseCtrl::CMFCEditBrowseCtrl |
Конструктор по умолчанию. |
CMFCEditBrowseCtrl::~CMFCEditBrowseCtrl |
Деструктор. |
Открытые методы
Имя | Описание |
---|---|
CMFCEditBrowseCtrl::EnableBrowseButton | Включает или отключает (скрывает) кнопку обзора. |
CMFCEditBrowseCtrl::EnableFileBrowseButton | Включает кнопку обзора и помещает элемент управления "Обзор правки" в режиме просмотра файлов. |
CMFCEditBrowseCtrl::EnableFolderBrowseButton | Включает кнопку обзора и помещает элемент управления "Обзор правки" в режиме обзора папок. |
CMFCEditBrowseCtrl::GetMode | Возвращает текущий режим обзора. |
CMFCEditBrowseCtrl::OnAfterUpdate | Вызывается платформой после обновления элемента управления "Обзор редактирования" с результатом действия обзора. |
CMFCEditBrowseCtrl::OnBrowse | Вызывается платформой после нажатия кнопки обзора. |
CMFCEditBrowseCtrl::OnChangeLayout | Перерисовывает текущий элемент управления обзора редактирования. |
CMFCEditBrowseCtrl::OnDrawBrowseButton | Вызывается платформой для рисования кнопки обзора. |
CMFCEditBrowseCtrl::OnIllegalFileName | Вызывается платформой, когда в элемент управления редактированием введено незаконное имя файла. |
CMFCEditBrowseCtrl::PreTranslateMessage |
Преобразует сообщения окна перед отправкой в функции TranslateMessage и DispatchMessage Windows. Дополнительные сведения см. в разделе CWnd::P reTranslateMessage. |
CMFCEditBrowseCtrl::SetBrowseButtonImage | Задает пользовательский образ для кнопки обзора. |
Замечания
Используйте элемент управления "Обзор редактирования", чтобы выбрать имя файла или папки. При необходимости используйте элемент управления для выполнения пользовательского действия, например для отображения диалогового окна. Вы можете отобразить или не отобразить кнопку обзора, и вы можете применить настраиваемую метку или изображение на кнопке.
Режим обзора элемента управления "Обзор правки" определяет, отображается ли кнопка обзора и какое действие происходит при нажатии кнопки. Дополнительные сведения см. в методе GetMode .
Класс CMFCEditBrowseCtrl
поддерживает следующие режимы.
настраиваемый режим
Настраиваемое действие выполняется, когда пользователь нажимает кнопку обзора. Например, можно отобразить диалоговое окно для конкретного приложения.
режим файла
Диалоговое окно выбора стандартного файла отображается, когда пользователь нажимает кнопку обзора.
Режим папки
Диалоговое окно выбора стандартной папки отображается, когда пользователь нажимает кнопку обзора.
Практическое руководство. Указание элемента управления "Изменить обзор"
Выполните следующие действия, чтобы включить элемент управления "Обзор редактирования" в приложение:
Если вы хотите реализовать пользовательский режим обзора, наследуйте собственный класс из
CMFCEditBrowseCtrl
класса, а затем переопределите метод CMFCEditBrowseCtrl::OnBrowse . В переопределенном методе выполните настраиваемое действие обзора и обновите элемент управления "Просмотр редактирования" с помощью результата.CMFCEditBrowseCtrl
Внедрение объекта или производного элемента управления "Просмотр элемента управления" в родительский объект окна.Если вы используете мастер классов для создания диалогового окна, добавьте элемент управления редактирования (
CEdit
) в форму диалогового окна. Кроме того, добавьте переменную для доступа к элементу управления в файле заголовка. В файле заголовка измените тип переменной наCEdit
CMFCEditBrowseCtrl
. Элемент управления "Просмотр редактирования" будет создан автоматически. Если мастер классов не используется, добавьтеCMFCEditBrowseCtrl
переменную в файл заголовка и вызовите егоCreate
метод.Если добавить элемент управления "Обзор редактирования" в диалоговое окно, используйте средство ClassWizard для настройки обмена данными.
Вызовите метод EnableFolderBrowseButton, EnableFileBrowseButton или EnableBrowseButton, чтобы задать режим обзора и отобразить кнопку обзора. Вызовите метод GetMode, чтобы получить текущий режим обзора.
Чтобы предоставить пользовательский образ для кнопки обзора, вызовите метод SetBrowseButtonImage или переопределите метод OnDrawBrowseButton .
Чтобы удалить кнопку обзора из элемента управления "Обзор редактирования", вызовите метод EnableBrowseButton с параметром bEnable, заданным значением FALSE.
Иерархия наследования
Пример
В следующем примере показано, как использовать два метода в CMFCEditBrowseCtrl
классе: EnableFolderBrowseButton
и EnableFileBrowseButton
. Этот пример является частью примера "Новые элементы управления".
CMFCEditBrowseCtrl m_wndFolderEdit;
CMFCEditBrowseCtrl m_wndFileEdit;
// enable the browse button and put the control in file browse mode
m_wndFolderEdit.EnableFolderBrowseButton();
// enable the browse button and put the control in the folder browse mode
m_wndFileEdit.EnableFileBrowseButton();
Требования
Заголовок: afxeditbrowsectrl.h
CMFCEditBrowseCtrl::EnableBrowseButton
Отображает или не отображает кнопку обзора в текущем элементе управления "Просмотр".
void EnableBrowseButton(
BOOL bEnable=TRUE,
LPCTSTR szLabel=_T("..."));
Параметры
bEnable
ЗНАЧЕНИЕ TRUE для отображения кнопки обзора; ЗНАЧЕНИЕ FALSE не отображает кнопку обзора. Значение по умолчанию — TRUE.
szLabel
Метка, отображаемая на кнопке обзора. Значение по умолчанию — " ...".
Замечания
Если параметр bEnable имеет значение TRUE, реализуйте настраиваемое действие для выполнения при нажатии кнопки обзора. Чтобы реализовать пользовательское действие, наследуйте класс из CMFCEditBrowseCtrl
класса, а затем переопределите его метод OnBrowse .
Если параметр bEnable имеет значение TRUE, режим обзора элемента управления имеет значение BrowseMode_Default
; в противном случае — BrowseMode_None
режим обзора. Дополнительные сведения о режимах обзора см. в методе GetMode .
CMFCEditBrowseCtrl::EnableFileBrowseButton
Отображает кнопку обзора текущего элемента управления "Просмотр" и помещает элемент управления в режим обзора файлов.
void EnableFileBrowseButton(
LPCTSTR lpszDefExt=NULL,
LPCTSTR lpszFilter=NULL,
DWORD dwFlags = OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT);
Параметры
lpszDefExt
Указывает расширение имени файла по умолчанию, используемое в диалоговом окне выбора файла. Значение по умолчанию — NULL.
lpszFilter
Указывает строку фильтра по умолчанию, используемую в диалоговом окне выбора файла. Значение по умолчанию — NULL.
dwFlags
Флаги диалогового окна. Значение по умолчанию представляет собой битовую комбинацию (OR) флагов OFN_HIDEREADONLY и OFN_OVERWRITEPROMPT.
Замечания
Когда элемент управления "Обзор" находится в режиме поиска файлов, а пользователь нажимает кнопку обзора, элемент управления отображает стандартное диалоговое окно выбора файла.
Полный список доступных флагов см . в структуре OPENFILENAME.
CMFCEditBrowseCtrl::EnableFolderBrowseButton
Отображает кнопку обзора в текущем элементе управления "Просмотр" и помещает элемент управления в режим обзора папок.
void EnableFolderBrowseButton();
Замечания
Когда элемент управления "Изменить обзор" находится в режиме обзора папок и пользователь нажимает кнопку обзора, элемент управления отображает диалоговое окно выбора стандартной папки.
CMFCEditBrowseCtrl::GetMode
Извлекает режим обзора текущего элемента управления "Обзор правки".
CMFCEditBrowseCtrl::BrowseMode GetMode() const;
Возвращаемое значение
Одно из значений перечисления, указывающее текущий режим элемента управления "Просмотр правки". Режим обзора определяет, отображает ли платформа кнопку обзора и какое действие происходит при нажатии этой кнопки пользователем.
В следующей таблице перечислены возможные возвращаемые значения.
значение | Описание |
---|---|
BrowseMode_Default |
настраиваемый режим. Выполняется определяемое программистом действие. |
BrowseMode_File |
режим файла. Откроется диалоговое окно стандартного браузера файлов. |
BrowseMode_Folder |
режим папки. Откроется диалоговое окно "Стандартный браузер папок". |
BrowseMode_None |
Кнопка обзора не отображается. |
Замечания
По умолчанию CMFCEditBrowseCtrl
объект инициализируется в BrowseMode_None
режиме. Измените режим обзора с помощью методов CMFCEditBrowseCtrl::EnableBrowseButton, CMFCEditBrowseCtrl::EnableFileBrowseButton и CMFCEditBrowseCtrl::EnableFolderBrowseButton.
CMFCEditBrowseCtrl::OnAfterUpdate
Вызывается платформой после обновления элемента управления "Обзор редактирования" с результатом действия обзора.
virtual void OnAfterUpdate();
Замечания
Переопределите этот метод в производном классе для реализации пользовательского действия.
CMFCEditBrowseCtrl::OnBrowse
Вызывается платформой после нажатия кнопки обзора элемента управления "Обзор".
virtual void OnBrowse();
Замечания
Используйте этот метод для выполнения пользовательского кода, когда пользователь нажимает кнопку обзора элемента управления "Изменить". Наследуйте собственный CMFCEditBrowseCtrl
класс из класса и переопределите его OnBrowse
метод. В этом методе реализуйте пользовательское действие обзора и при необходимости обновите текстовое поле элемента управления "Обзор редактирования". В приложении используйте метод EnableBrowseButton , чтобы поместить элемент управления "Обзор редактирования" в настраиваемый режим обзора .
CMFCEditBrowseCtrl::OnChangeLayout
Перерисовывает текущий элемент управления обзора редактирования.
virtual void OnChangeLayout();
Замечания
Платформа вызывает этот метод при изменении элемента управления "Обзор" в режиме обзора. Дополнительные сведения см. в разделе CMFCEditBrowseCtrl::GetMode.
CMFCEditBrowseCtrl::OnDrawBrowseButton
Вызывается платформой для рисования кнопки обзора в элементе управления "Изменить".
virtual void OnDrawBrowseButton(
CDC* pDC,
CRect rect,
BOOL bIsButtonPressed,
BOOL bIsButtonHot);
Параметры
pDC
Указатель на контекст устройства.
Прямоугольник
Ограничивающий прямоугольник кнопки обзора.
bIsButtonPressed
ЗНАЧЕНИЕ TRUE, если кнопка нажимается; в противном случае — ЗНАЧЕНИЕ FALSE.
bIsButtonHot
ЗНАЧЕНИЕ TRUE, если выделена кнопка; в противном случае — ЗНАЧЕНИЕ FALSE.
Замечания
Переопределите эту функцию в производном классе, чтобы настроить внешний вид кнопки обзора.
CMFCEditBrowseCtrl::SetBrowseButtonImage
Задает пользовательское изображение на кнопке обзора элемента управления "Изменить".
void SetBrowseButtonImage(
HICON hIcon,
BOOL bAutoDestroy= TRUE);
void SetBrowseButtonImage(
HBITMAP hBitmap,
BOOL bAutoDestroy= TRUE);
void SetBrowseButtonImage(UINT uiBmpResId);
Параметры
hIcon
Дескриптор значка.
hBitmap
Дескриптор растрового изображения.
uiBmpResId
Идентификатор ресурса растрового изображения.
bAutoDesk
ЗНАЧЕНИЕ TRUE, чтобы удалить указанный значок или растровое изображение при выходе из этого метода; в противном случае — ЗНАЧЕНИЕ FALSE. Значение по умолчанию — TRUE.
Замечания
Используйте этот метод для применения пользовательского изображения к кнопке обзора. По умолчанию платформа получает стандартное изображение, когда элемент управления "Просмотр изменений" находится в режиме обзора файлов или папок .
CMFCEditBrowseCtrl::OnIllegalFileName
Вызывается платформой, когда в элемент управления редактированием введено незаконное имя файла.
virtual BOOL OnIllegalFileName(CString& strFileName);
Параметры
strFileName
Указывает недопустимое имя файла.
Возвращаемое значение
Значение FALSE должно возвращаться, если имя файла не может быть передано далее в диалоговое окно файла. В этом случае фокус возвращается в элемент управления редактирования, и пользователь должен продолжить редактирование. Реализация по умолчанию отображает окно сообщения, указывающее пользователю о незаконном имени файла и возвращает значение FALSE. Этот метод можно переопределить, исправить имя файла и вернуть ЗНАЧЕНИЕ TRUE для дальнейшей обработки.