Udostępnij za pośrednictwem


Kontrolki ActiveX MFC: optymalizacja

W tym artykule opisano techniki, których można użyć do optymalizacji kontrolek ActiveX w celu uzyskania lepszej wydajności.

Ważne

ActiveX to starsza technologia, która nie powinna być używana do tworzenia nowych rozwiązań. Aby uzyskać więcej informacji na temat nowoczesnych technologii zastępujących activex, zobacz Kontrolki ActiveX.

Tematy Wyłączanie opcji Aktywuj przy wyświetleniu i Zapewnianie interakcji myszką, gdy nieaktywne omawiają kontrolki, które nie tworzą okna, dopóki nie zostaną aktywowane. W temacie Zapewnianie aktywacji bez okien omówiono mechanizmy kontroli, które nigdy nie tworzą okna, nawet gdy są aktywowane.

W systemie Windows istnieją dwie główne wady związane z obiektami OLE: kiedy są aktywne, uniemożliwiają one obiektom być przezroczystymi lub nierectangularnymi, a także dodają znaczne obciążenie do instancjonowania i wyświetlania kontrolek. Zazwyczaj tworzenie okna zajmuje 60 procent czasu tworzenia kontrolki. W przypadku jednego wspólnego okna (zazwyczaj kontenera) i pewnego kodu dystrybucji, kontrolka otrzymuje te same usługi okna, zazwyczaj bez utraty wydajności. Posiadanie okna jest w większości niepotrzebnym obciążeniem dla obiektu.

Niektóre optymalizacje niekoniecznie zwiększają wydajność, gdy kontrolka jest używana w niektórych kontenerach. Na przykład kontenery wydane przed 1996 r. nie obsługują aktywacji bez okien, dlatego zaimplementowanie tej funkcji nie zapewni korzyści w starszych kontenerach. Jednak prawie każdy kontener obsługuje utrwalanie, więc optymalizacja kodu utrwalania Twojej kontrolki prawdopodobnie poprawi wydajność w dowolnym kontenerze. Jeśli kontrolka ma być używana z jednym konkretnym typem kontenera, warto zbadać, która z tych optymalizacji jest obsługiwana przez ten kontener. Ogólnie rzecz biorąc, należy spróbować zaimplementować jak najwięcej tych technik, które są odpowiednie dla twojego konkretnego elementu sterującego, aby zapewnić, że działa on jak najlepiej w szerokiej gamie kontenerów.

Wiele z tych optymalizacji można zaimplementować za pomocą Kreatora kontrolek ActiveX MFC na stronie Ustawienia sterowania .

Opcje optymalizacji OLE Kreatora formantów ActiveX MFC

Ustawienie kontrolki w Kreatorze kontrolek ActiveX MFC Akcja Więcej informacji
Uaktywnij, gdy jest widoczne pole wyboru Przejrzysty Wyłączanie opcji Aktywuj po wyświetleniu
Pole wyboru Aktywacja bez okna Wybierz Zapewnianie aktywacji bez okien
Pole wyboru Kontekst urządzenia bez przycinania Wybierz Korzystanie z niezacieniowanego kontekstu urządzenia
Aktywacja bez migotania pole wyboru Wybierz Zapewnianie aktywacji Flicker-Free
Powiadomienia wskaźnika myszy, gdy pole wyboru jest nieaktywne Wybierz Zapewnianie interakcji myszy podczas nieaktywności
Pole wyboru Zoptymalizowany kod rysunku Wybierz Optymalizacja rysunku kontrolnego

Aby uzyskać szczegółowe informacje o funkcjach składowych, które implementują te optymalizacje, zobacz COleControl.

Aby uzyskać więcej informacji, zobacz:

Zobacz także

Kontrolki ActiveX MFC