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


Класс COleControl

Мощный базовый класс для разработки элементов управления OLE.

Синтаксис

class COleControl : public CWnd

Участники

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

Имя Описание
COleControl::COleControl Создает объект COleControl.

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

Имя Описание
COleControl::AmbientAppearance Извлекает текущий внешний вид элемента управления.
COleControl::AmbientBackColor Возвращает значение свойства ambient BackColor.
COleControl::AmbientDisplayName Возвращает имя элемента управления, указанного контейнером.
COleControl::AmbientFont Возвращает значение свойства внешнего шрифта.
COleControl::AmbientForeColor Возвращает значение свойства ambient ForeColor.
COleControl::AmbientLocaleID Возвращает идентификатор языкового стандарта контейнера.
COleControl::AmbientScaleUnits Возвращает тип единиц, используемых контейнером.
COleControl::AmbientShowGrabHandles Определяет, должны ли отображаться дескрипторы захвата.
COleControl::AmbientShowHatching Определяет, следует ли отображать штриховку.
COleControl::AmbientTextAlign Возвращает тип выравнивания текста, указанного контейнером.
COleControl::AmbientUIDead Определяет, должен ли элемент управления реагировать на действия пользовательского интерфейса.
COleControl::AmbientUserMode Определяет режим контейнера.
COleControl::BoundPropertyChanged Уведомляет контейнер об изменении связанного свойства.
COleControl::BoundPropertyRequestEdit Запрашивает разрешение на изменение значения свойства.
COleControl::ClientToParent Преобразует точку относительно источника элемента управления в точку относительно источника контейнера.
COleControl::ClipCaretRect Корректирует прямоугольник в виде курсора, если он перекрывается элементом управления.
COleControl::ControlInfoChanged Вызовите эту функцию после изменения набора mnemonics, обрабатываемого элементом управления.
COleControl::DisplayError Отображает события ошибки акций пользователю элемента управления.
COleControl::DoClick Реализация метода акций DoClick .
COleControl::DoPropExchange Сериализует свойства COleControl объекта.
COleControl::DoSuperclassPaint Перерисовывает элемент управления OLE, который был подклассирован из элемента управления Windows.
COleControl::EnableSimpleFrame Включает простую поддержку кадров для элемента управления.
COleControl::ExchangeExtent Сериализует ширину и высоту элемента управления.
COleControl::ExchangeStockProps Сериализует свойства запасов элемента управления.
COleControl::ExchangeVersion Сериализует номер версии элемента управления.
COleControl::FireClick Загоревает акции Click .
COleControl::FireDblClick Загоревает акции DblClick .
COleControl::FireError Загоревает акции Error .
COleControl::FireEvent Запускает настраиваемое событие.
COleControl::FireKeyDown Загоревает акции KeyDown .
COleControl::FireKeyPress Загоревает акции KeyPress .
COleControl::FireKeyUp Загоревает акции KeyUp .
COleControl::FireMouseDown Загоревает акции MouseDown .
COleControl::FireMouseMove Загоревает акции MouseMove .
COleControl::FireMouseUp Загоревает акции MouseUp .
COleControl::FireReadyStateChange Вызывает событие при изменении состояния готовности элемента управления.
COleControl::GetActivationPolicy Изменяет поведение активации по умолчанию элемента управления, поддерживающего IPointerInactive интерфейс.
COleControl::GetAmbientProperty Возвращает значение указанного свойства окружения.
COleControl::GetAppearance Возвращает значение свойства "Внешний вид".
COleControl::GetBackColor Возвращает значение свойства BackColor.
COleControl::GetBorderStyle Возвращает значение свойства BorderStyle.
COleControl::GetCapture Определяет, имеет ли объект управления без окна активированный элемент управления запись мыши.
COleControl::GetClassID Извлекает идентификатор класса OLE элемента управления.
COleControl::GetClientOffset Извлекает разницу между левым верхним углом прямоугольной области элемента управления и верхним левым углом клиентской области.
COleControl::GetClientRect Извлекает размер клиентской области элемента управления.
COleControl::GetClientSite Запрашивает объект для указателя на текущий клиентский сайт в контейнере.
COleControl::GetControlFlags Извлекает параметры флага элемента управления.
COleControl::GetControlSize Возвращает положение и размер элемента управления OLE.
COleControl::GetDC Предоставляет средства для получения контекста устройства из контейнера без окон.
COleControl::GetEnabled Возвращает значение свойства Включено акций.
COleControl::GetExtendedControl Извлекает указатель на расширенный объект управления, принадлежащий контейнеру.
COleControl::GetFocus Определяет, имеет ли элемент управления фокус.
COleControl::GetFont Возвращает значение свойства шрифта акций.
COleControl::GetFontTextMetrics Возвращает метрики CFontHolder объекта.
COleControl::GetForeColor Возвращает значение свойства ForeColor.
COleControl::GetHwnd Возвращает значение свойства hWnd акций.
COleControl::GetMessageString Предоставляет текст строки состояния для элемента меню.
COleControl::GetNotSupported Запрещает доступ к значению свойства элемента управления пользователем.
COleControl::GetReadyState Возвращает состояние готовности элемента управления.
COleControl::GetRectInContainer Возвращает прямоугольник элемента управления относительно контейнера.
COleControl::GetStockTextMetrics Возвращает метрики свойства Шрифта акций.
COleControl::GetText Возвращает значение свойства "Текст" или "Подпись".
COleControl::GetWindowlessDropTarget Переопределите, чтобы разрешить элементу управления без окна быть целью операций перетаскивания и перетаскивания.
COleControl::InitializeIIDs Сообщает базовый класс iiD, который будет использоваться элементом управления.
COleControl::InternalGetFont CFontHolder Возвращает объект для свойства Шрифта акций.
COleControl::InternalGetText Извлекает свойство заголовка акций или Text.
COleControl::InternalSetReadyState Задает состояние готовности элемента управления и запускает событие готовности к изменению состояния.
COleControl::InvalidateControl Отменяет область отображаемого элемента управления, что приводит к повторному выводу.
COleControl::InvalidateRgn Отменяет клиентскую область окна контейнера в заданном регионе. Можно использовать для перерисовки элементов управления без окон в регионе.
COleControl::IsConvertingVBX Разрешает специализированную загрузку элемента управления OLE.
COleControl::IsModified Определяет, изменилось ли состояние элемента управления.
COleControl::IsOptimizedDraw Указывает, поддерживает ли контейнер оптимизированное рисование для текущей операции рисования.
COleControl::IsSubclassedControl Вызывается для определения подклассов элемента управления Windows.
COleControl::Load Сбрасывает все предыдущие асинхронные данные и инициирует новую нагрузку асинхронного свойства элемента управления.
COleControl::LockInPlaceActive Определяет, можно ли отключить элемент управления контейнером.
COleControl::OnAmbientPropertyChange Вызывается при изменении внешнего свойства.
COleControl::OnAppearanceChanged Вызывается при изменении свойства внешнего вида акций.
COleControl::OnBackColorChanged Вызывается при изменении свойства BackColor акций.
COleControl::OnBorderStyleChanged Вызывается при изменении свойства BorderStyle.
COleControl::OnClick Вызывается для запуска события click акций.
COleControl::OnClose Уведомляет элемент управления, IOleControl::Close который был вызван.
COleControl::OnDoVerb Вызывается после выполнения команды элемента управления.
COleControl::OnDraw Вызывается, когда элемент управления запрашивается для перерисовки самого элемента управления.
COleControl::OnDrawMetafile Вызывается контейнером, когда элемент управления запрашивается для перераскрытия себя с помощью контекста устройства метафайла.
COleControl::OnEdit Вызывается контейнером для активации элемента управления OLE в пользовательском интерфейсе.
COleControl::OnEnabledChanged Вызывается при изменении свойства включено.
COleControl::OnEnumVerbs Вызывается контейнером для перечисления команд элемента управления.
COleControl::OnEventAdvise Вызывается, когда обработчики событий подключены или отключены от элемента управления.
COleControl::OnFontChanged Вызывается при изменении свойства шрифта акций.
COleControl::OnForeColorChanged Вызывается при изменении свойства ForeColor.
COleControl::OnFreezeEvents Вызывается при заморожении или отмене событий элемента управления.
COleControl::OnGetColorSet Уведомляет элемент управления, IOleObject::GetColorSet который был вызван.
COleControl::OnGetControlInfo Предоставляет mnemonic information to the container.
COleControl::OnGetDisplayString Вызывается для получения строки для представления значения свойства.
COleControl::OnGetInPlaceMenu Запрашивает дескриптор меню элемента управления, которое будет объединено с меню контейнера.
COleControl::OnGetNaturalExtent Переопределите, чтобы получить размер отображения элемента управления, ближайший к предлагаемому размеру и экс режим палатки.
COleControl::OnGetPredefinedStrings Возвращает строки, представляющие возможные значения для свойства.
COleControl::OnGetPredefinedValue Возвращает значение, соответствующее предопределенной строке.
COleControl::OnGetViewExtent Переопределите, чтобы получить размер областей отображения элемента управления (можно использовать для включения двухпроходного рисования).
COleControl::OnGetViewRect Переопределите, чтобы преобразовать размер элемента управления в прямоугольник, начиная с определенной позиции.
COleControl::OnGetViewStatus Переопределите, чтобы получить состояние представления элемента управления.
COleControl::OnHideToolBars Вызывается контейнером при деактивации пользовательского интерфейса элемента управления.
COleControl::OnInactiveMouseMove Переопределите контейнер для неактивного элемента управления в диспетчере указателя мыши WM_MOUSEMOVE сообщения в элемент управления.
COleControl::OnInactiveSetCursor Переопределите контейнер для неактивного элемента управления в диспетчере указателя мыши WM_SETCURSOR сообщения в элемент управления.
COleControl::OnKeyDownEvent Вызывается после того, как событие KeyDown было запущено.
COleControl::OnKeyPressEvent Вызывается после того, как событие KeyPress было запущено.
COleControl::OnKeyUpEvent Вызывается после того, как событие keyUp акций было запущено.
COleControl::OnMapPropertyToPage Указывает, какая страница свойств используется для редактирования свойства.
COleControl::OnMnemonic Вызывается при нажатии mnemonic ключа элемента управления.
COleControl::OnProperties Вызывается при вызове команды Properties элемента управления.
COleControl::OnQueryHitPoint Переопределяется, чтобы запрашивать, перекрывается ли отображение элемента управления заданной точкой.
COleControl::OnQueryHitRect Переопределите, чтобы запросить, перекрывает ли экран элемента управления любую точку в заданном прямоугольнике.
COleControl::OnRenderData Вызывается платформой для получения данных в указанном формате.
COleControl::OnRenderFileData Вызывается платформой для получения данных из файла в указанном формате.
COleControl::OnRenderGlobalData Вызывается платформой для получения данных из глобальной памяти в указанном формате.
COleControl::OnResetState Сбрасывает свойства элемента управления в значения по умолчанию.
COleControl::OnSetClientSite Уведомляет элемент управления, IOleControl::SetClientSite который был вызван.
COleControl::OnSetData Заменяет данные элемента управления другим значением.
COleControl::OnSetExtent Вызывается после изменения степени элемента управления.
COleControl::OnSetObjectRects Вызывается после изменения измерений элемента управления.
COleControl::OnShowToolBars Вызывается при активации пользовательского интерфейса элемента управления.
COleControl::OnTextChanged Вызывается при изменении свойства text или caption.
COleControl::OnWindowlessMessage Обрабатывает сообщения окна (кроме сообщений мыши и клавиатуры) для элементов управления без окон.
COleControl::ParentToClient Преобразует точку относительно источника контейнера в точку относительно источника элемента управления.
COleControl::PostModalDialog Уведомляет контейнер о закрытии модального диалогового окна.
COleControl::PreModalDialog Уведомляет контейнер о том, что модальное диалоговое окно будет отображаться.
COleControl::RecreateControlWindow Уничтожает и повторно создает окно элемента управления.
COleControl::Refresh Принудительно перенапрягает внешний вид элемента управления.
COleControl::ReleaseCapture Освобождает запись мыши.
COleControl::ReleaseDC Освобождает контекст устройства отображения контейнера без оконного элемента управления.
COleControl::ReparentControlWindow Сбрасывает родительский элемент окна управления.
COleControl::ResetStockProps Инициализирует COleControl свойства акций в значения по умолчанию.
COleControl::ResetVersion Инициализирует номер версии в заданное значение.
COleControl::ScrollWindow Позволяет элементу управления без окна прокручивать область в активном изображении на экране.
COleControl::SelectFontObject Выбирает настраиваемое свойство Font в контексте устройства.
COleControl::SelectStockFont Выбирает свойство шрифта акций в контексте устройства.
COleControl::SerializeExtent Сериализует или инициализирует отображаемое пространство для элемента управления.
COleControl::SerializeStockProps Сериализует или инициализирует COleControl свойства акций.
COleControl::SerializeVersion Сериализует или инициализирует сведения о версии элемента управления.
COleControl::SetAppearance Задает значение свойства "Внешний вид акций".
COleControl::SetBackColor Задает значение свойства BackColor акций.
COleControl::SetBorderStyle Задает значение свойства BorderStyle.
COleControl::SetCapture Приводит к тому, что окно контейнера элемента управления будет иметь запись мыши от имени элемента управления.
COleControl::SetControlSize Задает положение и размер элемента управления OLE.
COleControl::SetEnabled Задает значение свойства Включено акций.
COleControl::SetFocus Приводит к тому, что окно контейнера элемента управления будет обладать фокусом ввода от имени элемента управления.
COleControl::SetFont Задает значение свойства шрифта акций.
COleControl::SetForeColor Задает значение свойства ForeColor.
COleControl::SetInitialSize Задает размер элемента управления OLE при первом отображении в контейнере.
COleControl::SetModifiedFlag Изменяет измененное состояние элемента управления.
COleControl::SetNotPermitted Указывает, что запрос на изменение завершился сбоем.
COleControl::SetNotSupported Запрещает изменение значения свойства элемента управления пользователем.
COleControl::SetRectInContainer Задает прямоугольник элемента управления относительно контейнера.
COleControl::SetText Задает значение свойства text или caption.
COleControl::ThrowError Сигнализирует об ошибке в элементе управления OLE.
COleControl::TransformCoords Преобразует значения координат между контейнером и элементом управления.
COleControl::TranslateColor Преобразует значение OLE_COLOR в значение COLORREF.
COleControl::WillAmbientsBeValidDuringLoad Определяет, будут ли доступны внешние свойства при следующей загрузке элемента управления.
COleControl::WindowProc Предоставляет процедуру Windows для COleControl объекта.

Защищенные методы

Имя Описание
COleControl::DrawContent Вызывается платформой, когда необходимо обновить внешний вид элемента управления.
COleControl::DrawMetafile Вызывается платформой при использовании контекста устройства метафайла.
COleControl::IsInvokeAllowed Включает вызов метода автоматизации.
COleControl::SetInitialDataFormats Вызывается платформой для инициализации списка форматов данных, поддерживаемых элементом управления.

Замечания

Производный от CWndэтого класса наследует все функциональные возможности объекта окна Windows, а также дополнительные функциональные возможности, относящиеся к OLE, такие как запуск событий и возможность поддерживать методы и свойства.

