Класс 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 поддерживает следующие режимы.

  • настраиваемый режим

    Настраиваемое действие выполняется, когда пользователь нажимает кнопку обзора. Например, можно отобразить диалоговое окно для конкретного приложения.

  • режим файла

    Диалоговое окно выбора стандартного файла отображается, когда пользователь нажимает кнопку обзора.

  • Режим папки

    Диалоговое окно выбора стандартной папки отображается, когда пользователь нажимает кнопку обзора.

Практическое руководство. Указание элемента управления "Изменить обзор"

Выполните следующие действия, чтобы включить элемент управления "Обзор редактирования" в приложение:

  1. Если вы хотите реализовать пользовательский режим обзора, наследуйте собственный класс из CMFCEditBrowseCtrl класса, а затем переопределите метод CMFCEditBrowseCtrl::OnBrowse . В переопределенном методе выполните настраиваемое действие обзора и обновите элемент управления "Просмотр редактирования" с помощью результата.

  2. CMFCEditBrowseCtrl Внедрение объекта или производного элемента управления "Просмотр элемента управления" в родительский объект окна.

  3. Если вы используете мастер классов для создания диалогового окна, добавьте элемент управления редактирования ( CEdit) в форму диалогового окна. Кроме того, добавьте переменную для доступа к элементу управления в файле заголовка. В файле заголовка измените тип переменной на CEditCMFCEditBrowseCtrl. Элемент управления "Просмотр редактирования" будет создан автоматически. Если мастер классов не используется, добавьте CMFCEditBrowseCtrl переменную в файл заголовка и вызовите его Create метод.

  4. Если добавить элемент управления "Обзор редактирования" в диалоговое окно, используйте средство ClassWizard для настройки обмена данными.

  5. Вызовите метод EnableFolderBrowseButton, EnableFileBrowseButton или EnableBrowseButton, чтобы задать режим обзора и отобразить кнопку обзора. Вызовите метод GetMode, чтобы получить текущий режим обзора.

  6. Чтобы предоставить пользовательский образ для кнопки обзора, вызовите метод SetBrowseButtonImage или переопределите метод OnDrawBrowseButton .

  7. Чтобы удалить кнопку обзора из элемента управления "Обзор редактирования", вызовите метод EnableBrowseButton с параметром bEnable, заданным значением FALSE.

Иерархия наследования

CObject

CCmdTarget

CWnd

CEdit

CMFCEditBrowseCtrl

Пример

В следующем примере показано, как использовать два метода в 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();

Requirements

Заголовок: 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 для дальнейшей обработки.

Замечания

См. также

Диаграмма иерархии
Классы