Поделиться через


Класс CMFCToolBarEditBoxButton

Кнопка панели инструментов, содержащая элемент управления редактированием ( класс CEdit).

Синтаксис

class CMFCToolBarEditBoxButton : public CMFCToolBarButton

Участники

Открытые конструкторы

Имя Описание
CMFCToolBarEditBoxButton::CMFCToolBarEditBoxButton Формирует объект CMFCToolBarEditBoxButton.
CMFCToolBarEditBoxButton::~CMFCToolBarEditBoxButton Деструктор.

Открытые методы

Имя Описание
CMFCToolBarEditBoxButton::CanBeStretched Указывает, может ли пользователь растянуть кнопку во время настройки. (Переопределения CMFCToolBarButton::CanBeStretched.)
CMFCToolBarEditBoxButton::CopyFrom Копирует свойства другой кнопки панели инструментов на текущую кнопку. (Переопределения CMFCToolBarButton::CopyFrom.)
CMFCToolBarEditBoxButton::CMFCToolBarEditBoxButton::CreateEdit Создает элемент управления редактирования в кнопке.
CMFCToolBarEditBoxButton::CreateObject Используется платформой для создания динамического экземпляра этого типа класса.
CMFCToolBarEditBoxButton::GetByCmd Извлекает первый CMFCToolBarEditBoxButton объект в приложении с указанным идентификатором команды.
CMFCToolBarEditBoxButton::GetContentsAll Извлекает текст первого элемента управления панели инструментов поля редактирования с указанным идентификатором команды.
CMFCToolBarEditBoxButton::GetContextMenuID Извлекает идентификатор ресурса контекстного меню, связанного с кнопкой.
CMFCToolBarEditBoxButton::GetEditBorder Извлекает ограничивающий прямоугольник элемента редактирования кнопки "Изменить".
CMFCToolBarEditBoxButton::CMFCToolBarEditBoxButton::GetEditBox Возвращает указатель на элемент управления редактирования, внедренный в кнопку.
CMFCToolBarEditBoxButton::GetHwnd Извлекает дескриптор окна, связанный с кнопкой панели инструментов. (Переопределения CMFCToolBarButton::GetHwnd.)
CMFCToolBarEditBoxButton::GetInvalidateRect Извлекает область клиентской области кнопки, которую необходимо перезапустить. (Переопределения CMFCToolBarButton::GetInvalidateRect.)
CMFCToolBarEditBoxButton::GetThisClass Используется платформой для получения указателя на объект CRuntimeClass , связанный с этим типом класса.
CMFCToolBarEditBoxButton::HaveHotBorder Определяет, отображается ли граница кнопки при нажатии кнопки. (Переопределения CMFCToolBarButton::HaveHotBorder.)
CMFCToolBarEditBoxButton::IsFlatMode Определяет, имеют ли кнопки поля редактирования неструктурированный стиль.
CMFCToolBarEditBoxButton::NotifyCommand Указывает, обрабатывает ли кнопка сообщение WM_COMMAND . (Переопределения CMFCToolBarButton::NotifyCommand.)
CMFCToolBarEditBoxButton::OnAddToCustomizePage Вызывается платформой при добавлении кнопки в диалоговое окно "Настройка ". (Переопределения CMFCToolBarButton::OnAddToCustomizePage.)
CMFCToolBarEditBoxButton::OnCalculateSize Вызывается платформой для вычисления размера кнопки для указанного контекста устройства и состояния закрепления. (Переопределения CMFCToolBarButton::OnCalculateSize.)
CMFCToolBarEditBoxButton::OnChangeParentWnd Вызывается платформой при вставке кнопки в новую панель инструментов. (Переопределения CMFCToolBarButton::OnChangeParentWnd.)
CMFCToolBarEditBoxButton::OnClick Вызывается платформой, когда пользователь нажимает кнопку мыши. (Переопределения CMFCToolBarButton::OnClick.)
CMFCToolBarEditBoxButton::OnCtlColor Вызывается платформой, когда родительская панель инструментов обрабатывает сообщение WM_CTLCOLOR. (Переопределения CMFCToolBarButton::OnCtlColor.)
CMFCToolBarEditBoxButton::OnDraw Вызывается платформой для рисования кнопки с помощью указанных стилей и параметров. (Переопределения CMFCToolBarButton::OnDraw.)
CMFCToolBarEditBoxButton::OnDrawOnCustomizeList Вызывается платформой для рисования кнопки в области "Команды " диалогового окна "Настройка ". (Переопределения CMFCToolBarButton::OnDrawOnCustomizeList.)
CMFCToolBarEditBoxButton::OnGlobalFontsChanged Вызывается платформой при изменении глобального шрифта. (Переопределения CMFCToolBarButton::OnGlobalFontsChanged.)
CMFCToolBarEditBoxButton::OnMove Вызывается платформой при перемещении родительской панели инструментов. (Переопределения CMFCToolBarButton::OnMove.)
CMFCToolBarEditBoxButton::OnShow Вызывается платформой, когда кнопка становится видимой или невидимой. (Переопределения CMFCToolBarButton::OnShow.)
CMFCToolBarEditBoxButton::OnSize Вызывается платформой, когда родительская панель инструментов изменяет размер или положение, и это изменение приводит к изменению размера кнопки. (Переопределения CMFCToolBarButton::OnSize.)
CMFCToolBarEditBoxButton::OnUpdateToolTip Вызывается платформой, когда родительская панель инструментов обновляет текст подсказки. (Переопределения CMFCToolBarButton::OnUpdateToolTip.)
CMFCToolBarEditBoxButton::Serialize Считывает этот объект из архива или записывает его в архив. (Переопределения CMFCToolBarButton::Serialize.)
CMFCToolBarEditBoxButton::SetACCData Заполняет предоставленный CAccessibilityData объект данными специальных возможностей с помощью кнопки панели инструментов. (Переопределения CMFCToolBarButton::SetACCData.)
CMFCToolBarEditBoxButton::CMFCToolBarEditBoxButton::SetContents Задает текст в элементе управления правки кнопки.
CMFCToolBarEditBoxButton::CMFCToolBarEditBoxButton::SetContentsAll Находит кнопку правки с указанным идентификатором команды и задает текст в элементе управления правки этой кнопки.
CMFCToolBarEditBoxButton::SetContextMenuID Указывает идентификатор ресурса контекстного меню, связанного с кнопкой.
CMFCToolBarEditBoxButton::SetFlatMode Указывает внешний вид неструктурированных кнопок поля редактирования в приложении.
CMFCToolBarEditBoxButton::CMFCToolBarEditBoxButton::SetStyle Задает стиль кнопки. (Переопределения CMFCToolBarButton::SetStyle.)