Элементы управления OLE можно вставить в приложения контейнеров OLE и взаимодействовать с контейнером с помощью двусторонней системы запуска событий и предоставления методов и свойств контейнеру. Обратите внимание, что стандартные контейнеры OLE поддерживают только основные функции элемента управления OLE. Они не могут поддерживать расширенные функции элемента управления OLE. Событие запускается, когда события отправляются в контейнер в результате определенных действий, происходящих в элементе управления. В свою очередь, контейнер взаимодействует с элементом управления с помощью предоставленного набора методов и свойств, аналогичных функциям-членам и элементам данных класса C++. Этот подход позволяет разработчику контролировать внешний вид элемента управления и уведомлять контейнер при возникновении определенных действий.

Элементы управления без окон

Элементы управления OLE можно использовать на месте без окна. Элементы управления без окон имеют значительные преимущества:

  • Элементы управления без окон могут быть прозрачными и не прямоугольными

  • Элементы управления без окон сокращают размер экземпляра и время создания объекта

Элементы управления не нуждаются в окне. Службы, предоставляемые окном, можно легко предоставлять через одно общее окно (обычно контейнер) и немного диспетчеризации кода. Наличие окна в основном является ненужным осложнением для объекта.

При использовании активации без окон контейнер (который имеет окно) отвечает за предоставление служб, которые в противном случае были предоставлены собственным окном элемента управления. Например, если элемент управления должен запрашивать фокус клавиатуры, запрашивать запись мыши или получать контекст устройства, эти операции управляются контейнером. COleControl Функции-члены операции без окна вызывают эти операции в контейнере.

Если активация без окон включена, контейнер делегирует входные сообщения в интерфейс элемента управления IOleInPlaceObjectWindowless (расширение IOleInPlaceObject для поддержки без окон). COleControlРеализация этого интерфейса будет отправлять эти сообщения через карту сообщений элемента управления после настройки координат мыши соответствующим образом. Эти сообщения можно обрабатывать, как обычные сообщения окна, добавив соответствующие записи в карту сообщений.

В элементе управления без окон всегда следует использовать COleControl функции-члены вместо соответствующих CWnd функций-членов или связанных функций API Windows.

Объекты управления OLE также могут создавать окно только в том случае, если они становятся активными, но объем работы, необходимой для неактивного перехода, идет вверх, и скорость перехода падает. Существуют случаи, когда это проблема: например, рассмотрим сетку текстовых полей. При курсоре вверх и вниз по столбцу каждый элемент управления должен быть активирован на месте, а затем деактивирован. Скорость неактивного или активного перехода напрямую влияет на скорость прокрутки.

Дополнительные сведения о разработке платформы управления OLE см. в статьях о элементах управления MFC ActiveX и обзоре: создание программы управления ActiveX MFC. Сведения об оптимизации элементов управления OLE, включая элементы управления без окон и без окна, см. в разделе MFC ActiveX Controls: Оптимизация.

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

CObject

CCmdTarget

CWnd

COleControl

Требования

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

COleControl::AmbientBackColor

Возвращает значение свойства ambient BackColor.

OLE_COLOR AmbientBackColor();

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

Текущее значение внешнего свойства BackColor контейнера, если таковое имеется. Если свойство не поддерживается, эта функция возвращает системный цвет фона Windows.

Замечания

Свойство ambient BackColor доступно для всех элементов управления и определяется контейнером. Обратите внимание, что контейнер не требуется для поддержки этого свойства.

COleControl::AmbientDisplayName

Имя контейнера, назначенное элементу управления, можно использовать в сообщениях об ошибках, отображаемых пользователю.

CString AmbientDisplayName();

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

Имя элемента управления OLE. По умолчанию используется строка нулевой длины.

Замечания

Обратите внимание, что контейнер не требуется для поддержки этого свойства.

COleControl::AmbientFont

Возвращает значение свойства внешнего шрифта.

LPFONTDISP AmbientFont();

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

Указатель на внешний интерфейс диспетчера шрифта контейнера. Значение по умолчанию — NULL. Если возврат не равен NULL, вы несете ответственность за освобождение шрифта, вызвав ее функцию члена IUnknown::Release .

Замечания

Свойство внешнего шрифта определяется контейнером и доступно для всех элементов управления. Обратите внимание, что контейнер не требуется для поддержки этого свойства.

COleControl::AmbientForeColor

Возвращает значение свойства ambient ForeColor.

OLE_COLOR AmbientForeColor();

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

Текущее значение внешнего свойства ForeColor контейнера, если таковое имеется. Если эта функция не поддерживается, эта функция возвращает определенный системой цвет текста Windows.

Замечания

Свойство ambient ForeColor доступно для всех элементов управления и определяется контейнером. Обратите внимание, что контейнер не требуется для поддержки этого свойства.

COleControl::AmbientLocaleID

Возвращает идентификатор языкового стандарта контейнера.

LCID AmbientLocaleID();

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

Значение свойства LocaleID контейнера, если таковое имеется. Если это свойство не поддерживается, эта функция возвращает значение 0.

Замечания

Элемент управления может использовать LocaleID для адаптации пользовательского интерфейса для определенных языковых стандартов. Обратите внимание, что контейнер не требуется для поддержки этого свойства.

COleControl::AmbientAppearance

Извлекает текущий параметр внешнего вида для объекта элемента управления.

short AmbientAppearance();

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

Внешний вид элемента управления:

  • 0 Плоский внешний вид

  • 1 трехмерный внешний вид

Замечания

Вызовите эту функцию, чтобы получить текущее значение свойства DISPID_AMBIENT_APPEARANCE для элемента управления.

COleControl::AmbientScaleUnits

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

CString AmbientScaleUnits();

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

Строка, содержащая внешние scaleUnits контейнера. Если это свойство не поддерживается, эта функция возвращает строку нулевой длины.

Замечания

Свойство ScaleUnits контейнера может использоваться для отображения позиций или измерений, помеченных выбранной единицей, например витки или сантиметры. Обратите внимание, что контейнер не требуется для поддержки этого свойства.

COleControl::AmbientShowGrabHandles

Определяет, позволяет ли контейнеру отображать дескриптор захвата для себя при активности.

BOOL AmbientShowGrabHandles();

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

Ненулевое значение, если должны отображаться дескрипторы захвата; в противном случае — 0. Если это свойство не поддерживается, эта функция возвращает ненулевое значение.

Замечания

Обратите внимание, что контейнер не требуется для поддержки этого свойства.

COleControl::AmbientShowHatching

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

BOOL AmbientShowHatching();

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

Ненулевое значение, если выключенный шаблон должен отображаться; в противном случае — 0. Если это свойство не поддерживается, эта функция возвращает ненулевое значение.

Замечания

Обратите внимание, что контейнер не требуется для поддержки этого свойства.

COleControl::AmbientTextAlign

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

short AmbientTextAlign();

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

Состояние внешнего свойства TextAlign контейнера. Если это свойство не поддерживается, эта функция возвращает значение 0.

Ниже приведен список допустимых возвращаемых значений:

Возвращаемое значение Значение
0 Общее выравнивание (числа справа, текст слева).
1 Левое оправдание
2 Центр
3 Правильное оправдание

Замечания

Это свойство доступно для всех внедренных элементов управления и определяется контейнером. Обратите внимание, что контейнер не требуется для поддержки этого свойства.

COleControl::AmbientUIDead

Определяет, хочет ли контейнер реагировать на действия пользовательского интерфейса.

BOOL AmbientUIDead();

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

Ненулевое значение, если элемент управления должен реагировать на действия пользовательского интерфейса; в противном случае — 0. Если это свойство не поддерживается, эта функция возвращает значение 0.

Замечания

Например, контейнер может задать значение TRUE в режиме конструктора.

COleControl::AmbientUserMode

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

BOOL AmbientUserMode();

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

Ненулевое значение, если контейнер находится в пользовательском режиме; в противном случае — 0 (в режиме конструктора). Если это свойство не поддерживается, эта функция возвращает ЗНАЧЕНИЕ TRUE.

Замечания

Например, контейнер может задать значение FALSE в режиме конструктора.

COleControl::BoundPropertyChanged

Сигнализирует о том, что значение привязанного свойства изменилось.

void BoundPropertyChanged(DISPID dispid);

Параметры

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

Замечания

Это должно вызываться каждый раз, когда значение свойства изменяется, даже в тех случаях, когда изменение не было выполнено с помощью метода Set свойства. Помните о привязанных свойствах, сопоставленных с переменными-членами. В любой момент, когда такие переменные-члены изменяются, BoundPropertyChanged необходимо вызывать.

COleControl::BoundPropertyRequestEdit

Запрашивает разрешение от IPropertyNotifySink интерфейса, чтобы изменить значение привязанного свойства, предоставленное элементом управления.

BOOL BoundPropertyRequestEdit(DISPID dispid);

Параметры

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

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

Ненулевое значение, если изменение разрешено; в противном случае — 0. Значение по умолчанию ненулевое.

Замечания

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

COleControl::ClientToParent

Преобразует координаты pPoint в родительские координаты.

virtual void ClientToParent(
    LPCRECT lprcBounds,
    LPPOINT pPoint) const;

Параметры

lprcBounds
Указатель на границы элемента управления OLE в контейнере. Не клиентская область, а область всего элемента управления, включая границы и полосы прокрутки.

pPoint
Указатель на точку клиентской области OLE, преобразованную в координаты родительского (контейнера).

Замечания

В входной точке pPoint относительно источника клиентской области элемента управления OLE (верхний левый угол клиентской области элемента управления). В выходных данных pPoint относительно происхождения родительского элемента (верхний левый угол контейнера).

COleControl::ClipCaretRect

Корректирует прямоугольник заглавного прямоугольника, если он полностью или частично охватывается перекрывающимися непрозрачными объектами.

BOOL ClipCaretRect(LPRECT lpRect);

Параметры

lpRect
При входных данных указатель на структуру RECT , содержащую область параметров, которую необходимо настроить. В выходных данных настраиваемая область вспомогаемых значений или NULL, если прямоугольник прямоугольника полностью охватывается.

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

Имеет ненулевое значение в случае успешного выполнения, иначе — 0.

Замечания

Курсор — это мигающая линия, блок или растровое изображение, которое обычно указывает, где будет вставляться текст или графика.

Без оконный объект не может безопасно отображать курсор, не проверяя, является ли курсор частично или полностью скрытым перекрывающимися объектами. Чтобы сделать это возможным, объект может использовать ClipCaretRect для получения вспоможения (сокращенного), чтобы обеспечить его соответствие в регионе вырезки.

Объекты, создающие курсор, должны отправлять прямоугольник в прямоугольник ClipCaretRect и использовать настроенный прямоугольник для курсора. Если курсор полностью скрыт, этот метод вернет значение FALSE, и в этом случае не следует отображать подсказку.

COleControl::COleControl

Формирует объект COleControl.

COleControl();

Замечания

Обычно эта функция не вызывается напрямую. Вместо этого элемент управления OLE обычно создается фабрикой классов.

COleControl::ControlInfoChanged

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

void ControlInfoChanged();

Замечания

После получения этого уведомления контейнер элемента управления получает новый набор mnemonics, вызывая IOleControl::GetControlInfo. Обратите внимание, что контейнер не требует ответа на это уведомление.

COleControl::DisplayError

Вызывается платформой после обработки события ошибки акции (если обработчик событий не подавлял отображение ошибки).

virtual void DisplayError(
    SCODE scode,
    LPCTSTR lpszDescription,
    LPCTSTR lpszSource,
    LPCTSTR lpszHelpFile,
    UINT nHelpID);

Параметры

scode
Значение кода состояния, которое необходимо сообщить. Полный список возможных кодов см. в статье ActiveX Controls: Advanced Темы.

lpszDescription
Описание сообщаемой ошибки.

lpszSource
Имя модуля, создающего ошибку (как правило, имя модуля управления OLE).

lpszHelpFile
Имя файла справки, содержащего описание ошибки.

nHelpID
Идентификатор контекста справки сообщения об ошибке.

Замечания

Поведение по умолчанию отображает окно сообщения, содержащее описание ошибки, содержащееся в lpszDescription.

Переопределите эту функцию, чтобы настроить отображение ошибок.

COleControl::DoClick

Имитирует действие щелчка мыши на элементе управления.

void DoClick();

Замечания

Будет вызвана переопределиваемая COleControl::OnClick функция-член, и событие click будет запущено, если оно поддерживается элементом управления.

Эта функция поддерживается базовым классом COleControl в качестве метода акций с именем DoClick. Дополнительные сведения см. в статье ActiveX Controls: Методы.

COleControl::DoPropExchange

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

virtual void DoPropExchange(CPropExchange* pPX);

Параметры

PPX
Указатель на объект CPropExchange. Платформа предоставляет этот объект для установления контекста обмена свойствами, включая его направление.

Замечания

Эта функция обычно вызывает семейство функций PX_ для загрузки или хранения определенных пользовательских свойств элемента управления OLE.

Если мастер управления использовался для создания проекта элемента управления OLE, переопределенная версия этой функции сериализует свойства запасов, поддерживаемые COleControl вызовом функции базового класса. COleControl::DoPropExchange При добавлении пользовательских свойств в элемент управления OLE необходимо изменить эту функцию, чтобы сериализовать новые свойства. Дополнительные сведения о сериализации см. в статье "Элементы ActiveX: сериализация".

COleControl::DoSuperclassPaint

Перерисовывает элемент управления OLE, который был подклассирован из элемента управления Windows.

void DoSuperclassPaint(
    CDC* pDC,
    const CRect& rcBounds);

Параметры

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

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

Замечания

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

Дополнительные сведения об этой функции и подклассах элемента управления Windows см. в статье ActiveX Controls: Subclassing a Windows Control.

COleControl::DrawContent

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

void DrawContent(
    CDC* pDC,
    CRect& rc);

Параметры

pDC
Указатель на контекст устройства.

rc
Прямоугольная область для рисования.

Замечания

Эта функция напрямую вызывает переопределиваемую OnDraw функцию.

COleControl::DrawMetafile

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

void DrawMetafile(
    CDC* pDC,
    CRect& rc);

Параметры

pDC
Указатель на контекст устройства метафайла.

rc
Прямоугольная область для рисования.

COleControl::EnableSimpleFrame

Включает простую характеристику кадра для элемента управления OLE.

void EnableSimpleFrame();

Замечания

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

COleControl::ExchangeExtent

Сериализует или инициализирует состояние экстентов элемента управления (его измерения в единицах HIMETRIC).

BOOL ExchangeExtent(CPropExchange* pPX);

Параметры

PPX
Указатель на объект CPropExchange . Платформа предоставляет этот объект для установления контекста обмена свойствами, включая его направление.

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

Ненулевое значение, если функция выполнена успешно; 0 в противном случае.

Замечания

Обычно эта функция вызывается реализацией COleControl::DoPropExchangeпо умолчанию.

COleControl::ExchangeStockProps

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

void ExchangeStockProps(CPropExchange* pPX);

Параметры

PPX
Указатель на объект CPropExchange . Платформа предоставляет этот объект для установления контекста обмена свойствами, включая его направление.

