
COleControl клас-це потужний базовий клас для розробки елементи керування OLE. Отриманих від CWnd, цей клас успадковує всі функції Windows вікні об'єкта плюс додаткову функціональність конкретних OLE, такі, як події стрільбі і здатність підтримувати методи і властивості.
OLE елементів керування можна вставити контейнер додатків OLE і спілкуватися з контейнера за допомогою двосторонній системи події стрільбі і піддаючи методи і властивості до контейнера. Примітка Стандартні контейнери OLE підтримують лише базову функціональність елемент керування OLE. Вони не в змозі підтримувати розширені можливості елемент керування OLE. Події стрільбі виникає, коли події надсилаються до контейнера з певні дії, що відбуваються в елементі керування. У свою чергу, контейнер спілкується з контролю за допомогою піддається набір методів та властивостей аналогічних функцій-членів і члени даних класу C++. Такий підхід дозволяє розробнику контролювати вигляд елемента керування і повідомити контейнер, коли певні дії відбуваються.
OLE можуть бути використані на місці активні без вікна. Без вікон елементи керування мають значні переваги:
Елементи керування не потрібно вікно. Послуги, які пропонує вікно легко може бути надана через спільні вікном (зазвичай контейнер) і трохи диспетчерської код. Що вікна є в основному непотрібних ускладнення об'єкт.
Коли використовується без вікон активації, контейнер, (який вікно) несе відповідальність за надання послуг, які б в іншому випадку були надані на вікно керування власними. Наприклад, якщо вашого контролю запиту фокусу клавіатури, запит захоплення миші або отримати пристрій контекст, ці операції керуються контейнера. COleControl функцій-членів без вікон операції посилатися на ці операції на контейнер.
Коли без вікон активації, контейнер делегатів вхідних повідомлень до елемента керування IOleInPlaceObjectWindowless інтерфейс (розширення IOleInPlaceObject для підтримки без вікон). COleControlреалізації цього інтерфейсу буде відправлення ці повідомлення за допомогою вашого контролю повідомлення карта, після налаштування миші координує належним чином. Ви можете обробляти ці повідомлення як звичайний вікно повідомлення, додавши відповідні записи на карті повідомлення.
В елементі керування, без вікон ви повинні завжди використовувати функції член COleControl замість того, щоб відповідних функцій CWnd -членів або їх відповідні функції Windows API.
OLE об'єктів керування також можна створити вікно тільки тоді, коли вони стають активними, але кількість роботи, які необхідні для переходу неактивні активних йде вгору, і швидкість переходу йде вниз. Є випадки, коли це проблема: наприклад, розглянемо сітку текстових полів. Коли cursoring вгору і вниз по стовпчику, кожний елемент керування має бути на місці вмикається і потім вимикається. Швидкість активний/неактивний перехід буде безпосередньо впливають на швидкість перегляду.
Щоб отримати додаткові відомості про створення Рамкова керування OLE, перегляньте статті Елементи керування ActiveX і створити програму з ActiveX ControlWizard в Visual C++ програміста керівництва. Докладніше про додавання функціональності Крім основну структуру, перегляньте Створення елемента керування ActiveX (коло підручник) в Visual C++ підручники. Для отримання інформації про оптимізацію елементи керування OLE, у тому числі без вікон і мерехтіння вільні елементи керування, перегляньте елементи керування ActiveX: оптимізація в Visual C++ програміста керівництво.
# включити lt;afxctl.h>
|&Nbsp членів класу ; Базовий клас | Ієрархічна діаграма
Зразки CIRC3 MFC зразків | MFC зразок DRAWPIC | MFC зразок TESTHELP
Дивіться також COlePropertyPage, CFontHolder, CPictureHolder