Замечания

Чтобы добавить кнопку "Поле редактирования" на панель инструментов, выполните следующие действия.

  1. Зарезервировать фиктивный идентификатор ресурса для кнопки в родительском ресурсе панели инструментов.

  2. CMFCToolBarEditBoxButton Создание объекта.

  3. В обработчике сообщений, обрабатывающего сообщение AFX_WM_RESETTOOLBAR, замените фиктивную кнопку новой кнопкой со списком с помощью CMFCToolBar::ReplaceButton.

Дополнительные сведения см. в пошаговом руководстве. Размещение элементов управления на панелях инструментов.

Пример

В приведенном ниже примере демонстрируется использование различных методов класса CMFCToolBarEditBoxButton . В примере показано, как указать, что пользователь может растянуть кнопку во время настройки, указать, что граница кнопки отображается, когда пользователь нажимает кнопку, задает текст в элементе управления "Текстовое поле", указывает внешний вид кнопок поля редактирования в приложении и задает стиль элемента управления редактирования панели инструментов.

CMFCToolBarEditBoxButton *boxButton = new CMFCToolBarEditBoxButton();
boxButton->CanBeStretched();
boxButton->HaveHotBorder();
boxButton->SetContents(_T("edit box button"));
boxButton->SetFlatMode(true);
boxButton->SetStyle(TBBS_PRESSED);

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