Замечания

Обычно эта функция вызывается реализацией COleControl::DoPropExchangeпо умолчанию.

COleControl::ExchangeVersion

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

BOOL ExchangeVersion(
    CPropExchange* pPX,
    DWORD dwVersionDefault,
    BOOL bConvert = TRUE);

Параметры

PPX
Указатель на объект CPropExchange. Платформа предоставляет этот объект для установления контекста обмена свойствами, включая его направление.

dwVersionDefault
Текущий номер версии элемента управления.

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

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

Ненулевое значение функции выполнено успешно; 0 в противном случае.

Замечания

Как правило, это будет первая функция, вызываемая переопределением COleControl::DoPropExchangeэлемента управления. При загрузке эта функция считывает номер версии постоянных данных и задает атрибут версии объекта CPropExchange соответствующим образом. При сохранении эта функция записывает номер версии постоянных данных.

Дополнительные сведения о сохраняемости и использовании версий см. в статье "Элементы ActiveX: сериализация".

COleControl::FireClick

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

void FireClick();

Замечания

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

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

COleControl::FireDblClick

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

void FireDblClick();

Замечания

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

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

COleControl::FireError

Вызывает событие ошибки акций.

void FireError(
    SCODE scode,
    LPCTSTR lpszDescription,
    UINT nHelpID = 0);

Параметры

scode
Значение кода состояния, которое необходимо сообщить. Полный список возможных кодов см. в статье ActiveX Controls: Advanced Темы.

lpszDescription
Описание сообщаемой ошибки.

nHelpID
Идентификатор справки об ошибке, сообщаемой.

Замечания

Это событие позволяет сигнализировать в соответствующих местах кода, что произошла ошибка в элементе управления. В отличие от других событий акций, таких как Click или MouseMove, ошибка никогда не запускается платформой.

Чтобы сообщить об ошибке, возникающей во время функции получения свойства, функции набора свойств или метода автоматизации, вызовите COleControl::ThrowError.

Реализация события "Ошибка акций" элемента управления OLE использует значение SCODE. Если элемент управления использует это событие и предназначен для использования в Visual Basic 4.0, вы получите ошибки, так как значение SCODE не поддерживается в Visual Basic.

Чтобы устранить эту проблему, вручную измените параметр SCODE в элементе управления. ODL-файл в long. Кроме того, любое пользовательское событие, метод или свойство, использующее параметр SCODE, также вызывает ту же проблему.

COleControl::FireEvent

Запускает определяемое пользователем событие из элемента управления с любым количеством необязательных аргументов.

void AFX_CDECL FireEvent(
    DISPID dispid,
    BYTE* pbParams,
...);

Параметры

dispid
Идентификатор отправки события, который будет запущен.

pbParams
Дескриптор для типов параметров события.

Замечания

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

Аргумент pbParams — это разделенный пробелами список VTS_. Одно или несколько из этих значений, разделенных пробелами (не запятыми), составляют список параметров функции. Возможны следующие значения:

Символ Тип параметра
VTS_COLOR OLE_COLOR
VTS_FONT IFontDisp*
VTS_HANDLE HWND
VTS_PICTURE IPictureDisp*
VTS_OPTEXCLUSIVE OLE_OPTEXCLUSIVE*
VTS_TRISTATE OLE_TRISTATE
VTS_XPOS_HIMETRIC OLE_XPOS_HIMETRIC
VTS_YPOS_HIMETRIC OLE_YPOS_HIMETRIC
VTS_XPOS_PIXELS OLE_XPOS_PIXELS
VTS_YPOS_PIXELS OLE_YPOS_PIXELS
VTS_XSIZE_PIXELS OLE_XSIZE_PIXELS
VTS_YSIZE_PIXELS OLE_XSIZE_PIXELS
VTS_XSIZE_HIMETRIC OLE_XSIZE_HIMETRIC
VTS_YSIZE_HIMETRIC OLE_XSIZE_HIMETRIC

Примечание.

Для всех типов вариантов определены дополнительные константы вариантов, за исключением VTS_FONT и VTS_PICTURE, которые предоставляют указатель на константу данных вариантов. Эти константы называются с помощью соглашения VTS_P<CONSTANT-NAME> . Например, VTS_PCOLOR — это указатель на константу VTS_COLOR.

COleControl::FireKeyDown

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

void FireKeyDown(
    USHORT* pnChar,
    short nShiftState);

Параметры

pnChar
Указатель на значение кода виртуального ключа нажатия клавиши. Список стандартных кодов виртуальных ключей см. в статье Winuser.h

nShiftState
Содержит сочетание следующих флагов:

  • SHIFT_MASK нажатие клавиши SHIFT во время действия.

  • CTRL_MASK нажатие клавиши CTRL во время действия.

  • ALT_MASK нажатие клавиши ALT во время действия.

Замечания

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

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

COleControl::FireKeyPress

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

void FireKeyPress(USHORT* pnChar);

Параметры

pnChar
Указатель на значение символа нажатия клавиши.

Замечания

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

Получатель события может изменить pnChar, например преобразовать все строчные символы в верхний регистр. Если вы хотите проверить измененный символ, переопределите OnKeyPressEvent.

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

COleControl::FireKeyUp

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

void FireKeyUp(
    USHORT* pnChar,
    short nShiftState);

Параметры

pnChar
Указатель на значение кода виртуального ключа выпущенного ключа. Список стандартных кодов виртуальных ключей см. в статье Winuser.h

nShiftState
Содержит сочетание следующих флагов:

  • SHIFT_MASK нажатие клавиши SHIFT во время действия.

  • CTRL_MASK нажатие клавиши CTRL во время действия.

  • ALT_MASK нажатие клавиши ALT во время действия.

Замечания

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

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

COleControl::FireMouseDown

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

void FireMouseDown(
    short nButton,
    short nShiftState,
    OLE_XPOS_PIXELS x,
    OLE_YPOS_PIXELS y);

Параметры

nButton
Числовое значение нажатия кнопки мыши. Он может содержать одно из следующих значений:

  • LEFT_BUTTON нажата левая кнопка мыши.

  • MIDDLE_BUTTON нажата средняя кнопка мыши.

  • RIGHT_BUTTON нажата правая кнопка мыши.

nShiftState
Содержит сочетание следующих флагов:

  • SHIFT_MASK нажатие клавиши SHIFT во время действия.

  • CTRL_MASK нажатие клавиши CTRL во время действия.

  • ALT_MASK нажатие клавиши ALT во время действия.

x
Координата x курсора при нажатии кнопки мыши. Координата относительно левого верхнего угла окна управления.

г
Координата y курсора при нажатии кнопки мыши вниз. Координата относительно левого верхнего угла окна управления.

Замечания

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

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

COleControl::FireMouseMove

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

void FireMouseMove(
    short nButton,
    short nShiftState,
    OLE_XPOS_PIXELS x,
    OLE_YPOS_PIXELS y);

Параметры

nButton
Числовое значение нажатия кнопок мыши. Содержит сочетание следующих значений:

  • LEFT_BUTTON левая кнопка мыши была нажата во время действия.

  • MIDDLE_BUTTON нажата средняя кнопка мыши во время действия.

  • RIGHT_BUTTON Справа кнопка мыши была нажата во время действия.

nShiftState
Содержит сочетание следующих флагов:

  • SHIFT_MASK нажатие клавиши SHIFT во время действия.

  • CTRL_MASK нажатие клавиши CTRL во время действия.

  • ALT_MASK нажатие клавиши ALT во время действия.

x
Координата x курсора. Координата относительно левого верхнего угла окна управления.

г
Координата y курсора. Координата относительно левого верхнего угла окна управления.

Замечания

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

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

COleControl::FireMouseUp

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

void FireMouseUp(
    short nButton,
    short nShiftState,
    OLE_XPOS_PIXELS x,
    OLE_YPOS_PIXELS y);

Параметры

nButton
Числовое значение выпущенной кнопки мыши. Он может иметь одно из следующих значений:

  • LEFT_BUTTON выпущена левая кнопка мыши.

  • MIDDLE_BUTTON выпущена средняя кнопка мыши.

  • RIGHT_BUTTON выпущена правая кнопка мыши.

nShiftState
Содержит сочетание следующих флагов:

  • SHIFT_MASK нажатие клавиши SHIFT во время действия.

  • CTRL_MASK нажатие клавиши CTRL во время действия.

  • ALT_MASK нажатие клавиши ALT во время действия.

x
Координата x курсора при освобождении кнопки мыши. Координата относительно левого верхнего угла окна управления.

г
Координата y курсора при освобождении кнопки мыши. Координата относительно левого верхнего угла окна управления.

Замечания

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

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

COleControl::FireReadyStateChange

Вызывает событие с текущим значением готового состояния управления.

void FireReadyStateChange();

Замечания

Состояние готовности может быть одним из следующих значений:

Имя Описание
READYSTATE_UNINITIALIZED Состояние инициализации по умолчанию
READYSTATE_LOADING Элемент управления в настоящее время загружает его свойства
READYSTATE_LOADED Элемент управления инициализирован
READYSTATE_INTERACTIVE Элемент управления имеет достаточно данных, чтобы быть интерактивными, но пока не все асинхронные данные загружены
READYSTATE_COMPLETE Элемент управления содержит все свои данные

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

InternalSetReadyState изменяет состояние готовности к заданному значению, а затем вызывает FireReadyStateChange.

COleControl::GetActivationPolicy

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

virtual DWORD GetActivationPolicy();

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

Сочетание флагов из перечисления POINTERINACTIVE. Возможные флаги:

Имя Описание
POINTERINACTIVE_ACTIVATEONENTRY Объект должен быть активирован на месте при вводе мыши во время операции перемещения мыши.
POINTERINACTIVE_DEACTIVATEONLEAVE Объект должен быть деактивирован, когда мышь покидает объект во время операции перемещения мыши.
POINTERINACTIVE_ACTIVATEONDRAG Объект должен быть активирован на месте, когда мышь перетаскивается по нему во время операции перетаскивания.

Замечания

IPointerInactive Если интерфейс включен, контейнер делегируется WM_SETCURSOR и WM_MOUSEMOVE сообщениям. COleControlРеализация этого интерфейса будет отправлять эти сообщения через карту сообщений элемента управления после настройки координат мыши соответствующим образом.

Каждый раз, когда контейнер получает сообщение WM_SETCURSOR или WM_MOUSEMOVE указателем мыши на неактивный объект IPointerInactive, он должен вызывать GetActivationPolicy интерфейс и возвращать флаги из перечисления POINTERINACTIVE.

Эти сообщения можно обрабатывать так же, как обычные сообщения окна, добавив соответствующие записи в карту сообщений. В обработчиках не используйте m_hWnd переменную-член (или любые функции-члены, использующие ее), не проверяя, что его значение не равно NULL.

Любой объект, предназначенный для выполнения более чем задания курсора мыши и /или запуска события перемещения мыши, например предоставления специального визуального отзыва, должен возвращать флаг POINTERINACTIVE_ACTIVATEONENTRY и рисовать обратную связь только в том случае, если активен. Если объект возвращает этот флаг, контейнер должен немедленно активировать его на месте, а затем перенаправить его то же сообщение, в которое активировался вызов GetActivationPolicy.

Если возвращаются как POINTERINACTIVE_ACTIVATEONENTRY, так и POINTERINACTIVE_DEACTIVATEONLEAVE флаги, объект будет активирован только при переходе мыши на объект. Если возвращается только флаг POINTERINACTIVE_ACTIVATEONENTRY, объект будет активирован только один раз, когда мышь впервые войдет в объект.

Кроме того, может потребоваться, чтобы неактивный элемент управления был мишенью операции перетаскивания OLE. Для этого требуется активировать элемент управления в момент перетаскивания объекта по нему, чтобы окно элемента управления можно было зарегистрировать в качестве целевого объекта удаления. Чтобы вызвать активацию во время перетаскивания, верните флаг POINTERINACTIVE_ACTIVATEONDRAG:

DWORD CMyAxCtrl::GetActivationPolicy()
{
   return POINTERINACTIVE_ACTIVATEONDRAG;
}

Сведения, сообщаемые не GetActivationPolicy должны кэшироваться контейнером. Вместо этого этот метод следует вызывать каждый раз, когда мышь входит в неактивный объект.

Если неактивный объект не запрашивает активацию на месте при вводе мыши, его контейнер должен отправлять последующие WM_SETCURSOR сообщения этому объекту, вызывая OnInactiveSetCursor , пока указатель мыши остается над объектом.

IPointerInactive Включение интерфейса обычно означает, что элемент управления всегда может обрабатывать сообщения мыши. Чтобы получить это поведение в контейнере, который не поддерживает IPointerInactive интерфейс, вам потребуется всегда активировать ваш элемент управления при отображении, что означает, что элемент управления должен иметь флаг OLEMISC_ACTIVATEWHENVISIBLE среди других флагов. Тем не менее, чтобы этот флаг не входить в силу в контейнере, поддерживающем IPointerInactive, можно также указать флаг OLEMISC_IGNOREACTIVATEWHENVISIBLE:

static const DWORD BASED_CODE _dwMyOleMisc =
    OLEMISC_ACTIVATEWHENVISIBLE |
    OLEMISC_IGNOREACTIVATEWHENVISIBLE |
    OLEMISC_SETCLIENTSITEFIRST |
    OLEMISC_INSIDEOUT |
    OLEMISC_CANTLINKINSIDE |
    OLEMISC_RECOMPOSEONRESIZE;

COleControl::GetAmbientProperty

Возвращает значение внешнего свойства контейнера.

BOOL GetAmbientProperty(
    DISPID dispid,
    VARTYPE vtProp,
    void* pvProp);

Параметры

dwDispid
Идентификатор диспетчера требуемого внешнего свойства.

vtProp
Тег типа variant, указывающий тип возвращаемого значения в pvProp.

pvProp
Указатель на адрес переменной, которая получит значение свойства или возвращаемое значение. Фактический тип этого указателя должен соответствовать типу, указанному vtProp.

vtProp Тип pvProp
VT_BOOL. BOOL*
VT_BSTR CString*
VT_I2 short*
VT_I4 long*
VT_R4 float*
VT_R8 double*
VT_CY CY*
VT_COLOR OLE_COLOR*
VT_DISPATCH LPDISPATCH*
VT_FONT LPFONTDISP*

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

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

Замечания

Если вы используете GetAmbientProperty для получения свойств displayName и ScaleUnits, задайте значение vtProp для VT_BSTR и pvPropCString*. Если вы извлекаете свойство внешнего шрифта, задайте значение vtProp для VT_FONT и pvProp значение LPFONTDISP*.

Обратите внимание, что функции уже были предоставлены для общих свойств окружающей среды, таких как AmbientBackColor и AmbientFont.

COleControl::GetAppearance

Реализует функцию Get для свойства "Внешний вид" элемента управления.

short GetAppearance ();

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

Возвращаемое значение указывает текущее значение внешнего вида как short значение (VT_I2), если оно выполнено успешно. Это значение равно нулю, если внешний вид элемента управления неструктурирован и 1, если внешний вид элемента управления равен 3D.

COleControl::GetBackColor

