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


ActiveX-элементы MFC: оптимизация

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

Это важно

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

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

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

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

Вы можете реализовать многие из этих оптимизаций с помощью Мастера создания управляющих элементов MFC ActiveX на странице Параметры элемента управления.

Параметры оптимизации OLE мастера управления ActiveX MFC

Настройка элемента управления в мастере управления ActiveX MFC Действие Дополнительные сведения
Активировать, когда видим флажок Очистить Отключение опции «Активация, когда видимо»
Флажок включения без окна Выберите Предоставление активации без окон
Флажок контекста устройства без переключа Выберите Использование контекста неотрезанного устройства
Флажок для включения режима без мерцания Выберите Предоставление активации Flicker-Free
Уведомления указателя мыши при неактивном флажке Выберите Предоставление взаимодействия с мышью в неактивном состоянии
Флажок "Оптимизированный код рисования" Выберите Оптимизация чертежа управления

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

Дополнительные сведения можно найти здесь

См. также

Элементы управления ActiveX MFC