CObject

CMFCToolBarButton

CMFCToolBarEditBoxButton

Требования

Заголовок: afxtoolbareditboxbutton.h

CMFCToolBarEditBoxButton::CanBeStretched

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

virtual BOOL CanBeStretched() const;

Возвращаемое значение

Этот метод возвращает ЗНАЧЕНИЕ TRUE.

Замечания

По умолчанию платформа не позволяет пользователю растянуть кнопку панели инструментов во время настройки. Этот метод расширяет реализацию базового класса ( CMFCToolBarButton::CanBeStretched), позволяя пользователю растянуть кнопку панели инструментов поля редактирования во время настройки.

CMFCToolBarEditBoxButton::CMFCToolBarEditBoxButton

Создает объект CMFCToolBarEditBoxButton.

CMFCToolBarEditBoxButton(
    UINT uiID,
    int iImage,
    DWORD dwStyle=ES_AUTOHSCROLL,
    int iWidth=0);

Параметры

uiID
[in] Указывает идентификатор элемента управления.

iImage
[in] Задает отсчитываемый от нуля индекс изображения панели инструментов. Изображение находится в объекте класса CMFCToolBarImages, который поддерживает класс CMFCToolBar.

dwStyle
[in] Задает стиль элемента управления правки.

iWidth
[in] Задает ширину в пикселях элемента управления редактирования.

Замечания

Конструктор по умолчанию задает стиль элемента управления правки следующим сочетанием:

WS_CHILD | WS_VISIBLE | ES_AUTOHSCROLL

Ширина элемента управления по умолчанию составляет 150 пикселей.

CMFCToolBarEditBoxButton::CopyFrom

Копирует свойства другой кнопки панели инструментов на текущую кнопку.

virtual void CopyFrom(const CMFCToolBarButton& src);

Параметры

src
[in] Ссылка на исходную кнопку, из которой следует скопировать.

Замечания

Вызовите этот метод, чтобы скопировать другую кнопку панели инструментов на эту кнопку панели инструментов. src должен иметь тип CMFCToolBarEditBoxButton.

CMFCToolBarEditBoxButton::CreateEdit

Создает элемент управления редактирования в кнопке.

virtual CEdit* CreateEdit(
    CWnd* pWndParent,
    const CRect& rect);

Параметры

pWndParent
[in] Указывает родительское окно элемента управления редактирования. Он не должен иметь значение NULL.

rect
[in] Указывает размер и позицию элемента управления редактирования.

Возвращаемое значение

Указатель на только что созданный элемент управления редактирования; значение NULL, если создание и вложение элемента управления завершаются ошибкой.

Замечания

Вы создаете CMFCToolBarEditBoxButton объект на двух шагах. Сначала вызовите конструктор, а затем вызов CreateEdit, который создает элемент управления редактирования Windows и присоединяет его к объекту CMFCToolBarEditBoxButton .

CMFCToolBarEditBoxButton::GetByCmd

Извлекает первый CMFCToolBarEditBoxButton объект в приложении с указанным идентификатором команды.

static CMFCToolBarEditBoxButton* __stdcall GetByCmd(UINT uiCmd);

Параметры

uiCmd
[in] Идентификатор команды для получения кнопки.

Возвращаемое значение

Первый CMFCToolBarEditBoxButton объект в приложении с указанным идентификатором команды или NULL, если такой объект отсутствует.

Замечания

Этот общий метод служебной программы используется такими методами, как CMFCToolBarEditBoxButton::SetContentsAll и CMFCToolBarEditBoxButton::GetContentsAll , чтобы задать или получить текст первого элемента управления панели инструментов редактирования с указанным идентификатором команды.

CMFCToolBarEditBoxButton::GetContentsAll

Извлекает текст первого элемента управления панели инструментов поля редактирования с указанным идентификатором команды.

static CString __stdcall GetContentsAll(UINT uiCmd);

Параметры