Реализует функцию Get для свойства BackColor элемента управления.

OLE_COLOR GetBackColor();

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

Возвращаемое значение указывает текущий цвет фона как OLE_COLOR значение, если оно выполнено успешно. Это значение можно преобразовать в значение COLORREF с вызовом TranslateColor.

COleControl::GetBorderStyle

Реализует функцию Get для свойства BorderStyle элемента управления.

short GetBorderStyle();

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

1, если элемент управления имеет обычную границу; Значение 0, если элемент управления не имеет границы.

COleControl::GetCapture

Определяет, имеет ли COleControl объект запись мыши.

CWnd* GetCapture();

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

Если элемент управления активируется и без окон, возвращается this , если элемент управления в настоящее время имеет запись мыши (как определено контейнером элемента управления) или NULL, если у него нет записи.

В противном случае возвращает CWnd объект с записью мыши (аналогично CWnd::GetCapture).

Замечания

Активированный элемент управления без окон получает запись мыши при вызове SetCapture .

COleControl::GetClassID

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

virtual HRESULT GetClassID(LPCLSID pclsid) = 0;

Параметры

pclsid
Указатель на расположение идентификатора класса.

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

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

Замечания

Обычно реализуется IMPLEMENT_OLECREATE_EX.

COleControl::GetClientOffset

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

virtual void GetClientOffset(long* pdxOffset, long* pdyOffset) const;

Параметры

pdxOffset
Указатель на горизонтальное смещение клиентской области элемента управления OLE.

pdyOffset
Указатель на вертикальное смещение клиентской области элемента управления OLE.

Замечания

Элемент управления OLE имеет прямоугольную область в контейнере. Клиентская область элемента управления — это область управления, за исключением границ и полос прокрутки. Смещение, полученное GetClientOffset путем, — это разница между левым верхним углом прямоугольной области элемента управления и верхним левым углом клиентской области. Если в элементе управления есть элементы, отличные от стандартных границ и полос прокрутки, переопределите эту функцию-член, чтобы указать смещение.

COleControl::GetClientRect

Извлекает размер клиентской области элемента управления.

virtual void GetClientRect(LPRECT lpRect) const;

Параметры

lpRect
Указатель на RECT структуру, содержащую измерения клиентской области элемента управления без окон; то есть размер элемента управления минус границы окна, кадры, полосы прокрутки и т. д. Параметр lpRect указывает размер прямоугольника клиента элемента управления, а не его положение.

COleControl::GetClientSite

Запрашивает объект для указателя на текущий клиентский сайт в контейнере.

LPOLECLIENTSITE GetClientSite();

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

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

Замечания

Возвращаемый указатель указывает на экземпляр IOleClientSite. Интерфейс IOleClientSite , реализованный контейнерами, — это представление объекта о его контексте: где он привязан в документе, где он получает свое хранилище, пользовательский интерфейс и другие ресурсы.

COleControl::GetControlFlags

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

virtual DWORD GetControlFlags();

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

Сочетание флагов в перечислении ControlFlags:

enum ControlFlags {
    fastBeginPaint = 0x0001,
    clipPaintDC = 0x0002,
    pointerInactive = 0x0004,
    noFlickerActivate = 0x0008,
    windowlessActivate = 0x0010,
    canOptimizeDraw = 0x0020,
    };

Замечания

По умолчанию GetControlFlags возвращается fastBeginPaint | clipPaintDC.

Имя Описание
fastBeginPaint Если задано, используется функция begin-paint, адаптированная для элементов управления OLE, а не API BeginPaint (заданная по умолчанию).
clipPaintDC Если не задано, отключает вызов IntersectClipRect , сделанный COleControl и получает небольшое преимущество скорости. Если вы используете активацию без окон, флаг не действует.
pointerInactive Если задано, обеспечивает взаимодействие с мышью, пока элемент управления неактивен, включив COleControlреализацию IPointerInactive интерфейса, которая отключена по умолчанию.
noFlickerActivate Если задано, устраняет дополнительные операции рисования и сопутствующее визуальное мерцание. Используйте, когда элемент управления рисует себя одинаково в неактивных и активных состояниях. Если вы используете активацию без окон, флаг не действует.
windowlessActivate Если задано, указывает, что элемент управления использует активацию без окон.
canOptimizeDraw Если задано, указывает, что элемент управления выполнит оптимизированное рисование, если контейнер поддерживает его.

Дополнительные сведения и GetControlFlags другие оптимизации элементов управления OLE см. в разделе ActiveX Controls: Оптимизация.

COleControl::GetControlSize

Извлекает размер окна управления OLE.

void GetControlSize(
    int* pcx,
    int* pcy);

Параметры

pcx
Задает ширину элемента управления в пикселях.

pcy
Задает высоту элемента управления в пикселях.

Замечания

Обратите внимание, что все координаты для окон управления относятся к левому верхнему углу элемента управления.

COleControl::GetDC

Предоставляет для объекта без окна для получения контекста устройства (или совместимого) экрана из контейнера.

CDC* GetDC(
    LPCRECT lprcRect = NULL,
    DWORD dwFlags = OLEDC_PAINTBKGND);

Параметры

lprcRect
Указатель на прямоугольник, который элемент управления без окна хочет перераскрыть в координатах клиента элемента управления. NULL означает степень полного объекта.

dwFlags
Рисование атрибутов контекста устройства. Варианты:

  • OLEDC_NODRAW Указывает, что объект не будет использовать контекст устройства для выполнения рисования, а просто для получения сведений об устройстве отображения. Контейнер должен просто передать контроллер домена окна без дополнительной обработки.

  • OLEDC_PAINTBKGND Запросы, которые контейнер закрасит фон перед возвратом контроллера домена. Объект должен использовать этот флаг, если он запрашивает контроллер домена для перерисовки области с прозрачным фоном.

  • OLEDC_OFFSCREEN сообщает контейнеру о том, что объект хочет отрисовывать в точечный рисунок вне экрана, который затем должен быть скопирован на экран. Объект должен использовать этот флаг при выполнении операции рисования, при этом создается много мерцания. Контейнер может быть свободен для выполнения этого запроса или нет. Однако если этот флаг не задан, контейнер должен вернуть контроллер домена на экране. Это позволяет объектам выполнять прямые операции с экрана, такие как отображение выделения (с помощью операции XOR ).

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

Указатель на контекст отображаемого устройства для клиентской области контейнера CWnd в случае успешного выполнения; в противном случае возвращаемое значение равно NULL. Контекст устройства отображения можно использовать в последующих функциях GDI для рисования в клиентской области окна контейнера.

Замечания

Чтобы освободить контекст после рисования, необходимо вызвать функцию-член ReleaseDC . При вызове GetDCобъекты передают прямоугольник, который они хотят привлечь в свои собственные координаты клиента. GetDC преобразует их в координаты клиентской области контейнера. Объект не должен запрашивать нужный прямоугольник рисования, превышающий прямоугольник клиентской области, размер которого можно получить с помощью GetClientRect. Это предотвращает непреднамеренное рисование объектов, где они не должны.

COleControl::GetEnabled

Реализует функцию Get для свойства с включенным свойством элемента управления.

BOOL GetEnabled();

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

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

COleControl::GetExtendedControl

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

LPDISPATCH GetExtendedControl();

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

Указатель на расширенный объект управления контейнера. Если объект недоступен, значение РАВНО NULL.

Этот объект может управляться через его IDispatch интерфейс. Вы также можете использовать QueryInterface для получения других доступных интерфейсов, предоставляемых объектом. Однако объект не требуется для поддержки определенного набора интерфейсов. Обратите внимание, что при использовании конкретных функций расширенного объекта управления контейнера ограничивается переносимостью элемента управления на другие произвольные контейнеры.

Замечания

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

COleControl::GetFocus

Определяет, имеет ли COleControl объект фокус.

CWnd* GetFocus();

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

Если элемент управления активируется и без окон, возвращается this , если элемент управления в настоящее время имеет фокус клавиатуры (как определено контейнером элемента управления) или NULL, если он не имеет фокуса.

В противном случае возвращает CWnd объект с фокусом (аналогично CWnd::GetFocus).

Замечания

Активированный элемент управления без окон получает фокус при вызове SetFocus .

COleControl::GetFont

Реализует функцию Get свойства Шрифта акций.

LPFONTDISP GetFont();

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

Указатель на интерфейс диспетчеризации шрифта свойства шрифта элемента управления.

Замечания

Обратите внимание, что вызывающий объект должен освободить объект по завершении. В рамках реализации элемента управления используйте InternalGetFont для доступа к объекту Шрифта элемента управления. Дополнительные сведения об использовании шрифтов в элементе управления см. в статье ActiveX Controls: Using Fonts in an ActiveX Control.

COleControl::GetFontTextMetrics

Измеряет текстовые метрики для любого CFontHolder объекта, принадлежащих элементу управления.

void GetFontTextMetrics(
    LPTEXTMETRIC lptm,
    CFontHolder& fontHolder);

Параметры

lptm
Указатель на структуру TEXTMETRIC .

FontHolder
Ссылка на объект CFontHolder .

Замечания

Такой шрифт можно выбрать с помощью функции COleControl::SelectFontObject . GetFontTextMetrics Инициализирует TEXTMETRIC структуру, на которую указывает lptm , с допустимыми сведениями fontHolderо шрифте в случае успешного выполнения или заполняет структуру нулями, если это не выполнено. Эту функцию следует использовать вместо GetTextMetrics при рисовании элемента управления, так как элементы управления, как и любой внедренный объект OLE, могут потребоваться для отрисовки в метафайл.

Структура TEXTMETRIC шрифта по умолчанию обновляется при вызове функции SelectFontObject . Вы должны вызывать GetFontTextMetrics только после выбора свойства шрифта акций, чтобы убедиться, что указанная информация действительна.

COleControl::GetForeColor

Реализует функцию Get свойства ForeColor.

OLE_COLOR GetForeColor();

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

Возвращаемое значение указывает текущий цвет переднего плана как OLE_COLOR значение, если оно выполнено успешно. Это значение можно преобразовать в значение COLORREF с вызовом TranslateColor.

COleControl::GetHwnd

Реализует функцию Get свойства hWnd акций.

OLE_HANDLE GetHwnd();

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

Дескриптор окна элемента управления OLE, если таковой есть; в противном случае ЗНАЧЕНИЕ NULL.

COleControl::GetMessageString

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

virtual void GetMessageString(
    UINT nID,
    CString& rMessage) const;

Параметры

nID
Идентификатор элемента меню.

rMessage
Ссылка на объект CString , через который будет возвращена строка.

Замечания

Это можно использовать для получения сообщения для отображения в строке состояния во время выделения элемента меню. Реализация по умолчанию пытается загрузить строковый ресурс, определяемый nID.

COleControl::GetNotSupported

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

void GetNotSupported();

Замечания

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

COleControl::GetReadyState

Возвращает состояние готовности элемента управления.

long GetReadyState();

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

Состояние готовности элемента управления, одно из следующих значений:

Имя Описание
READYSTATE_UNINITIALIZED Состояние инициализации по умолчанию
READYSTATE_LOADING Элемент управления в настоящее время загружает его свойства
READYSTATE_LOADED Элемент управления инициализирован
READYSTATE_INTERACTIVE Элемент управления имеет достаточно данных, чтобы быть интерактивными, но пока не все асинхронные данные загружены
READYSTATE_COMPLETE Элемент управления содержит все свои данные

Замечания

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

COleControl::GetRectInContainer

Получает координаты прямоугольника элемента управления относительно контейнера, выраженного в единицах устройства.

BOOL GetRectInContainer(LPRECT lpRect);

Параметры

lpRect
Указатель на структуру прямоугольника, в которую будут скопированы координаты элемента управления.

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

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

Замечания

Прямоугольник действителен только в том случае, если элемент управления активен на месте.

COleControl::GetStockTextMetrics

Измеряет текстовые метрики для свойства шрифта элемента управления, которое можно выбрать с помощью функции SelectStockFont .

void GetStockTextMetrics(LPTEXTMETRIC lptm);

Параметры

lptm
Указатель на структуру TEXTMETRIC .

Замечания

Функция GetStockTextMetrics инициализирует TEXTMETRIC структуру, на которую указывает lptm , с допустимыми сведениями о метриках в случае успешного выполнения или заполняет структуру нулями, если это не выполнено. Используйте эту функцию вместо GetTextMetrics при рисовании элемента управления, так как элементы управления, как и любой внедренный объект OLE, могут потребоваться для отрисовки в метафайл.

Структура TEXTMETRIC шрифта по умолчанию обновляется при вызове SelectStockFont функции. Эту функцию следует вызывать только после выбора шрифта акций, чтобы убедиться, что указанная информация является допустимой.

COleControl::GetText

Реализует функцию Get свойства "Текст" или "Заголовок".

BSTR GetText();

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

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

Примечание.

Дополнительные сведения о типе данных BSTR см . в разделе "Типы данных" в разделе "Макросы и глобальные".

Замечания

Обратите внимание, что вызывающий объект этой функции должен вызывать SysFreeString строку, возвращаемую для освобождения ресурса. В рамках реализации элемента управления используйте InternalGetText для доступа к свойству text или caption элемента управления.

COleControl::GetWindowlessDropTarget

Переопределите GetWindowlessDropTarget , если требуется, чтобы элемент управления без окна был мишенью операции перетаскивания OLE.

virtual IDropTarget* GetWindowlessDropTarget();

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

Указатель на интерфейс объекта IDropTarget . Так как у него нет окна, объект без окна не может зарегистрировать IDropTarget интерфейс. Однако для участия в перетаскивании объект без окна все равно может реализовать интерфейс и вернуть его в GetWindowlessDropTarget.

Замечания

Как правило, для этого потребуется, чтобы окно элемента управления было зарегистрировано в качестве целевого объекта удаления. Но так как элемент управления не имеет собственного окна, контейнер будет использовать свое собственное окно в качестве целевого объекта удаления. Элемент управления просто должен предоставить реализацию IDropTarget интерфейса, которому контейнер может делегировать вызовы в соответствующее время. Например:

IDropTarget *CMyAxCtrl::GetWindowlessDropTarget()
{
   m_xDropTarget.AddRef();
   return &m_xDropTarget;
}

COleControl::InitializeIIDs

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

void InitializeIIDs(
    const IID* piidPrimary,
    const IID* piidEvents);

Параметры

piidPrimary
Указатель на идентификатор интерфейса основного интерфейса диспетчера элемента управления.

piidEvents
Указатель на идентификатор интерфейса интерфейса интерфейса элемента управления.

Замечания

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

COleControl::InternalGetFont

Обращается к свойству шрифта акций элемента управления

CFontHolder& InternalGetFont();

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

Ссылка на объект CFontHolder , содержащий объект Stock Font.

COleControl::InternalGetText

Обращается к свойству "Текст" или "Подпись" элемента управления.

const CString& InternalGetText();

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

Ссылка на текстовую строку элемента управления.

COleControl::InternalSetReadyState

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

void InternalSetReadyState(long lNewReadyState);

Параметры

lNewReadyState
Состояние готовности, заданное для элемента управления, одно из следующих значений:

