Элементы управления ActiveX в MFC. Добавление стандартных свойств
Стандартные свойства отличаются от пользовательских свойств, так как они уже реализуемые классом COleControl. COleControl содержит предварительно определенные функций-членов, которые поддерживают общие свойства для элемента управления. Некоторые общие свойства включают заголовок элемента управления и переднего плана и цвета фона. Сведения о других стандартных свойствах см. в подразделе Стандартные свойства, поддерживаемые мастера добавления свойства. далее в данном разделе. Записи схемы подготовки к сообщению для стандартных свойств всегда указывается буква DISP_STOCKPROP.
В этой статье описывается, как добавить стандартное свойство (в данном случае заголовок) к элементу управления ActiveX с помощью мастера добавления свойства и объясняет полученную изменения кода. Ниже приведен список разделов.
С помощью мастера добавления свойства для добавления стандартное свойство
Добавьте мастера изменения свойства для стандартных свойств
Стандартные свойства, поддерживаемые мастера добавления свойства.
Стандартные свойства и уведомления
Свойства цвета
Примечание
Пользовательские элементы управления Visual Basic обычно имеют свойства, например сверху, левая, ширина, высота, тег, имя TabIndex, табуляции и родительский элемент.Контейнеры элементов управления ActiveX, отвечающие за реализацию этих свойств элемента управления и поэтому элементы управления ActiveX не должны поддерживать эти свойства.
С помощью мастера добавления свойства для добавления стандартное свойство
Добавление стандартных свойств требует меньше кода добавление пользовательских свойств, поскольку поддержка свойства обрабатывается автоматически COleControl. В следующей процедуре показано добавление свойства заголовка биржевой к структуре элемента управления ActiveX и может также использоваться для добавления других стандартных свойств. Замените выбранное имя стандартного свойства для заголовка.
Добавление свойства заголовка хранения с помощью мастера добавления свойства.
Загрузите проект элемента управления.
В представлении классов разверните узел библиотеки элемента управления.
Щелкните правой кнопкой мыши узел интерфейса для элемента управления (второго узла узла библиотеки), чтобы открыть контекстное меню.
В контекстном меню щелкните Добавить, а затем щелкните Добавить свойство.
Это окно Мастер добавления свойства.
В поле Имя свойства, нажмите Заголовок.
Нажмите кнопку Готово.
Добавьте мастера изменения свойства для стандартных свойств
Поскольку COleControl поддерживает стандартные свойства, мастера добавления свойства не изменяет объявление класса в любом случае; добавляет свойство в схеме подготовки к сообщению. Мастера добавления свойства добавляет в следующей линия со схемой подготовки к отправке элемента управления, который находится в файле реализации (CPP).
DISP_STOCKPROP_CAPTION()
В следующей линия добавляется к файлу описания интерфейса элемента управления (.IDL).
[id(DISPID_CAPTION), helpstring("property Caption")] BSTR Caption;
Эта линия присвоить свойству заголовка идентификатор. Обратите внимание, что свойство элемента, запрос разрешения из базы данных перед изменением значения.
Это делает доступными пользователям свойство заголовка элемента управления. Для использования стандартного значение свойства, обращается к переменной-члену или функции-члена базового класса COleControl. Дополнительные сведения об этих переменных-членах и функциях см. в разделе, стандартные свойства, поддерживаемые мастера добавления свойства.
Стандартные свойства, поддерживаемые мастера добавления свойства.
Класс COleControl предоставляет 9 стандартных свойств. Можно добавлять свойства необходимо с помощью мастера добавления свойства.
Свойство |
Запись схемы подготовки к отправке |
Как извлечь значение |
---|---|---|
Внешний вид |
DISP_STOCKPROP_APPEARANCE () |
Доступное значение как m_sAppearance. |
BackColor |
DISP_STOCKPROP_BACKCOLOR () |
Доступное значение путем вызова GetBackColor. |
BorderStyle |
DISP_STOCKPROP_BORDERSTYLE () |
Доступное значение как m_sBorderStyle. |
Caption |
DISP_STOCKPROP_CAPTION () |
Доступное значение путем вызова InternalGetText. |
Enabled |
DISP_STOCKPROP_ENABLED () |
Доступное значение как m_bEnabled. |
Шрифт |
DISP_STOCKPROP_FONT () |
См. статью Элементы управления ActiveX MFC. Использование шрифтов для потребления. |
ForeColor |
DISP_STOCKPROP_FORECOLOR () |
Доступное значение путем вызова GetForeColor. |
hWnd |
DISP_STOCKPROP_HWND () |
Значение, доступным в качестве m_hWnd. |
Текст |
DISP_STOCKPROP_TEXT () |
Доступное значение путем вызова InternalGetText. Это свойство совпадает с Заголовок, за исключением имени свойства. |
ReadyState |
DISP_STOCKPROP_READYSTATE() |
Значение, доступным в качестве m_lReadyState или GetReadyState |
Стандартные свойства и уведомления
Наиболее стандартные свойства имеют функции уведомления, можно переопределить. Например, если свойство BackColor изменяется, функция OnBackColorChanged (функции-члена класса элемента управления) вызывается. Реализация по умолчанию (в COleControl) вызывает InvalidateControl. Переопределите этой функции, необходимо выполнить дополнительные действия в ответ на эту ситуацию.
Свойства цвета
Можно использовать биржевая ForeColor и свойства BackColor, или собственные свойства дополнительный цвета, рисования элемента управления. Для использования свойства цвета вызовите функцию-член COleControl::TranslateColor. Параметры этой функции значение свойства цвета и необязательного дескриптора палитры. Возвращаемое значение COLORREF, которое можно передать функции GDI, например SetTextColor и CreateSolidBrush.
Значения цвета для хранения ForeColor и свойств BackColor доступ осуществляется путем вызова или GetForeColor или функция GetBackColor соответственно.
В следующем примере демонстрируется использование 2 эти свойства цвета рисования элемента управления. Он инициализирует временная переменная COLORREF и объект CBrush с вызовами TranslateColor: одно с помощью свойства ForeColor и другое с помощью свойства BackColor. Временный объект CBrush затем используется для закрашивания прямоугольника элемента управления и цвет текста задается с помощью свойства ForeColor.
CBrush bkBrush(TranslateColor(GetBackColor()));
COLORREF clrFore = TranslateColor(GetForeColor());
pdc->FillRect(rcBounds, &bkBrush);
pdc->SetTextColor(clrFore);
pdc->DrawText(InternalGetText(), -1, rcBounds, DT_SINGLELINE | DT_CENTER | DT_VCENTER);
См. также
Ссылки
Основные понятия
Элементы управления ActiveX MFC