uiCmd
[in] Идентификатор команды кнопки, из которой требуется получить содержимое.

Возвращаемое значение

Объект CString , содержащий текст первого элемента управления панели инструментов редактирования с указанным идентификатором команды.

Замечания

Этот метод возвращает пустую строку, если у объектов нет CMFCToolBarEditBoxButton указанного идентификатора команды.

CMFCToolBarEditBoxButton::GetContextMenuID

Извлекает идентификатор ресурса контекстного меню, связанного с кнопкой.

UINT GetContextMenuID();

Возвращаемое значение

Идентификатор ресурса контекстного меню, связанного с кнопкой или 0, если кнопка не имеет связанного контекстного меню.

Замечания

Платформа использует идентификатор ресурса для создания контекстного меню при щелчке правой кнопкой мыши пользователя.

CMFCToolBarEditBoxButton::GetEditBorder

Извлекает ограничивающий прямоугольник элемента редактирования кнопки "Изменить".

virtual void GetEditBorder(CRect& rectBorder);

Параметры

rectBorder
[out] Ссылка на CRect объект, получающий ограничивающий прямоугольник.

Замечания

Этот метод извлекает ограничивающий прямоугольник элемента управления редактирования в координатах клиента. Он расширяет размер прямоугольника в каждом направлении на один пиксель.

Метод CMFCVisualManager::OnDrawEditBorder вызывает этот метод при рисовании границы вокруг CMFCToolBarEditBoxButton объекта.

CMFCToolBarEditBoxButton::GetEditBox

Возвращает указатель на элемент управления класса CEdit, внедренный в кнопку.

CEdit* GetEditBox() const;

Возвращаемое значение

Указатель на элемент управления класса CEdit, который содержит кнопка. Значение NULL, если элемент CEdit управления еще не создан.

Замечания

Вы создаете CEdit элемент управления путем вызова CMFCToolBarEditBoxButton::CreateEdit.

CMFCToolBarEditBoxButton::GetHwnd

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

virtual HWND GetHwnd();

Возвращаемое значение

Дескриптор окна, связанный с кнопкой.

Замечания

Этот метод переопределяет метод CMFCToolBarButton::GetHwnd , возвращая дескриптор окна части элемента управления редактирования кнопки "Изменить".

CMFCToolBarEditBoxButton::GetInvalidateRect

Извлекает область клиентской области кнопки, которую необходимо перезапустить.

virtual const CRect GetInvalidateRect() const;

Возвращаемое значение

CRect Объект, указывающий регион, который необходимо перезапустить.

Замечания

Этот метод расширяет реализацию базового класса CMFCToolBarButton ::GetInvalidateRect, включая область текстовой метки.

CMFCToolBarEditBoxButton::HaveHotBorder

Определяет, отображается ли граница кнопки при нажатии кнопки.

virtual BOOL HaveHotBorder() const;

Возвращаемое значение

Ненулевое значение, если кнопка отображает ее границу при выборе; в противном случае — 0.

Замечания

Этот метод расширяет реализацию базового класса CMFCToolBarButton::HaveHotBorder, возвращая ненулевое значение, если элемент управления виден.

CMFCToolBarEditBoxButton::IsFlatMode

Определяет, имеют ли кнопки поля редактирования неструктурированный стиль.

static BOOL __stdcall IsFlatMode();

Возвращаемое значение

Ненулевое значение, если кнопки имеют неструктурированный стиль; в противном случае — значение 0.

Замечания

По умолчанию кнопки редактирования имеют неструктурированный стиль. Используйте метод CMFCToolBarEditBoxButton::SetFlatMode, чтобы изменить внешний вид стиля для приложения.

CMFCToolBarEditBoxButton::NotifyCommand

Указывает, обрабатывает ли кнопка сообщение WM_COMMAND .

virtual BOOL NotifyCommand(int iNotifyCode);

Параметры

iNotifyCode
[in] Сообщение уведомления, связанное с командой.

Возвращаемое значение