Имя Описание
READYSTATE_UNINITIALIZED Состояние инициализации по умолчанию
READYSTATE_LOADING Элемент управления в настоящее время загружает его свойства
READYSTATE_LOADED Элемент управления инициализирован
READYSTATE_INTERACTIVE Элемент управления имеет достаточно данных, чтобы быть интерактивными, но пока не все асинхронные данные загружены
READYSTATE_COMPLETE Элемент управления содержит все свои данные

Замечания

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

COleControl::InvalidateControl

Заставляет элемент управления перерисовывать себя.

void InvalidateControl(
    LPCRECT lpRect = NULL,
    BOOL bErase = TRUE);

Параметры

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

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

Замечания

Если lpRect имеет значение NULL, весь элемент управления будет перезабран. Если значение lpRect не равно NULL, это указывает часть прямоугольника элемента управления, которая должна быть недопустима. В случаях, когда элемент управления не имеет окна или в данный момент не активен, прямоугольник игнорируется, а вызов выполняется к функции-члену IAdviseSink ::OnViewChange . Используйте эту функцию вместо CWnd::InvalidateRect или InvalidateRect.

COleControl::InvalidateRgn

Отменяет клиентскую область окна контейнера в заданном регионе.

void InvalidateRgn(CRgn* pRgn, BOOL bErase = TRUE);

Параметры

pRgn
Указатель на объект CRgn , определяющий область отображения объекта OLE, который является недействительным, в координатах клиента содержащего окна. Если этот параметр имеет значение NULL, степень — весь объект.

bErase
Указывает, следует ли удалить фон в недопустимом регионе. Если значение TRUE, фон удаляется. Если значение FALSE, фон остается неизменным.

Замечания

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

Если bErase имеет значение TRUE для любой части региона обновления, фон в целом регионе, а не только в данной части, удаляется.

COleControl::IsConvertingVBX

Разрешает специализированную загрузку элемента управления OLE.

BOOL IsConvertingVBX();

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

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

Замечания

При преобразовании формы, используюющей элементы управления VBX, в ту, которая использует элементы управления OLE, может потребоваться специальный код загрузки для элементов управления OLE. Например, при загрузке экземпляра элемента управления OLE может потребоваться вызов PX_Font в :DoPropExchange

PX_Font(pPX, _T("Font"), *m_pMyFont, &DefaultFont);

Однако элементы управления VBX не имели объекта Font; каждое свойство шрифта было сохранено по отдельности. В этом случае вы будете использовать IsConvertingVBX для различения этих двух вариантов:

if (!IsConvertingVBX())
{
   PX_Font(pPX, _T("Font"), *m_pMyFont, &DefaultFont);
}
else
{
   PX_String(pPX, _T("FontName"), tempString, DefaultName);
   m_pMyFont->m_pFont->put_Name(tempString.AllocSysString());
   PX_Bool(pPX, _T("FontUnderline"), tempBool, DefaultValue);
   m_pMyFont->m_pFont->put_Underline(tempBool);
}

Другим случаем будет, если элемент управления VBX сохранил собственные двоичные данные (в обработчике сообщений VBM_SAVEPROPERTY), а элемент управления OLE сохраняет двоичные данные в другом формате. Если вы хотите, чтобы элемент управления OLE был обратно совместим с элементом управления VBX, можно считывать старые и новые форматы с помощью IsConvertingVBX функции, различая, загружается ли элемент управления VBX или элемент управления OLE.

В функции элемента управления DoPropExchange можно проверить это условие и, если верно, выполните код загрузки, характерный для этого преобразования (например, предыдущие примеры). Если элемент управления не преобразуется, можно выполнить обычный код загрузки. Эта возможность применима только к элементам управления, преобразованным из аналогов VBX.

COleControl::IsInvokeAllowed

Включает вызов метода автоматизации.

BOOL IsInvokeAllowed(DISPID dispid);

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

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

Замечания

Реализация вызовов IsInvokeAllowed платформы IDispatch::Invoke для определения того, может ли вызываться данная функция (определяемая поdispid) . Поведение по умолчанию для элемента управления OLE позволяет вызывать методы автоматизации, только если элемент управления инициализирован; однако является виртуальной функцией и может быть переопределена при необходимости (например, IsInvokeAllowed если элемент управления используется в качестве сервера автоматизации).

COleControl::IsModified

Определяет, было ли изменено состояние элемента управления.

BOOL IsModified();

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

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

Замечания

Состояние элемента управления изменяется при изменении значения свойства.

COleControl::IsOptimizedDraw

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

BOOL IsOptimizedDraw();

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

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

Замечания

Если оптимизированное рисование поддерживается, элемент управления не должен выбирать старые объекты (ручки, кисти, шрифты и т. д.) в контекст устройства при завершении рисования.

COleControl::IsSubclassedControl

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

virtual BOOL IsSubclassedControl();

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

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

Замечания

Эту функцию необходимо переопределить и вернуть значение TRUE, если элемент управления OLE подклассы элемента управления Windows.

COleControl::Load

Сбрасывает все предыдущие данные, загруженные асинхронно, и инициирует новую загрузку асинхронного свойства элемента управления.

void Load(LPCTSTR strNewPath, CDataPathProperty& prop);

Параметры

strNewPath
Указатель на строку, содержащую путь, ссылающийся на абсолютное расположение асинхронного свойства элемента управления.

подпорка
Объект CDataPathProperty , реализующий асинхронное свойство элемента управления.

COleControl::LockInPlaceActive

Запрещает контейнеру деактивировать элемент управления.

BOOL LockInPlaceActive(BOOL bLock);

Параметры

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

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

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

Замечания

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

COleControl::OnAmbientPropertyChange

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

virtual void OnAmbientPropertyChange(DISPID dispid);

Параметры

dispID
Идентификатор диспетчера измененного внешнего свойства или DISPID_UNKNOWN, если изменено несколько свойств.

COleControl::OnAppearanceChanged

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

virtual void OnAppearanceChanged ();

Замечания

Переопределите эту функцию, если требуется уведомление после изменения этого свойства. Вызовы InvalidateControlреализации по умолчанию.

COleControl::OnBackColorChanged

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

virtual void OnBackColorChanged();

Замечания

Переопределите эту функцию, если требуется уведомление после изменения этого свойства. Вызовы InvalidateControlреализации по умолчанию.

COleControl::OnBorderStyleChanged

Вызывается платформой при изменении значения свойства BorderStyle.

virtual void OnBorderStyleChanged();

Замечания

Вызовы InvalidateControlреализации по умолчанию.

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

COleControl::OnClick

Вызывается платформой при нажатии кнопки мыши или вызывается метод акций DoClick.

virtual void OnClick(USHORT iButton);

Параметры

iButton
Индекс кнопки мыши. Может иметь одно из следующих значений:

  • LEFT_BUTTON нажата левая кнопка мыши.

  • MIDDLE_BUTTON нажатие средней кнопки мыши.

  • RIGHT_BUTTON Нажатие правой кнопки мыши.

Замечания

Вызовы COleControl::FireClickреализации по умолчанию.

Переопределите эту функцию-член, чтобы изменить или расширить обработку по умолчанию.

COleControl::OnClose

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

virtual void OnClose(DWORD dwSaveOption);

Параметры

dwSaveOption
Флаг, указывающий, следует ли сохранять объект перед загрузкой. Допустимые значения:

  • OLECLOSE_SAVEIFDIRTY

  • OLECLOSE_NOSAVE

  • OLECLOSE_PROMPTSAVE

Замечания

По умолчанию сохраняет объект элемента управления, OnClose если он был изменен, а dwSaveOption — OLECLOSE_SAVEIFDIRTY или OLECLOSE_PROMPTSAVE.

COleControl::OnDoVerb

Вызывается платформой, когда контейнер вызывает IOleObject::DoVerb функцию-член.

virtual BOOL OnDoVerb(
    LONG iVerb,
    LPMSG lpMsg,
    HWND hWndParent,
    LPCRECT lpRect);

Параметры

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

lpMsg
Указатель на сообщение Windows, которое вызвало вызов команды.

hWndParent
Дескриптор родительского окна элемента управления. Если выполнение команды создает окно (или окна), hWndParent следует использовать в качестве родительского элемента.

lpRect
Указатель на структуру RECT, в которую копируются координаты элемента управления относительно контейнера.

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

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

Замечания

Реализация по умолчанию использует записи карты сообщений ON_OLEVERB и ON_STDOLEVERB, чтобы определить правильную функцию для вызова.

Переопределите эту функцию, чтобы изменить обработку команды по умолчанию.

COleControl::OnDraw

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

virtual void OnDraw(
    CDC* pDC,
    const CRect& rcBounds,
    const CRect& rcInvalid);

Параметры

pDC
Контекст устройства, в котором происходит рисование.

rcBounds
Прямоугольная область элемента управления, включая границу.

rcInvalid
Прямоугольная область элемента управления, которая является недопустимой.

Замечания

OnDraw обычно вызывается для отображения экрана, передав контекст устройства экрана в виде PDC. Параметр rcBounds определяет прямоугольник в контексте целевого устройства (относительно текущего режима сопоставления). Параметр rcInvalid является фактическим прямоугольником, недопустимым. В некоторых случаях это будет меньше, чем rcBounds.

COleControl::OnDrawMetafile

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

virtual void OnDrawMetafile(
    CDC* pDC,
    const CRect& rcBounds);

Параметры

pDC
Контекст устройства, в котором происходит рисование.

rcBounds
Прямоугольная область элемента управления, включая границу.

Замечания

Реализация по умолчанию вызывает функцию OnDraw .

COleControl::OnEdit

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

virtual BOOL OnEdit(
    LPMSG lpMsg,
    HWND hWndParent,
    LPCRECT lpRect);

Параметры

lpMsg
Указатель на сообщение Windows, вызвавщее команду.

hWndParent
Дескриптор родительского окна элемента управления.

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

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

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

Замечания

Это имеет тот же эффект, что и вызов команды OLEIVERB_UIACTIVATE элемента управления.

Эта функция обычно используется в качестве функции обработчика для записи карты сообщений ON_OLEVERB. Это делает команду "Изменить" доступной в меню элемента управления "Объект". Например:

ON_OLEVERB(AFX_IDS_VERB_EDIT, OnEdit)

COleControl::OnEnabledChanged

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

virtual void OnEnabledChanged();

Замечания

Переопределите эту функцию, если требуется уведомление после изменения этого свойства. Реализация по умолчанию вызывает InvalidateControl.

COleControl::OnEnumVerbs

Вызывается платформой, когда контейнер вызывает IOleObject::EnumVerbs функцию-член.

virtual BOOL OnEnumVerbs(LPENUMOLEVERB* ppenumOleVerb);

Параметры

ppenumOleVerb
Указатель на IEnumOLEVERB объект, перечисляющий команды элемента управления.

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

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

Замечания

Реализация по умолчанию перечисляет записи ON_OLEVERB в карте сообщений.

Переопределите эту функцию, чтобы изменить способ перечисления команд по умолчанию.

COleControl::OnEventAdvise

Вызывается платформой при подключении или отключении обработчика событий от элемента управления OLE.

virtual void OnEventAdvise(BOOL bAdvise);

Параметры

bAdvise
TRUE указывает, что обработчик событий подключен к элементу управления. FALSE указывает, что обработчик событий отключен от элемента управления.

COleControl::OnFontChanged

Вызывается платформой при изменении значения свойства Шрифта акций.

virtual void OnFontChanged();

Замечания

Вызовы COleControl::InvalidateControlреализации по умолчанию. Если элемент управления является подклассом элемента управления Windows, реализация по умолчанию также отправляет WM_SETFONT сообщение в окно элемента управления.

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

Пример

void CMyAxCtrl::OnFontChanged()
{
   // Always set it to the container's font
   if (m_MyEdit.m_hWnd != NULL)
   {
      IFontDisp *pFontDisp = NULL;
      IFont *pFont = NULL;
      HRESULT hr;

      // Get the container's FontDisp interface
      pFontDisp = AmbientFont();
      if (pFontDisp)
      {
         hr = pFontDisp->QueryInterface(IID_IFont, (LPVOID*)&pFont);
         if (FAILED(hr))
         {
            pFontDisp->Release();
            return;
         }
      }

      HFONT hFont = NULL;
      if (pFont)
      {
         pFont->get_hFont(&hFont);
         m_MyEdit.SendMessage(WM_SETFONT, (WPARAM)hFont, 0L);
      }

      pFontDisp->Release();
   }

   // Invalidate the control
   m_MyEdit.Invalidate();
   m_MyEdit.UpdateWindow();

   COleControl::OnFontChanged();
}

COleControl::OnForeColorChanged

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

virtual void OnForeColorChanged();

Замечания

Вызовы InvalidateControlреализации по умолчанию.

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

COleControl::OnFreezeEvents

Вызывается платформой после вызова IOleControl::FreezeEventsконтейнера.

virtual void OnFreezeEvents(BOOL bFreeze);

Параметры

bFreeze
ЗНАЧЕНИЕ TRUE, если обработка событий элемента управления заморожена; в противном случае ЗНАЧЕНИЕ FALSE.

Замечания

Реализация по умолчанию не выполняет никаких действий.

Переопределите эту функцию, если требуется дополнительное поведение, если обработка событий зависла или неfrozen.

COleControl::OnGetColorSet

Вызывается платформой, когда контейнер вызывает IViewObject::GetColorSet функцию-член.

virtual BOOL OnGetColorSet(
    DVTARGETDEVICE* ptd,
    HDC hicTargetDev,
    LPLOGPALETTE* ppColorSet);

Параметры

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

hicTargetDev
Указывает контекст информации на целевом устройстве, указанном ptd. Этот параметр может быть контекстом устройства, но не обязательно. Если значение ptd равно NULL, hicTargetDev также должно иметь значение NULL.

ppColorSet
Указатель на расположение, в которое следует скопировать набор цветов. Если функция не возвращает цветовой набор, возвращается значение NULL.

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

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

Замечания

Контейнер вызывает эту функцию, чтобы получить все цвета, необходимые для рисования элемента управления OLE. Контейнер может использовать наборы цветов, полученные в сочетании с цветами, которые необходимо задать общую цветовую палитру. Реализация по умолчанию возвращает FALSE.

Переопределите эту функцию, чтобы выполнить любую специальную обработку этого запроса.

COleControl::OnGetControlInfo

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

virtual void OnGetControlInfo(LPCONTROLINFO pControlInfo);

Параметры

pControlInfo
Указатель на структуру CONTROLINFO для заполнения.

Замечания

Эта информация состоит в основном из описания mnemonic ключей элемента управления. Реализация по умолчанию заполняет pControlInfo сведениями по умолчанию.

Переопределите эту функцию, если элемент управления должен обрабатывать mnemonic ключи.

COleControl::OnGetDisplayString

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

virtual BOOL OnGetDisplayString(
    DISPID dispid,
    CString& strValue);

Параметры

dispid
Идентификатор диспетчера свойства элемента управления.

strValue
Ссылка на объект CString , через который будет возвращена строка.

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

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

Замечания

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

COleControl::OnGetInPlaceMenu

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

virtual HMENU OnGetInPlaceMenu();

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

