Sdílet prostřednictvím


MFC – ovládací prvky ActiveX

Ovládací prvek ActiveX je opakovaně použitelná softwarová komponenta založená na modelu COM (Component Object Model), která podporuje širokou škálu funkcí technologie OLE a může být přizpůsobená různým potřebám softwaru.Ovládací prvky ActiveX jsou navrženy pro použití v běžných kontejnerech ovládacího prvku ActiveX a v Internetu na webových stránkách.Ovládací prvky ActiveX lze vytvořit buď pomocí rozhraní MFC popsaného zde nebo pomocí knihovny Active Template Library (ATL).

Ovládací prvek ActiveX se dokáže vykreslit do vlastního okna, reagovat na události (například kliknutí myší) a lze jej spravovat pomocí rozhraní zahrnujícího vlastnosti a metody podobné těm, které obsahují automatizační objekty.

Tyto ovládací prvky lze vyvíjet pro mnoho účelů, například přístup do databáze, monitorování dat nebo vykreslování do grafu.Kromě jejich přenositelnosti podporují ovládací prvky ActiveX funkce, které byly prvkům ActiveX dříve nedostupné, například kompatibilitu s existujícími kontejnery OLE a schopnost integrovat své nabídky do nabídek těchto kontejnerů.Dále, ovládací prvky ActiveX plně podporují automatizaci, která umožňuje prvku vystavit vlastnosti pro čtení a zápis a sadu metod, které lze volat jeho uživatelem.

Lze vytvořit ovládací prvky ActiveX bez oken či prvky, které po své aktivaci okno pouze vytvoří.Ovládací prvky bez okna urychlují zobrazení aplikace a umožňují existenci průhledných a neobdélníkových prvků.Vlastnosti ovládacího prvku ActiveX lze načít také asynchronně.

Ovládací prvek ActiveX je implementován jako server uvnitř procesu (obvykle malý objekt), který lze použít v libovolném kontejneru OLE.Povšimněte si, že všechny funkce ovládacího prvku ActiveX jsou dostupné pouze v případě, že je použit uvnitř kontejneru OLE navrženého pro komunikaci s prvky ActiveX.Seznam kontejnerů podporujících ovládací prvky ActiveX naleznete v tématu Přenos ovládacích prvků ActiveX do jiných aplikací.Tento typ kontejneru, dále jen "kontejner ovládacího prvku," dokáže pracovat s ovládacím prvkem ActiveX pomocí jeho vlastností a metod a přijímá od něj oznámení ve formě událostí.Následující obrázek znázorňuje tuto interakci.

Interakce mezi kontejnerem ovládacího prvku ActiveX a ovládacím prvkem ActiveX v okně

Volné kontejner ovládacího prvku ActiveX a ovládací prvek

Některé aktuální informace o optimalizaci ovládacích prvků ActiveX naleznete v tématu Ovládací prvky ActiveX MFC: Optimalizace.

Informace o tvorbě ovládacích prvků ActiveX MFC naleznete v tématu Vytvoření projektu ovládacího prvku ActiveX.

Další informace naleznete v části:

Základní součásti ovládacího prvku ActiveX

Ovládací prvek ActiveX používá několik programových prvků, kterými efektivně komunikuje s kontejnerem ovládacího prvku a s uživatelem.Těmito prvku jsou třída COleControl, sada funkcí vyvolávající události a mapa odeslání.

Každý vyvinutý objekt ovládacího prvku ActiveX dědí výkonnou sadu funkcí ze své základní třídy knihovny MFC, třídy COleControl.Mezi tyto funkce patří aktivace na místě a automatizační logika.Třída COleControl může objektu ovládacího prvku poskytnout stejné funkce jako objekt okna MFC a navíc schopnost vyvolat události.Třída COleControl může také poskytnout ovládací prvky bez oken, které pro pomoc s funkcemi, které poskytuje okno (například zachycení myši, fokus klávesnice, posouvání), spoléhají na své kontejnery, ale nabízí mnohem rychlejší zobrazení.

Jelikož třída ovládacího prvku je odvozena z třídy COleControl, dědí schopnost posílat (tzv. "vyvolat") kontejneru ovládacího prvku zprávy (tzv. události) v případě, že jsou splněny určité podmínky.Tyto události se používají pro oznámení kontejneru ovládacího prvku, že se v ovládacím prvku stalo něco důležitého.Přidáním parametrů k události lze kontejneru ovládacího prvku zaslat dodatečné informace o události.Další informace o událostech ovládacích prvků ActiveX naleznete v článku Ovládací prvky ActiveX MFC: Události.

Posledním prvkem je mapa odeslání, která se používá k vystavení sady funkcí (zvaných metody) a atributů (zvaných vlastností) uživateli ovládacího prvku.Vlastnosti umožňují kontejneru ovládacího prvku nebo uživateli manipulovat s prvkem různými způsoby.Uživatel může změnit vzhled ovládacího prvku, změnit určité jeho hodnoty nebo vznést na prvek požadavky, například na přístup k určitým datům, které ovládací prvek udržuje.Toto uživatelské rozhraní je určeno vývojářem ovládacího prvku a je definování pomocí Zobrazení tříd.Další informace o metodách a vlastnostech ovládacích prvků ActiveX naleznete v článcích Ovládací prvky ActiveX MFC: Metody a Vlastnosti.