ЗНАЧЕНИЕ TRUE, если кнопка обрабатывает сообщение WM_COMMAND или FALSE, чтобы указать, что сообщение должно обрабатываться родительской панелью инструментов.

Замечания

Платформа вызывает этот метод, когда речь идет о отправке сообщения WM_COMMAND в родительское окно.

Этот метод расширяет реализацию базового класса ( CMFCToolBarButton::NotifyCommand), обрабатывая уведомление EN_UPDATE . Для каждого поля редактирования с тем же идентификатором команды, что и этот объект, он задает его текстовую метку в текстовой метки этого объекта.

CMFCToolBarEditBoxButton::OnAddToCustomizePage

Вызывается платформой при добавлении кнопки в диалоговое окно "Настройка ".

virtual void OnAddToCustomizePage();

Замечания

Этот метод расширяет реализацию базового класса ( CMFCToolBarButton::OnAddToCustomizePage), копируя свойства из элемента управления "Поле редактирования" на любой панели инструментов с тем же идентификатором команды, что и этот объект. Этот метод ничего не делает, если панель инструментов не имеет элемента управления "Поле редактирования", который имеет тот же идентификатор команды, что и этот объект.

Дополнительные сведения о диалоговом окне "Настройка" см. в классе CMFCToolBarsCustomizeDialog.

CMFCToolBarEditBoxButton::OnChangeParentWnd

Вызывается платформой при вставке кнопки в новую панель инструментов.

virtual void OnChangeParentWnd(CWnd* pWndParent);

Параметры

pWndParent
[in] Указатель на новое родительское окно.

Замечания

Этот метод переопределяет реализацию базового класса ( CMFCToolBarButton::OnChangeParentWnd), воссоздав внутренний CEdit объект.

CMFCToolBarEditBoxButton::OnClick

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

virtual BOOL OnClick(
    CWnd* pWnd,
    BOOL bDelay = TRUE);

Параметры

pWnd
[in] Неиспользованный.

bDelay
[in] Неиспользованный.

Возвращаемое значение

Ненулевое значение, если кнопка обрабатывает сообщение нажатия; в противном случае — 0.

Замечания

Этот метод переопределяет реализацию базового класса ( CMFCToolBarButton::OnClick), возвращая ненулевое значение, если внутренний CEdit объект виден.

CMFCToolBarEditBoxButton::OnCtlColor

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

virtual HBRUSH OnCtlColor(
    CDC* pDC,
    UINT nCtlColor);

Параметры

pDC
[in] Контекст устройства, отображающий кнопку.

nCtlColor
[in] Неиспользованный.

Возвращаемое значение

Дескриптор глобального окна.

Замечания

Этот метод переопределяет реализацию базового класса ( CMFCToolBarButton::OnCtlColor), задав цвета текста и фона предоставленного контекста устройства глобальными цветами текста и фона соответственно.

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

CMFCToolBarEditBoxButton::OnGlobalFontsChanged

Вызывается платформой при изменении глобального шрифта.

virtual void OnGlobalFontsChanged();

Замечания

Этот метод расширяет реализацию базового класса ( CMFCToolBarButton::OnGlobalFontsChanged), изменив шрифт элемента управления на глобальный шрифт.

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

CMFCToolBarEditBoxButton::OnMove

Вызывается платформой при перемещении родительской панели инструментов.

virtual void OnMove();

Замечания

Этот метод переопределяет реализацию класса по умолчанию ( CMFCToolBarButton::OnMove), обновив положение внутреннего CEdit объекта

CMFCToolBarEditBoxButton::OnShow

Вызывается платформой, когда кнопка становится видимой или невидимой.

virtual void OnShow(BOOL bShow);

Параметры

bShow
[in] Указывает, отображается ли кнопка. Если этот параметр имеет значение TRUE, кнопка отображается. В противном случае кнопка не отображается.

Замечания

Этот метод расширяет реализацию базового класса (CMFCToolBarButton::OnShow), отображая кнопку, если bShow имеет значение TRUE. В противном случае этот метод скрывает кнопку.

CMFCToolBarEditBoxButton::OnSize

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