Дескриптор меню элемента управления или NULL, если элемент управления отсутствует. Реализация по умолчанию возвращает ЗНАЧЕНИЕ NULL.

Замечания

Дополнительные сведения о слиянии ресурсов OLE см. в статье "Меню и ресурсы" (OLE).

COleControl::OnGetNaturalExtent

Вызывается платформой в ответ на запрос контейнера IViewObjectEx::GetNaturalExtent .

virtual BOOL OnGetNaturalExtent(
    DWORD dwAspect,
    LONG lindex,
    DVTARGETDEVICE* ptd,
    HDC hicTargetDev,
    DVEXTENTINFO* pExtentInfo,
    LPSIZEL psizel);

Параметры

dwAspect
Указывает способ представления объекта. Представления включают содержимое, значок, эскиз или печатный документ. Допустимые значения взяты из перечисления DVASPECT или DVASPECT2.

lindex
Часть объекта, интересующего вас. В настоящее время допустимо только -1.

ptd
Указывает на структуру DVTARGETDEVICE , определяющую целевое устройство, для которого должен быть возвращен размер объекта.

hicTargetDev
Указывает контекст информации для целевого устройства, указанный параметром ptd , из которого объект может извлекать метрики устройства и тестировать возможности устройства. Если значение ptd равно NULL, объект должен игнорировать значение в параметре hicTargetDev .

pExtentInfo
Указывает на структуру DVEXTENTINFO , указывающую данные размера. Структура DVEXTENTINFO :

typedef struct tagExtentInfo
{
    UINT cb;
    DWORD dwExtentMode;
    SIZEL sizelProposed;
}   DVEXTENTINFO;

Элемент dwExtentMode структуры может принимать одно из двух значений:

  • DVEXTENT_CONTENT Запрос на то, как большой элемент управления должен соответствовать содержимому (оснастки к размеру)

  • DVEXTENT_INTEGRAL При изменении размера передайте предлагаемый размер для управления

psizel
Указывает на изменение размера данных, возвращаемых элементом управления. Возвращаемые данные размера заданы как -1 для любого измерения, которое не было скорректировано.

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

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

Замечания

Переопределите эту функцию, чтобы вернуть размер отображения объекта ближе всего к предлагаемому размеру и ex режим палатки в DVEXTENTINFO структуре. Реализация по умолчанию возвращает значение FALSE и не вносит никаких изменений в размер.

COleControl::OnGetPredefinedStrings

Вызывается платформой для получения набора предопределенных строк, представляющих возможные значения для свойства.

virtual BOOL OnGetPredefinedStrings(
    DISPID dispid,
    CStringArray* pStringArray,
    CDWordArray* pCookieArray);

Параметры

dispid
Идентификатор диспетчера свойства элемента управления.

pStringArray
Строковый массив, заполняемый возвращаемыми значениями.

pCookieArray
Массив DWORD для заполнения возвращаемыми значениями.

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

Ненулевое значение, если элементы были добавлены в pStringArray и pCookieArray.

Замечания

Переопределите эту функцию, если элемент управления имеет свойство с набором возможных значений, которые могут быть представлены строками. Для каждого элемента, добавленного в pStringArray, необходимо добавить соответствующий элемент cookie в pCookieArray. Эти значения cookie позже могут передаваться платформой в функцию COleControl::OnGetPredefinedValue .

COleControl::OnGetPredefinedValue

Вызывается платформой для получения значения, соответствующего одной из предопределенных строк, возвращаемых ранее переопределением COleControl::OnGetPredefinedStrings.

virtual BOOL OnGetPredefinedValue(
    DISPID dispid,
    DWORD dwCookie,
    VARIANT* lpvarOut);

Параметры

dispid
Идентификатор диспетчера свойства элемента управления.

dwCookie
Значение файла cookie, возвращаемое ранее переопределением COleControl::OnGetPredefinedStrings.

lpvarOut
Указатель на VARIANT структуру, с помощью которой будет возвращено значение свойства.

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

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

COleControl::OnGetViewExtent

Вызывается платформой в ответ на запрос IViewObject2 контейнера ::GetExtent .

virtual BOOL OnGetViewExtent(
    DWORD dwDrawAspect,
    LONG lindex,
    DVTARGETDEVICE* ptd,
    LPSIZEL lpsizel);

Параметры

dwDrawAspect
DWORD, описывающий форму или аспект объекта, который должен отображаться. Допустимые значения взяты из перечисления DVASPECT или DVASPECT2.

lindex
Часть объекта, интересующего вас. В настоящее время допустимо только -1.

ptd
Указывает на структуру DVTARGETDEVICE , определяющую целевое устройство, для которого должен быть возвращен размер объекта.

lpsizel
Указывает на расположение, в котором возвращается размер объекта.

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

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

Замечания

Переопределите эту функцию, если элемент управления использует двухпроходное рисование, а его непрозрачные и прозрачные части имеют разные размеры.

COleControl::OnGetViewRect

Вызывается платформой в ответ на запрос контейнера IViewObjectEx::GetRect .

virtual BOOL OnGetViewRect(DWORD dwAspect, LPRECTL pRect);

Параметры

dwAspect
DWORD, описывающий форму или аспект объекта, который должен отображаться. Допустимые значения взяты из перечисления DVASPECT или DVASPECT2:

  • DVASPECT_CONTENT ограничивающий прямоугольник всего объекта. Верхний левый угол в источнике и размере объекта, равный степени, возвращаемой GetViewExtent.

  • DVASPECT_OPAQUE Объекты с прямоугольной непрозрачной областью возвращают прямоугольник. Другие завершаются ошибкой.

  • DVASPECT_TRANSPARENT Прямоугольник, охватывающий все прозрачные или нерегулярные части.

pRect
Указывает на структуру RECTL , указывающую прямоугольник, в котором должен быть нарисован объект. Этот параметр управляет расположением и растяжением объекта.

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

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

Замечания

Размер объекта преобразуется в прямоугольник, начиная с OnGetViewRect определенной позиции (по умолчанию — верхний левый угол дисплея). Переопределите эту функцию, если элемент управления использует двухпроходное рисование, а его непрозрачные и прозрачные части имеют разные размеры.

COleControl::OnGetViewStatus

Вызывается платформой в ответ на запрос контейнера IViewObjectEx::GetViewStatus .

virtual DWORD OnGetViewStatus();

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

Одно из значений перечисления VIEWSTATUS в случае успешного выполнения; в противном случае — 0. Возможные значения — это любое сочетание следующих значений:

Имя Описание
VIEWSTATUS_OPAQUE Объект полностью непрозрачн. Если этот бит не задан, объект содержит прозрачные части. Этот бит применяется только к аспектам, связанным с содержимым, а не к DVASPECT_ICON или DVASPECT_DOCPRINT.
VIEWSTATUS_SOLIDBKGND Объект имеет твердый фон (состоящий из сплошного цвета, а не шаблона кисти). Этот бит имеет смысл, только если VIEWSTATUS_OPAQUE задан и применяется только к аспектам, связанным с контентом, а не к DVASPECT_ICON или DVASPECT_DOCPRINT.
VIEWSTATUS_DVASPECTOPAQUE Объект поддерживает DVASPECT_OPAQUE. Все методы IViewObjectEx, которые принимают аспект рисования в качестве параметра, можно вызвать с этим аспектом.
VIEWSTATUS_DVASPECTTRANSPARENT Объект поддерживает DVASPECT_TRANSPARENT. Все IViewObjectEx методы, которые принимают аспект рисования в качестве параметра, можно вызвать с этим аспектом.

Замечания

Переопределите эту функцию, если элемент управления использует двухпроходное рисование. Реализация по умолчанию возвращает VIEWSTATUS_OPAQUE.

COleControl::OnHideToolBars

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

virtual void OnHideToolBars();

Замечания

Реализация должна скрыть все панели инструментов, OnShowToolbarsотображаемые.

COleControl::OnInactiveMouseMove

Вызывается контейнером для неактивного объекта под указателем мыши на получение сообщения WM_MOUSEMOVE.

virtual void OnInactiveMouseMove(
    LPCRECT lprcBounds,
    long x,
    long y,
    DWORD dwKeyState);

Параметры

lprcBounds
Объект, ограничивающий прямоугольник, в координатах клиента содержащего окна. Сообщает объекту о его точном расположении и размере на экране при получении сообщения WM_MOUSEMOVE.

x
Координата x расположения мыши в клиентских координатах содержащего окна.

г
Координата y расположения мыши в клиентских координатах содержащего окна.

dwKeyState
Определяет текущее состояние клавиш модификатора клавиатуры на клавиатуре. Допустимые значения могут быть сочетанием любого из флагов MK_CONTROL, MK_SHIFT, MK_ALT, MK_BUTTON, MK_LBUTTON, MK_MBUTTON и MK_RBUTTON.

Замечания

Обратите внимание, что координаты клиента окна (пиксели) используются для передачи позиции курсора мыши. Это возможно, также передав ограничивающий прямоугольник объекта в той же системе координат.

COleControl::OnInactiveSetCursor

Вызывается контейнером для неактивного объекта в указателе мыши при получении сообщения WM_SETCURSOR.

virtual BOOL OnInactiveSetCursor(
    LPCRECT lprcBounds,
    long x,
    long y,
    DWORD dwMouseMsg,
    BOOL bSetAlways);

Параметры

lprcBounds
Объект, ограничивающий прямоугольник, в координатах клиента содержащего окна. Сообщает объекту о его точном расположении и размере на экране при получении сообщения WM_SETCURSOR.

x
Координата x расположения мыши в клиентских координатах содержащего окна.

г
Координата y расположения мыши в клиентских координатах содержащего окна.

dwMouseMsg
Идентификатор сообщения мыши, для которого произошла WM_SETCURSOR.

bSetAlways
Указывает, должен ли объект задать курсор. Если значение TRUE, объект должен задать курсор; Если значение FALSE, курсор не обязан задать курсор и должен возвращать S_FALSE в этом случае.

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

Имеет ненулевое значение в случае успешного выполнения, иначе — 0.

Замечания

Обратите внимание, что координаты клиента окна (пиксели) используются для передачи позиции курсора мыши. Это возможно, также передав ограничивающий прямоугольник объекта в той же системе координат.

COleControl::OnKeyDownEvent

Вызывается платформой после обработки события KeyDown.

virtual void OnKeyDownEvent(
    USHORT nChar,
    USHORT nShiftState);

Параметры

nChar
Значение кода виртуального ключа нажатия клавиши. Список стандартных кодов виртуальных ключей см. в статье Winuser.h

nShiftState
Содержит сочетание следующих флагов:

  • SHIFT_MASK нажатие клавиши SHIFT во время действия.

  • CTRL_MASK нажатие клавиши CTRL во время действия.

  • ALT_MASK нажатие клавиши ALT во время действия.

Замечания

Переопределите эту функцию, если элемент управления нуждается в доступе к ключевым сведениям после запуска события.

COleControl::OnKeyPressEvent

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

virtual void OnKeyPressEvent(USHORT nChar);

Параметры

nChar
Содержит значение кода виртуального ключа нажатия клавиши. Список стандартных кодов виртуальных ключей см. в статье Winuser.h

Замечания

Обратите внимание, что значение nChar, возможно, было изменено контейнером.

Переопределите эту функцию, если требуется уведомление после этого события.

COleControl::OnKeyUpEvent

Вызывается платформой после обработки события KeyDown.

virtual void OnKeyUpEvent(
    USHORT nChar,
    USHORT nShiftState);

Параметры

nChar
Значение кода виртуального ключа нажатия клавиши. Список стандартных кодов виртуальных ключей см. в статье Winuser.h

nShiftState
Содержит сочетание следующих флагов:

  • SHIFT_MASK нажатие клавиши SHIFT во время действия.

  • CTRL_MASK нажатие клавиши CTRL во время действия.

  • ALT_MASK нажатие клавиши ALT во время действия.

Замечания

Переопределите эту функцию, если элемент управления нуждается в доступе к ключевым сведениям после запуска события.

COleControl::OnMapPropertyToPage

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

virtual BOOL OnMapPropertyToPage(
    DISPID dispid,
    LPCLSID lpclsid,
    BOOL* pbPageOptional);

Параметры

dispid
Идентификатор диспетчера свойства элемента управления.

lpclsid
Указатель на CLSID структуру, с помощью которой будет возвращен идентификатор класса.

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

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

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

Замечания

Переопределите эту функцию, чтобы предоставить способ вызова страниц свойств элемента управления из браузера свойств контейнера.

COleControl::OnMnemonic

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

virtual void OnMnemonic(LPMSG pMsg);

Параметры

pMsg
Указатель на сообщение Windows, созданное нажатием назначенной клавиши.

COleControl::OnProperties

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

virtual BOOL OnProperties(
    LPMSG lpMsg,
    HWND hWndParent,
    LPCRECT lpRect);

Параметры

lpMsg
Указатель на сообщение Windows, вызвавщее команду.

hWndParent
Дескриптор родительского окна элемента управления.

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

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

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

Замечания

Реализация по умолчанию отображает диалоговое окно модального свойства.

Эту функцию можно также использовать для отображения страниц свойств элемента управления. OnProperties Вызов функции, передав дескриптор родительского элемента управления в параметре hWndParent. В этом случае значения lpMsg и lpRect игнорируются.

COleControl::OnQueryHitPoint

Вызывается платформой в ответ на запрос контейнера IViewObjectEx::QueryHitPoint .

virtual BOOL OnQueryHitPoint(
    DWORD dwAspect,
    LPCRECT pRectBounds,
    POINT ptlLoc,
    LONG lCloseHint,
    DWORD* pHitResult);

Параметры

dwAspect
Указывает, как представляется объект. Допустимые значения взяты из перечисления DVASPECT или DVASPECT2.

pRectBounds
Указатель на структуру, указывающую ограничивающий RECT прямоугольник клиентской области управления OLE.

ptlLoc
Указатель на POINT структуру, указывающую точку для проверки попадания. Точка указана в координатах клиентской области OLE.

lCloseHint
Расстояние, определяющее "близко" к точке, проверенной для попадания.

pHitResult
Указатель на результат запроса попадания. Одно из следующих значений:

  • HITRESULT_OUTSIDE ptlLoc находится за пределами объекта OLE и не закрывается.

  • HITRESULT_TRANSPARENT ptlLoc находится в пределах объекта OLE, но не близко к изображению. Например, точка в середине прозрачного круга может быть HITRESULT_TRANSPARENT.

  • HITRESULT_CLOSE ptlLoc находится внутри или за пределами объекта OLE, но достаточно близко к объекту, который будет рассматриваться внутри. Небольшие, тонкие или подробные объекты могут использовать это значение. Даже если точка находится за пределами ограничивающего прямоугольника объекта, он по-прежнему может быть закрыт (это необходимо для удара небольших объектов).

  • HITRESULT_HIT ptlLoc находится в изображении объекта.

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

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

Замечания

Запрашивает, перекрывает ли прямоугольник отображения объекта заданной точки (попадает в точку). QueryHitPoint можно переопределить для проверки попаданий для не прямоугольных объектов.

COleControl::OnQueryHitRect

Вызывается платформой в ответ на запрос контейнера IViewObjectEx::QueryHitRect .