Interakce mezi ovládacími prvky s okny a kontejnery ovládacích prvků ActiveX

Je-li ovládací prvek použit uvnitř kontejneru ovládacího prvku, používá pro komunikaci dva mechanismy: vystavuje vlastnosti a metody a vyvolává události.Následující obrázek ukazuje, jak jsou tyto dva mechanismy implementovány.

Komunikace mezi kontejnerem ovládacího prvku ActiveX a prvkem samotným

Ovládací prvek ActiveX komunikuje s jeho kontejneru

Předchozí obrázek znázorňuje také způsob, jakým ovládací prvek zpracovává jiná rozhraní OLE (kromě automatizace a událostí).

Veškerou komunikaci ovládacího prvku s kontejnerem zajišťuje třída COleControl.Pro zpracování některých požadavků kontejneru zavolá třída COleControl členské funkce implementované ve třídě ovládacího prvku.Tímto způsobem jsou zpracovány všechny metody a některé vlastnosti.Třída ovládacího prvku může také započít komunikaci s kontejnerem zavoláním členských funkcí třídy COleControl.Tímto způsobem jsou vyvolávány události.

Aktivní a neaktivní stavy ovládacího prvku ActiveX

Ovládací prvek má dva základní stavy: aktivní a neaktivní.Dříve bylo zvykem, že tyto stavy byly rozlišeny skutečností, zda ovládací prvek má okno.Aktivní ovládací prvek okno měl, neaktivní nikoli.Se zavedením aktivace bez oken není již toto rozlišení univerzální, pro mnoho ovládacích prvků je ale stále platné.

Ovládací prvek bez oken při své aktivaci vyvolá zachycení myši, fokus klávesnice, posouvání a jiné služby okna ze svého kontejneru.Lze také poskytnout interakce myší neaktivním ovládacím prvkům stejně jako vytvořit prvky, které před vytvořením okna čekají na aktivaci.

Ovládací prvek s oknem je po své aktivaci schopen plně spolupracovat s kontejnerem ovládacího prvku, uživatelem a systémem Windows.Obrázek níže ukazuje komunikační kanály mezi ovládacím prvkem ActiveX, kontejnerem ovládacího prvku a operačním systémem.

Zpracování zpráv systému Windows v ovládacím prvku ActiveX s oknem (je-li aktivní)

Zpracování v aktivní ovládací prvek ActiveX okna zpráv

Serializace

Schopnost serializovat data, někdy označovaná také jako trvalost, umožňuje ovládacímu prvku zapisovat hodnoty svých vlastností do trvalého úložiště.Ovládací prvky lze znovu vytvořit přečtením stavu objektu z úložiště.

Povšimněte si, že ovládací prvek není odpovědný za získání přístupu k paměťovému médiu.Namísto toho je kontejner ovládacího prvku odpovědný za poskytnutí paměťových médií ovládacímu prvku ve vhodných chvílích.Další informace o serializaci naleznete v článku Ovládací prvky ActiveX MFC: Serializace.Informace o optimalizace serializace naleznete v části Optimalizace trvalosti a inicializace tématu Ovládací prvky ActiveX: Optimalizace

Instalace tříd a nástrojů ovládacích prvků ActiveX

Po instalaci jazyka Visual C++ jsou třídy ovládacích prvků ActiveX knihovny MFC a konečné a ladicí běhové knihovny DLL automaticky nainstalovány, pokud byly v instalačním programu zvoleny Ovládací prvky ActiveX (ve výchozím nastavení zvoleny jsou).

Ve výchozím nastavení jsou třídy a nástroje ovládacích prvků ActiveX nainstalovány v následujících podadresářích adresy \Program Files\Microsoft Visual Studio .NET:

  • \Common7\Tools

    Obsahuje soubory Testovacího kontejneru (TstCon32.exe a jeho soubory nápovědy).

  • \Vc7\atlmfc\include

    Obsahuje soubory k zahrnutí potřebné k vyvíjení ovládacích prvků ActiveX pomocí knihovny MFC

  • \Vc7\atlmfc\src\mfc

    Obsahuje zdrojové kódy určitých tříd ovládacích prvků ActiveX v knihovně MFC

  • \Vc7\atlmfc\lib

    Obsahuje knihovny potřebné k vyvíjení ovládacích prvků ActiveX pomocí knihovny MFC

Obsahuje také ukázky ovládacích prvků ActiveX MFC.Další informace o těchto ukázkách naleznete v tématu Ukázky ovládacích prvků: Ovládací prvky ActiveX založené na knihovně MFC

Viz také

Další zdroje

Prvky uživatelského rozhraní (MFC)