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


Отключение параметра "Активация при отображении"

Элемент управления имеет два основных состояния: активные и неактивные. Традиционно эти состояния были различаются по признаку того, был ли элемент управления окном. Активный элемент управления имел окно; Неактивный элемент управления не был. При внедрении активации без окон это различие больше не является универсальным, но по-прежнему применяется ко многим элементам управления.

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

Многие элементы управления не должны быть активными в течение всего времени, которое они отображаются в контейнере. Часто элемент управления может оставаться в неактивном состоянии до тех пор, пока пользователь не выполнит операцию, требующую, чтобы она стала активной (например, щелкнув мышью или нажав клавишу TAB). Чтобы элемент управления оставался неактивным, пока контейнер не должен активировать его, удалите флаг OLEMISC_ACTIVATEWHENVISIBLE из других флагов элемента управления:

static const DWORD BASED_CODE _dwNVC_MFC_AxOptOleMisc =
    OLEMISC_SETCLIENTSITEFIRST |
    OLEMISC_INSIDEOUT |
    OLEMISC_CANTLINKINSIDE |
    OLEMISC_RECOMPOSEONRESIZE;

Флаг OLEMISC_ACTIVATEWHENVISIBLE автоматически опущен при отключении параметра "Активировать, когда видимый" на странице "Элемент управления Параметры" мастера элементов управления MFC ActiveX при создании элемента управления.

См. также

Элементы ActiveX в MFC. Оптимизация