virtual BOOL OnQueryHitRect(
    DWORD dwAspect,
    LPCRECT pRectBounds,
    LPCRECT prcLoc,
    LONG lCloseHint,
    DWORD* pHitResult);

Параметры

dwAspect
Указывает способ представления объекта. Допустимые значения взяты из перечисления DVASPECT или DVASPECT2.

pRectBounds
Указатель на структуру, указывающую ограничивающий RECT прямоугольник клиентской области управления OLE.

prcLoc
Указатель на RECT структуру, указывающую прямоугольник для проверки попадания (перекрывается прямоугольником объекта), относительно верхнего левого угла объекта.

lCloseHint
Не используется.

pHitResult
Указатель на результат запроса попадания. Одно из следующих значений:

  • HITRESULT_OUTSIDE нигде в прямоугольнике не попадает объект OLE.

  • HITRESULT_HIT по крайней мере одна точка в прямоугольнике будет ударом по объекту.

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

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

Замечания

Запрашивает, перекрывает ли прямоугольник отображения объекта любую точку в заданном прямоугольнике (попадает в прямоугольник). QueryHitRect можно переопределить для проверки попаданий для не прямоугольных объектов.

COleControl::OnRenderData

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

virtual BOOL OnRenderData(
    LPFORMATETC lpFormatEtc,
    LPSTGMEDIUM lpStgMedium);

Параметры

lpFormatEtc
Указывает на структуру FORMATETC , указывающую формат, в котором запрашивается информация.

lpStgMedium
Указывает на структуру STGMEDIUM , в которой возвращаются данные.

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

Имеет ненулевое значение в случае успешного выполнения, иначе — 0.

Замечания

Указанный формат ранее помещается в объект управления с помощью функций-членов DelayRenderData или DelayRenderFileData для отложенной отрисовки. Реализация по умолчанию вызовов OnRenderFileData этой функции или OnRenderGlobalDataсоответственно, если предоставленный носитель хранилища является файлом или памятью. Если запрошенный формат CF_METAFILEPICT или формат постоянного набора свойств, реализация по умолчанию отображает соответствующие данные и возвращает ненулевое значение. В противном случае возвращается значение 0 и ничего не делает.

Если lpStgMedium-tymed> TYMED_NULL, stGMEDIUM должен быть выделен и заполнен, как указано в lpFormatEtc-tymed>. Если не TYMED_NULL, то stGMEDIUM должен быть заполнен данными.

Переопределите эту функцию, чтобы предоставить данные в запрошенном формате и среднем формате. В зависимости от данных вместо этого может потребоваться переопределить одну из других версий этой функции. Если данные небольшие и фиксированные в размерах, переопределите OnRenderGlobalData. Если данные находится в файле или имеет размер переменной, переопределите OnRenderFileData.

Дополнительные сведения см FORMATETC . в разделе и STGMEDIUM структурах в пакете SDK для Windows.

COleControl::OnRenderFileData

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

virtual BOOL OnRenderFileData(
    LPFORMATETC lpFormatEtc,
    CFile* pFile);

Параметры

lpFormatEtc
Указывает на структуру FORMATETC , указывающую формат, в котором запрашивается информация.

pFile
Указывает на объект CFile , в котором данные должны быть отрисованы.

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

Имеет ненулевое значение в случае успешного выполнения, иначе — 0.

Замечания

Указанный формат является одним из ранее помещенных в объект управления с помощью функции-члена DelayRenderData для отложенной отрисовки. Реализация этой функции по умолчанию просто возвращает значение FALSE.

Переопределите эту функцию, чтобы предоставить данные в запрошенном формате и среднем формате. В зависимости от данных вместо этого может потребоваться переопределить одну из других версий этой функции. Если вы хотите обработать несколько носителей хранилища, переопределите OnRenderData. Если данные находится в файле или имеет размер переменной, переопределите OnRenderFileData.

Дополнительные сведения см FORMATETC . в структуре пакета SDK для Windows.

COleControl::OnRenderGlobalData

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

virtual BOOL OnRenderGlobalData(
    LPFORMATETC lpFormatEtc,
    HGLOBAL* phGlobal);

Параметры

lpFormatEtc
Указывает на структуру FORMATETC , указывающую формат, в котором запрашивается информация.

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

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

Имеет ненулевое значение в случае успешного выполнения, иначе — 0.

Замечания

Указанный формат является одним из ранее помещенных в объект управления с помощью функции-члена DelayRenderData для отложенной отрисовки. Реализация этой функции по умолчанию просто возвращает значение FALSE.

Если phGlobal имеет значение NULL, то новый HGLOBAL должен быть выделен и возвращен в phGlobal. В противном случае HGLOBAL, указанный phGlobal , должен быть заполнен данными. Объем данных, помещенных в HGLOBAL, не должен превышать текущий размер блока памяти. Кроме того, блок нельзя перераспределить на более крупный размер.

Переопределите эту функцию, чтобы предоставить данные в запрошенном формате и среднем формате. В зависимости от данных вместо этого может потребоваться переопределить одну из других версий этой функции. Если вы хотите обработать несколько носителей хранилища, переопределите OnRenderData. Если данные находится в файле или имеет размер переменной, переопределите OnRenderFileData.

Дополнительные сведения см FORMATETC . в структуре пакета SDK для Windows.

COleControl::OnResetState

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

virtual void OnResetState();

Замечания

Реализация по умолчанию вызывает DoPropExchange, передав CPropExchange объект, который приводит к присвоению свойств значениям по умолчанию.

Модуль записи элементов управления может вставить код инициализации для элемента управления OLE в этот переопределяемый элемент управления. Эта функция вызывается при вызове IPersistStream::Load или IPersistStorage::Load завершается сбоем, или при вызове IPersistStreamInit::InitNew или IPersistStorage::InitNew без первого вызова IPersistStream::Load либоIPersistStorage::Load.

COleControl::OnSetClientSite

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

virtual void OnSetClientSite();

Замечания

По умолчанию проверяет, OnSetClientSite загружаются ли свойства пути данных и, если они есть, вызовы DoDataPathPropExchange.

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

COleControl::OnSetData

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

virtual BOOL OnSetData(
    LPFORMATETC lpFormatEtc,
    LPSTGMEDIUM lpStgMedium,
    BOOL bRelease);

Параметры

lpFormatEtc
Указатель на структуру FORMATETC , указывающую формат данных.

lpStgMedium
Указатель на структуру STGMEDIUM , в которой находятся данные.

bRelease
ЗНАЧЕНИЕ TRUE, если элемент управления должен освободить носитель хранилища; ЗНАЧЕНИЕ FALSE, если элемент управления не должен освободить носитель хранилища.

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

Имеет ненулевое значение в случае успешного выполнения, иначе — 0.

Замечания

Если данные в формате набора постоянных свойств, реализация по умолчанию изменяет состояние элемента управления соответствующим образом. В противном случае реализация по умолчанию ничего не делает. Если bRelease имеет значение TRUE, вызов ReleaseStgMedium выполняется; в противном случае — нет.

Переопределите эту функцию, чтобы заменить данные элемента управления указанными данными.

Дополнительные сведения см FORMATETC . в разделе и STGMEDIUM структурах в пакете SDK для Windows.

COleControl::OnSetExtent

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

virtual BOOL OnSetExtent(LPSIZEL lpSizeL);

Параметры

lpSizeL
Указатель на SIZEL структуру, которая использует длинные целые числа для представления ширины и высоты элемента управления, выраженного в единицах HIMETRIC.

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

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

Замечания

Реализация по умолчанию обрабатывает изменение размера экстентов элемента управления. Если элемент управления активен на месте, вызов контейнера OnPosRectChanged выполняется.

Переопределите эту функцию, чтобы изменить размер элемента управления по умолчанию.

COleControl::OnSetObjectRects

Вызывается платформой для реализации вызова IOleInPlaceObject::SetObjectRects.

virtual BOOL OnSetObjectRects(
    LPCRECT lpRectPos,
    LPCRECT lpRectClip);

Параметры

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

lpRectClip
Указатель на RECT структуру, указывающую прямоугольную область, к которой необходимо обрезать элемент управления.

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

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

Замечания

Реализация по умолчанию автоматически обрабатывает изменение положения и изменение размера окна управления и возвращает значение TRUE.

Переопределите эту функцию, чтобы изменить поведение этой функции по умолчанию.

COleControl::OnShowToolBars

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

virtual void OnShowToolBars();

Замечания

Реализация по умолчанию не выполняет никаких действий.

COleControl::OnTextChanged

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

virtual void OnTextChanged();

Замечания

Вызовы InvalidateControlреализации по умолчанию.

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

COleControl::OnWindowlessMessage

Вызывается платформой в ответ на запрос контейнера IOleInPlaceObjectWindowless::OnWindowMessage .

virtual BOOL OnWindowlessMessage(
    UINT msg,
    WPARAM wParam,
    LPARAM lParam,
    LRESULT* plResult);

Параметры

msg
Идентификатор сообщения, переданный Windows.

wParam
Как передается Windows. Указывает дополнительные сведения, относящиеся к сообщению. Содержимое этого параметра зависит от значения параметра msg .

lParam
Как передается Windows. Указывает дополнительные сведения, относящиеся к сообщению. Содержимое этого параметра зависит от значения параметра msg .

plResult
Код результата Windows. Указывает результат обработки сообщений и зависит от отправленного сообщения.

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

Имеет ненулевое значение в случае успешного выполнения, иначе — 0.

Замечания

Обрабатывает сообщения окна для элементов управления без окон. COleControlOnWindowlessMessage Они должны использоваться для сообщений окна, отличных от сообщений мыши и клавиатуры. COleControl предоставляет SetCapture и SetFocus специально для получения захвата мыши и фокуса клавиатуры для объектов OLE без окон.

Так как у объектов без окон нет окна, им нужен механизм, позволяющий отправлять сообщения контейнера в них. Объект OLE без окна получает сообщения из контейнера через OnWindowMessage метод интерфейса IOleInPlaceObjectWindowless (расширение IOleInPlaceObject для поддержки без окон). OnWindowMessage не принимает HWND параметр.

COleControl::ParentToClient

Преобразует координаты pPoint в координаты клиента.

virtual UINT ParentToClient(
    LPCRECT lprcBounds,
    LPPOINT pPoint,
    BOOL bHitTest = FALSE) const;

Параметры

lprcBounds
Указатель на границы элемента управления OLE в контейнере. Не клиентская область, а область всего элемента управления, включая границы и полосы прокрутки.

pPoint
Указатель на родительскую (контейнерную) точку, преобразованную в координаты клиентской области элемента управления.

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

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

Если bHitTest имеет значение FALSE, возвращает значение HTNOWHERE. Если bHitTest имеет значение TRUE, возвращает расположение, в котором точка родительского (контейнера) приземлилась в клиентской области элемента управления OLE и является одним из следующих значений нажатия мыши:

  • HTBORDER В границе окна, у которых нет границы размера.

  • HTBOTTOM В нижней горизонтальной границе окна.

  • HTBOTTOMLEFT В левом нижнем углу границы окна.

  • HTBOTTOMRIGHT В правом нижнем углу границы окна.

  • HTCAPTION В области заголовка.

  • HTCLIENT В клиентской области.

  • HTERROR В фоновом режиме экрана или на разделительной линии между окнами (так же, как HTNOWHERE, за исключением того, что DefWndProc функция Windows создает системный сигнал для указания ошибки).

  • HTGROWBOX В поле размера.

  • HTHSCROLL В горизонтальной полосе прокрутки.

  • HTLEFT В левой границе окна.

  • HTMAXBUTTON В кнопке "Развернуть".

  • HTMENU В области меню.

  • HTMINBUTTON В кнопке "Свернуть".

  • HTNOWHERE В фоновом режиме экрана или на разделительной линии между окнами.

  • HTREDUCE В кнопке "Свернуть".

  • HTRIGHT В правой границе окна.

  • HTSIZE В поле размера (аналогично HTGROWBOX).

  • HTSYSMENU В меню "Элемент управления" или в кнопке "Закрыть" в дочернем окне.

  • HTTOP В верхней горизонтальной границе окна.

  • HTTOPLEFT В левом верхнем углу границы окна.

  • HTTOPRIGHT В правом верхнем углу границы окна.

  • HTTRANSPARENT В окне, в настоящее время охваченное другим окном.

  • HTVSCROLL В вертикальной полосе прокрутки.

  • HTZOOM в кнопке "Развернуть".

Замечания

В входной точке pPoint относительно происхождения родительского элемента (верхний левый угол контейнера). На выходе pPoint относительно источника клиентской области элемента управления OLE (верхний левый угол клиентской области элемента управления).

COleControl::PostModalDialog

Уведомляет контейнер о закрытии модального диалогового окна.

void PostModalDialog(HWND hWndParent = NULL);

Параметры

hWndParent
Обработка родительского окна модального диалогового окна.

Замечания

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

COleControl::PreModalDialog

Уведомляет контейнер о том, что модальное диалоговое окно будет отображаться.

void PreModalDialog(HWND hWndParent = NULL);

Параметры

hWndParent
Обработка родительского окна модального диалогового окна.

Замечания

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

COleControl::RecreateControlWindow

Уничтожает и повторно создает окно элемента управления.

void RecreateControlWindow();

Замечания

Это может потребоваться, если необходимо изменить биты стиля окна.

COleControl::Refresh

Принудительно перезапугать элемент управления OLE.

void Refresh();

Замечания

Эта функция поддерживается базовым классом COleControl в качестве метода акции с именем Refresh. Это позволяет пользователям элемента управления OLE перезапугать элемент управления в определенное время. Дополнительные сведения об этом методе см. в статье "Элементы ActiveX: Методы".

COleControl::ReleaseCapture

Освобождает запись мыши.

BOOL ReleaseCapture();

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

Имеет ненулевое значение в случае успешного выполнения, иначе — 0.

Замечания

Если элемент управления в настоящее время содержит запись мыши, запись будет выпущена. В противном случае эта функция не действует.

COleControl::ReleaseDC

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

int ReleaseDC(CDC* pDC);

Параметры

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

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

Имеет ненулевое значение в случае успешного выполнения, иначе — 0.

Замечания

Приложение должно вызывать ReleaseDC каждый вызов GetDC.

COleControl::ReparentControlWindow

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

virtual void ReparentControlWindow(
    HWND hWndOuter,
    HWND hWndParent);

Параметры

hWndOuter
Дескриптор окна управления.

hWndParent
Дескриптор нового родительского окна.

Замечания

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

COleControl::ResetStockProps

Инициализирует состояние COleControl свойств акций в значения по умолчанию.

void ResetStockProps();

Замечания

Свойства: Внешний вид, BackColor, BorderStyle, Caption, Enabled, Font, ForeColor, hWnd и Text. Описание свойств акций см. в разделе "Элементы ActiveX: добавление свойств акций".

Вы можете улучшить производительность двоичной инициализации элемента управления с помощью ResetStockProps и ResetVersion переопределения COleControl::OnResetState. См. пример ниже. Дополнительные сведения о оптимизации инициализации см. в разделе "Элементы ActiveX: оптимизация".

Пример