virtual void OnSize(int iSize);

Параметры

iSize
[in] Новая ширина кнопки в пикселях.

Замечания

Этот метод переопределяет реализацию класса по умолчанию CMFCToolBarButton ::OnSize путем обновления размера и положения внутреннего CEdit объекта.

CMFCToolBarEditBoxButton::OnUpdateToolTip

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

virtual BOOL OnUpdateToolTip(
    CWnd* pWndParent,
    int iButtonIndex,
    CToolTipCtrl& wndToolTip,
    CString& str);

Параметры

pWndParent
[in] Неиспользованный.

iButtonIndex
[in] Неиспользованный.

wndToolTip
[in] Элемент управления, отображающий текст подсказки.

str
[out] Объект CString , получающий обновленный текст подсказки.

Возвращаемое значение

Ненулевое значение, если метод обновляет текст подсказки; в противном случае — 0.

Замечания

Этот метод расширяет реализацию базового класса ( CMFCToolBarButton::OnUpdateToolTip), отображая текст подсказки, связанный с частью редактирования кнопки. Если внутренний CEdit объект имеет значение NULL или дескриптор CEdit окна объекта не определяет существующее окно, этот метод ничего не делает и возвращает значение FALSE.

CMFCToolBarEditBoxButton::SetContents

Задает текст в элементе управления "Текстовое поле".

virtual void SetContents(const CString& sContents);

Параметры

sContents
[in] Задает новый текст, который нужно задать.

CMFCToolBarEditBoxButton::SetContentsAll

Находит объект CMFCToolBarEditBoxButton с указанным идентификатором команды и задает указанный текст в текстовом поле.

static BOOL SetContentsAll(
    UINT uiCmd,
    const CString& strContents);

Параметры

uiCmd
[in] Указывает идентификатор команды элемента управления, для которого будет изменен текст.

strContents
[in] Задает новый текст, который нужно задать.

Возвращаемое значение

Ненулевое значение, если текст был задан; Значение 0, если CMFCToolBarEditBoxButton элемент управления с указанным идентификатором команды не существует.

CMFCToolBarEditBoxButton::SetContextMenuID

Указывает идентификатор ресурса контекстного меню, связанного с кнопкой.

void SetContextMenuID(UINT uiResID);

Параметры

uiCmd
[in] Идентификатор ресурса контекстного меню.

Замечания

Платформа использует идентификатор ресурса для создания контекстного меню, когда пользователь щелкает правой кнопкой мыши панель инструментов.

CMFCToolBarEditBoxButton::SetFlatMode

Указывает внешний вид неструктурированных кнопок поля редактирования в приложении.

static void __stdcall SetFlatMode(BOOL bFlat = TRUE);

Параметры

bFlat
[in] Неструктурированный стиль кнопок поля редактирования. Если этот параметр имеет значение TRUE, внешний вид неструктурированного стиля включен; в противном случае внешний вид неструктурированного стиля отключен.

Замечания

По умолчанию для кнопок поля редактирования используется неструктурированный стиль. Используйте метод CMFCToolBarEditBoxButton::IsFlatMode, чтобы получить внешний вид плоского стиля для приложения.

CMFCToolBarEditBoxButton::SetStyle

Задает стиль элемента управления "Поле редактирования панели инструментов".

virtual void SetStyle(UINT nStyle);

Параметры

nStyle
[in] Новый стиль для задания.

Замечания

Этот метод задает cmFCToolBarButton::m_nStyle значение nStyle It также отключает текстовое поле, если приложение находится в режиме настройки, и включает его, если приложение не находится в режиме настройки (см. раздел CMFCToolBar::SetCustomizeMode и CMFCToolBar::IsCustomizeMode). Список допустимых флагов стилей см. в разделе "Стили элементов управления ToolBar".

См. также

Диаграмма иерархии
Классы
Класс CMFCToolBarButton
Класс CEdit
CMFCToolBar::ReplaceButton
Пошаговое руководство. Размещение элементов управления на панели инструментов