Sdílet prostřednictvím


Ovládací prvky MFC ActiveX: Přidání vlastní vlastnosti

Vlastní vlastnosti se liší od akcií vlastnosti, že vlastní vlastnosti již nejsou implementována tak, COleControl třídy.Vlastní vlastnosti lze vystavit určitého státu nebo vzhled programátor pomocí ovládací prvek ActiveX.

Tento článek popisuje, jak přidat vlastní vlastnost ovládacího prvku ActiveX pomocí Průvodce přidáním vlastností a vysvětluje výsledné úpravy kódu.Témata zahrnují:

  • Pomocí Průvodce přidáním vlastnosti přidat vlastní vlastnosti

  • Přidat vlastnost Průvodce změny vlastních vlastností

Vlastní vlastnosti pocházet v implementaci čtyři odrůdy: členské proměnné, členské proměnné s oznámení, metody Get a Set a Parameterized.

  • Členské proměnné implementace

    Tato implementace představuje vlastnosti státu jako členské proměnné třídy řízení.Používejte provádění členské proměnné není důležité znát při změně hodnoty vlastnosti.Tato implementace vytvoří tři typy nejméně částku podpory kód pro vlastnost.Makro položku mapy odeslání členské proměnné implementace je DISP_PROPERTY.

  • Členské proměnné s implementací oznámení

    Tato implementace je tvořen členské proměnné a funkce oznámení vytvořené pomocí průvodce Přidat vlastnost.Funkce oznámení rámci nazývá automaticky po změně hodnoty vlastnosti.Používejte proměnné členů s implementací oznámení oznámení po změně hodnoty vlastnosti.Tato implementace vyžaduje více času, protože vyžaduje volání funkce.Makro položku mapy odeslání pro tuto implementaci je DISP_PROPERTY_NOTIFY.

  • Implementace metody GET a Set

    Tato implementace tvoří dvojici funkcí členů třídy řízení.Implementace metody Get a Set automaticky volá Get člen sady členů a funkce aktuální hodnotu vlastnosti požadavku uživatele na ovládací prvek změnit vlastnosti požadavku uživatele na ovládací prvek.Tato implementace použijte, pokud potřebujete vypočítat hodnotu vlastnosti v době spuštění ověřit hodnotu ovládacího prvku uživatelem předán před změnou vlastnosti skutečné, nebo implementovat vlastnost typu nebo zápis jen pro čtení.Makro položku mapy odeslání pro tuto implementaci je DISP_PROPERTY_EX.V následující části pomocí Průvodce přidáním vlastnosti přidat vlastní vlastnosti, používá vlastní vlastnost CircleOffset prokázat tuto implementaci.

  • Parametrizované implementace

    Průvodce přidáním vlastností podporuje parametrizované provádění.Přístup k množině hodnot pomocí jedinou vlastnost ovládacího prvku lze parametrizované vlastností (někdy nazývané vlastnosti pole).Makro položku mapy odeslání pro tuto implementaci je DISP_PROPERTY_PARAM.Další informace o implementaci tohoto typu viz provádění vlastnost Parametrizovaná v článku ovládací prvky ActiveX: upřesňující témata.

Pomocí přidat vlastnost průvodce přidat vlastní vlastnosti

Následující postup ukazuje přidání vlastních vlastností, CircleOffset, který používá implementace metody Get a Set.Vlastní vlastnost CircleOffset umožňuje uživateli ovládacího prvku posun kruhu od středu ohraničovacího rámečku ovládacího prvku.Je velmi podobný postup pro přidání vlastních vlastností s implementací než metody Get a Set.

Stejný postup lze použít také jiné vlastnosti, které chcete přidat.Nahraďte vaší vlastní vlastnost název CircleOffset název vlastnosti a parametry.

Přidat vlastní vlastnosti CircleOffset pomocí Průvodce přidáním vlastností

  1. Načtení ovládacího prvku projektu.

  2. V zobrazení třídy rozbalte knihovnu ovládacího prvku.

  3. Uzel rozhraní pro ovládání (druhý uzel uzel knihovny) tlačítkem otevřete místní nabídku.

  4. V místní nabídce klepněte na příkaz Přidat a klepněte na tlačítko Přidat vlastnost.

    Otevře Průvodce přidat vlastnost.

  5. V Název vlastnosti zadejte CircleOffset.

  6. Pro Typ implementace, klepněte na tlačítko Metody Get a Set.

  7. V Vlastnost typu vyberte položku krátké.

  8. Zadejte jedinečné názvy pro získání a nastavení funkcí nebo přijměte výchozí názvy.

  9. Klepněte na tlačítko Dokončit.

Změny vlastností Průvodce přidat vlastní vlastnosti

Při přidání vlastních vlastností CircleOffset průvodce Přidat vlastnost změní záhlaví (.H) a provádění (.CPP) soubory třídy řízení.

Následující řádky jsou přidány do.H souboru deklarovat dvě funkce nazývá GetCircleOffset a SetCircleOffset:

SHORT GetCircleOffset(void);
void SetCircleOffset(SHORT newVal);

Následující řádek je přidán do ovládacího prvku.IDL souboru:

[id(2), helpstring("property CircleOffset")] SHORT CircleOffset;
[id(3), helpstring("property MyProperty")] SHORT MyProperty;

Tento řádek přiřadí určité číslo ID z metody pozici v seznamu metod a vlastností průvodce Přidat vlastnost vlastnost CircleOffset.

Navíc následující řádek do mapy odeslání (v.CPP soubor třídy řízení) k mapování vlastnosti CircleOffset ovládacího prvku dvě obslužné rutiny funkce:

DISP_PROPERTY_EX_ID(CMyAxUICtrl, "CircleOffset", dispidCircleOffset, GetCircleOffset, SetCircleOffset, VT_I2)

Nakonec implementace GetCircleOffset a SetCircleOffset funkce jsou přidány na konec ovládacího prvku.Soubor CPP.Ve většině případů budete upravovat funkce Get vrátit hodnotu vlastnosti.Nastavení funkce zpravidla obsahují kód, který má být spuštěn před nebo po změně vlastností.

void CMyAxUICtrl::SetCircleOffset(SHORT /*newVal*/)
{
   AFX_MANAGE_STATE(AfxGetStaticModuleState());

   // TODO: Add your property handler code here

   SetModifiedFlag();
}

Poznámka, že průvodce Přidat vlastnost automaticky přidá na volání na SetModifiedFlag, do těla funkce sada.Volání této funkce označí ovládacího prvku, jako je upraven.Pokud ovládací prvek byl změněn, nového stavu budou uloženy po uložení kontejneru.Tato funkce by měla být volána při každé změně hodnoty vlastnosti, uložen jako součást trvalý stav ovládacího prvku.

Viz také

Referenční dokumentace

Třída COleControl

Koncepty

Ovládací prvky MFC ActiveX

Ovládací prvky MFC ActiveX: vlastnosti

Ovládací prvky MFC ActiveX: metody