void CMyAxCtrl::OnResetState()
{
   ResetVersion(MAKELONG(_wVerMinor, _wVerMajor));
   ResetStockProps();

   // initialize custom properties here
}

COleControl::ResetVersion

Инициализирует номер версии указанным значением.

void ResetVersion(DWORD dwVersionDefault);

Параметры

dwVersionDefault
Номер версии, назначенный элементу управления.

Замечания

Вы можете улучшить производительность двоичной инициализации элемента управления с помощью ResetVersion и ResetStockProps переопределения COleControl::OnResetState. См. пример в ResetStockProps. Дополнительные сведения о оптимизации инициализации см. в разделе "Элементы ActiveX: оптимизация".

COleControl::ScrollWindow

Позволяет объекту OLE без окна прокручивать область в его активном изображении на экране.

void ScrollWindow(
    int xAmount,
    int yAmount,
    LPCRECT lpRect = NULL,
    LPCRECT lpClipRect = NULL);

Параметры

xAmount
Указывает объем в единицах устройства горизонтальной прокрутки. Этот параметр должен быть отрицательным значением для прокрутки влево.

yAmount
Указывает объем (в единицах устройства) вертикальной прокрутки. Этот параметр должен быть отрицательным значением для прокрутки вверх.

lpRect
Указывает на объект CRect или структуру RECT, указывающую часть клиентской области объекта OLE для прокрутки в координатах клиента содержащего окна. Если значение lpRect равно NULL, выполняется прокрутка всей клиентской области объекта OLE.

lpClipRect
Указывает на CRect объект или RECT структуру, указывающую прямоугольник для клипа. Прокручиваются только пиксели внутри прямоугольника. Биты за пределами прямоугольника не влияют, даже если они находятся в прямоугольнике lpRect . Если значение lpClipRect равно NULL, на прямоугольнике прокрутки не выполняется вырезка.

COleControl::SelectFontObject

Выбирает шрифт в контексте устройства.

CFont* SelectFontObject(
    CDC* pDC,
    CFontHolder& fontHolder);

Параметры

pDC
Указатель на объект контекста устройства.

FontHolder
Ссылка на объект CFontHolder , представляющий выбранный шрифт.

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

Указатель на ранее выбранный шрифт. После завершения всех операций рисования, использующих fontHolder, вызывающий объект должен повторно выбрать ранее выбранный шрифт, передав его в CDC::SelectObject.

COleControl::SelectStockFont

Выбирает свойство шрифта акций в контексте устройства.

CFont* SelectStockFont(CDC* pDC);

Параметры

pDC
Контекст устройства, в котором будет выбран шрифт.

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

Указатель на ранее выбранный CFont объект. При завершении следует использовать CDC::SelectObject , чтобы выбрать этот шрифт обратно в контекст устройства.

COleControl::SerializeExtent

Сериализует или инициализирует состояние отображаемого пространства, выделенного элементу управления.

void SerializeExtent(CArchive& ar);

Параметры

ар
CArchive Объект для сериализации в или из.

Замечания

Вы можете улучшить производительность двоичного сохраняемости элемента управления с помощью SerializeExtent, SerializeStockPropsа также SerializeVersion переопределить COleControl::Serialize. См. пример ниже. Дополнительные сведения о оптимизации инициализации см. в разделе "Элементы ActiveX: оптимизация".

Пример

void CMyAxCtrl::Serialize(CArchive &ar)
{
   SerializeVersion(ar, MAKELONG(_wVerMinor, _wVerMajor));
   SerializeExtent(ar);
   SerializeStockProps(ar);

   if (ar.IsStoring())
   { // storing code
   }
   else
   { // loading code
   }
}

COleControl::SerializeStockProps

Сериализует или инициализирует состояние COleControl свойств акций: Внешний вид, BackColor, BorderStyle, Caption, Enabled, Font, ForeColor и Text.

void SerializeStockProps(CArchive& ar);

Параметры

ар
CArchive Объект для сериализации в или из.

Замечания

Описание свойств акций см. в разделе "Элементы ActiveX: добавление свойств акций".

Вы можете улучшить производительность двоичного сохраняемости элемента управления с помощью SerializeStockProps, SerializeExtentа также SerializeVersion переопределить COleControl::Serialize. Пример см. в коде serializeExtent. Дополнительные сведения о оптимизации инициализации см. в разделе "Элементы ActiveX: оптимизация".

COleControl::SerializeVersion

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

DWORD SerializeVersion(
    CArchive& ar,
    DWORD dwVersionDefault,
    BOOL bConvert = TRUE);

Параметры

ар
CArchive Объект для сериализации в или из.

dwVersionDefault
Текущий номер версии элемента управления.

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

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

Номер версии элемента управления. Если указанный архив загружается, SerializeVersion возвращает версию, загруженную из этого архива. В противном случае возвращается загруженная в данный момент версия.

Замечания

Вы можете улучшить производительность двоичного сохраняемости элемента управления с помощью SerializeVersion, SerializeExtentа также SerializeStockProps переопределить COleControl::Serialize. Пример см. в коде serializeExtent. Дополнительные сведения о оптимизации инициализации см. в разделе "Элементы ActiveX: оптимизация".

COleControl::SetAppearance

Задает значение свойства "Внешний вид" элемента управления.

void SetAppearance (short sAppearance);

Параметры

sAppearance
Значение short (VT_I2), используемое для внешнего вида элемента управления. Значение нуля задает внешний вид элемента управления неструктурированным, а значение 1 задает внешний вид элемента управления трехмерной.

Замечания

Дополнительные сведения о свойствах акций см. в разделе "Элементы ActiveX: Свойства".

COleControl::SetBackColor

Задает значение свойства BackColor для элемента управления.

void SetBackColor(OLE_COLOR dwBackColor);

Параметры

dwBackColor
Значение OLE_COLOR, используемое для фонового рисования элемента управления.

Замечания

Дополнительные сведения об использовании этого свойства и других связанных свойств см. в статье ActiveX Controls: Properties.

COleControl::SetBorderStyle

Задает значение свойства BorderStyle для элемента управления.

void SetBorderStyle(short sBorderStyle);

Параметры

sBorderStyle
Новый стиль границы для элемента управления; 0 указывает, что граница не указана, а 1 — обычная граница.

Замечания

Затем окно управления будет повторно создано и OnBorderStyleChanged вызывается.

COleControl::SetCapture

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

CWnd* SetCapture();

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

Указатель на CWnd объект окна, который ранее получил входные данные мыши.

Замечания

Если элемент управления активируется и без окон, эта функция приводит к тому, что окно контейнера элемента управления будет обладать записью мыши от имени элемента управления. В противном случае эта функция приводит к тому, что сам элемент управления владеет записью мыши (так же, как CWnd::SetCapture).

COleControl::SetControlSize

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

BOOL SetControlSize(int cx, int cy);

Параметры

cx
Задает новую ширину элемента управления в пикселях.

cy
Задает новую высоту элемента управления в пикселях.

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

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

Замечания

Эта функция не должна использоваться в конструкторе элемента управления.

Обратите внимание, что все координаты для окон управления относятся к левому верхнему углу элемента управления.

COleControl::SetEnabled

Задает значение свойства включено акций элемента управления.

void SetEnabled(BOOL bEnabled);

Параметры

bEnabled
ЗНАЧЕНИЕ TRUE, если элемент управления включен; в противном случае ЗНАЧЕНИЕ FALSE.

Замечания

После задания этого свойства OnEnabledChange вызывается.

COleControl::SetFocus

Приводит к тому, что окно контейнера элемента управления будет обладать фокусом ввода от имени элемента управления.

CWnd* SetFocus();

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

Указатель на CWnd объект окна, который ранее имел фокус ввода или ЗНАЧЕНИЕ NULL, если такого окна нет.

Замечания

Если элемент управления активирован и без окон, эта функция приводит к тому, что окно контейнера элемента управления будет иметь входной фокус, от имени элемента управления. Фокус ввода направляет ввод клавиатуры в окно контейнера, а контейнер отправляет все последующие сообщения клавиатуры объекту OLE, который вызывает SetFocus. Любое окно, которое ранее потеряло фокус ввода.

Если элемент управления не является оконным, эта функция приводит к тому, что сам элемент управления будет иметь входной фокус (так же, как CWnd::SetFocus).

COleControl::SetFont

Задает свойство шрифта запаса элемента управления.

void SetFont(LPFONTDISP pFontDisp);

Параметры

pFontDisp
Указатель на интерфейс отправки шрифта.

COleControl::SetForeColor

Задает значение свойства ForeColor для элемента управления.

void SetForeColor(OLE_COLOR dwForeColor);

Параметры

dwForeColor
Значение OLE_COLOR, используемое для рисования переднего плана элемента управления.

Замечания

Дополнительные сведения об использовании этого свойства и других связанных свойств см. в статье ActiveX Controls: Properties.

COleControl::SetInitialDataFormats

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

virtual void SetInitialDataFormats();

Замечания

Реализация по умолчанию задает два формата: CF_METAFILEPICT и набор постоянных свойств.

COleControl::SetInitialSize

Задает размер элемента управления OLE при первом отображении в контейнере.

void SetInitialSize(
    int cx,
    int cy);

Параметры

cx
Начальная ширина элемента управления OLE в пикселях.

cy
Начальная высота элемента управления OLE в пикселях.

Замечания

Вызовите эту функцию в конструкторе, чтобы задать начальный размер элемента управления. Начальный размер измеряется в единицах устройства или пикселях. Этот вызов рекомендуется выполнить в конструкторе элемента управления.

COleControl::SetModifiedFlag

Изменяет измененное состояние элемента управления.

void SetModifiedFlag(BOOL bModified = TRUE);

Параметры

bModified
Новое значение для измененного флага элемента управления. TRUE указывает, что состояние элемента управления было изменено; FALSE указывает, что только что сохранено состояние элемента управления.

Замечания

Вызовите эту функцию всякий раз, когда происходит изменение, которое повлияет на постоянное состояние элемента управления. Например, если значение постоянного свойства изменяется, вызовите эту функцию с bModified TRUE.

COleControl::SetNotPermitted

Указывает, что запрос на изменение завершился сбоем.

void SetNotPermitted();

Замечания

Вызовите эту функцию при BoundPropertyRequestEdit сбое. Эта функция создает исключение типа COleDispScodeException , указывающее, что операция набора не разрешена.

COleControl::SetNotSupported

Запрещает изменение значения свойства элемента управления пользователем.

void SetNotSupported();

Замечания

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

COleControl::SetRectInContainer

Задает координаты прямоугольника элемента управления относительно контейнера, выраженного в единицах устройства.

BOOL SetRectInContainer(LPCRECT lpRect);

Параметры

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

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

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

Замечания

Если элемент управления открыт, он изменяется в размерах; в противном случае вызывается функция контейнера OnPosRectChanged .

COleControl::SetText

Задает значение заголовка элемента управления или свойства Text.

void SetText(LPCTSTR pszText);

Параметры

pszText
Указатель на символьную строку.

Замечания

Обратите внимание, что свойства заголовка акций и текста сопоставляются с одинаковым значением. Это означает, что любые изменения, внесенные в любое свойство, автоматически изменяют оба свойства. Как правило, элемент управления должен поддерживать свойство caption или Text, но не оба.

COleControl::ThrowError

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

void ThrowError(
    SCODE sc,
    UINT nDescriptionID,
    UINT nHelpID = -1);

void ThrowError(
    SCODE sc,
    LPCTSTR pszDescription = NULL,
    UINT nHelpID = 0);

Параметры

sc
Значение кода состояния, которое необходимо сообщить. Полный список возможных кодов см. в статье ActiveX Controls: Advanced Темы.

nDescriptionID
Идентификатор ресурса строки для сообщения об исключении.

nHelpID
Идентификатор справки темы, на который необходимо сообщить.

pszDescription
Строка, содержащая объяснение исключения, о котором нужно сообщить.

Замечания

Эта функция должна вызываться только из функции Get или Set для свойства OLE или реализации метода автоматизации OLE. Если вам нужно сигнализировать об ошибках, возникающих в другое время, следует запустить событие ошибки акций.

COleControl::TransformCoords

Преобразует значения координат между единицами HIMETRIC и собственными единицами контейнера.

void TransformCoords(
    POINTL* lpptlHimetric,
    POINTF* lpptfContainer,
    DWORD flags);

Параметры

lpptlHimetric
Указатель на структуру POINTL , содержащую координаты в единицах HIMETRIC.

lpptfContainer
Указатель на структуру POINTF , содержащую координаты в размере единицы контейнера.

flags
Сочетание следующих значений:

  • XFORMCOORDS_POSITION Положение в контейнере.

  • XFORMCOORDS_SIZE размер контейнера.

  • XFORMCOORDS_HIMETRICTOCONTAINER преобразовать единицы HIMETRIC в единицы контейнера.

  • XFORMCOORDS_CONTAINERTOHIMETRIC преобразуйте единицы контейнера в единицы HIMETRIC.

Замечания

Первые два флага, XFORMCOORDS_POSITION и XFORMCOORDS_SIZE, указывают, должны ли координаты рассматриваться как положение или размер. Остальные два флага указывают направление преобразования.

COleControl::TranslateColor

Преобразует значение цвета из типа данных OLE_COLOR в тип данных COLORREF .

COLORREF TranslateColor(
    OLE_COLOR clrColor,
    HPALETTE hpal = NULL);

Параметры

clrColor
Тип данных OLE_COLOR. Дополнительные сведения см. в функции Windows OleTranslateColor .

hpal
Дескриптор необязательной палитры; может иметь значение NULL.

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

Значение цвета RGB (красный, зеленый, синий) 32-разрядное значение цвета, определяющее сплошной цвет, ближайший к значению clrColor , которое может представлять устройство.

Замечания

Эта функция полезна для перевода свойств ForeColor и BackColor в типы COLORREF, используемые функциями-членами CDC .

COleControl::WillAmbientsBeValidDuringLoad

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

BOOL WillAmbientsBeValidDuringLoad();

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

Nonzero указывает, что свойства окружающей среды будут допустимыми; В противном случае свойства окружения не будут допустимыми.

Замечания

В некоторых контейнерах элемент управления может не иметь доступа к его внешним свойствам во время первоначального вызова переопределения COleControl::DoPropExchange. Это происходит, если контейнер вызывает IPersistStreamInit::Load или IPersistStorage::Load до вызова IOleObject::SetClientSite (то есть, если он не учитывает бит состояния OLEMISC_SETCLIENTSITEFIRST).

COleControl::WindowProc

Предоставляет процедуру Windows для COleControl объекта.

virtual LRESULT WindowProc(
    UINT message,
    WPARAM wParam,
    LPARAM lParam);

Параметры

message
Указывает сообщение Windows для обработки.

wParam
Предоставляет дополнительные сведения, используемые при обработке сообщения. Значение параметра зависит от сообщения.

lParam
Предоставляет дополнительные сведения, используемые при обработке сообщения. Значение параметра зависит от сообщения.

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

Возвращаемое значение отправленного сообщения.

Замечания

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

См. также

Пример MFC CIRC3
Пример TESTHELP MFC
Класс COlePropertyPage
Класс CWnd
Диаграмма иерархии
Класс CFontHolder
Класс CPictureHolder