Sdílet prostřednictvím


MFC – ovládací prvky ActiveX: Implementace rozšířených vlastností

Tento článek popisuje témata týkající se implementace rozšířené vlastnosti ovládacího prvku ActiveX:

  • Vlastnosti jen pro čtení a zápis pouze pro

  • Vrací chybové kódy z vlastnosti

Vlastnosti jen pro čtení a zápis pouze pro

Průvodce přidáním vlastnosti poskytuje rychlý a snadný způsob, jak implementovat vlastnosti ovládacího prvku jen pro čtení nebo jen pro zápis.

Chcete-li implementovat vlastnost jen pro čtení nebo jen pro zápis

  1. Načtěte projektu ovládacího prvku.

  2. V zobrazení tříd rozbalte uzel knihovny ovládacího prvku.

  3. Klepněte pravým tlačítkem na uzel rozhraní pro ovládací prvek (druhý uzel uzlu knihovny) a místní nabídce.

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

    Otevře Průvodce přidáním vlastnosti.

  5. V Název vlastnosti zadejte název své vlastnosti.

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

  7. V Vlastnost typu vyberte správný typ pro vlastnost.

  8. Pokud chcete vlastnost jen pro čtení, zrušte nastavení název funkce.Jestliže chcete vlastnost jen pro zápis, zrušte název funkce Get.

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

Když toto provedete, Průvodce přidáním vlastnosti vloží funkci SetNotSupported nebo GetNotSupported při odeslání namísto normální nastavení nebo funkce Get.

Pokud chcete změnit existující vlastnost jen pro čtení nebo jen pro zápis, můžete ručně upravit mapování odeslání a odebrat nepotřebné funkce Set nebo Get ze třídy control.

Jestliže chcete vlastnost podmíněně jen pro čtení nebo jen pro zápis (např. pouze v případě, že váš ovládací prvek pracuje v určitém režimu), můžete zadat funkci Set nebo Get jako normální a volat SetNotSupported nebo GetNotSupported funkce, kde je to vhodné.Příklad:

void CMyAxUICtrl::SetMyProperty(SHORT newVal)
{
   AFX_MANAGE_STATE(AfxGetStaticModuleState());

   if (m_bReadOnlyMode)   //  some control-specific state
   {
      SetNotSupported();
   }
   else
   {
      m_iPropVal = newVal;   //  set property as normal
      SetModifiedFlag();
   }
}

Tento ukázkový kód volá SetNotSupported -li m_bReadOnlyMode je datový člen TRUE.Pokud FALSE, pak je vlastnost nastavena na novou hodnotu.

Vrací chybové kódy z vlastnosti

Slouží k označení, že došlo k chybě při pokusu získat nebo nastavit vlastnost, COleControl::ThrowError funkce, která má SCODE (stavový kód) jako parametr.Můžete použít předdefinované šablony, SCODE nebo definovat vlastní.Seznam předdefinovaných SCODEs a pokyny týkající se definování vlastní SCODEs, viz Zpracování chyb v svůj ovládací prvek ActiveX v článku ovládací prvky ActiveX: Upřesnit témata.

Pomocné funkce pro nejběžnější předdefinované existují SCODEs, jako například COleControl::SetNotSupported, COleControl::GetNotSupported, a COleControl::SetNotPermitted.

[!POZNÁMKA]

   ThrowErrorje určen pro použití pouze jako prostředek k návratu k chybě v jeho vlastnost získána nebo nastavena funkce nebo některá metoda automatizace.Jedná se o jedinou kolikrát je odpovídající obslužná rutina bude prezentovat v zásobníku.

Další informace o hlášení výjimek v jiných oblastech kódu naleznete v tématu COleControl::FireError a Zpracování chyb v svůj ovládací prvek ActiveX v článku ovládací prvky ActiveX: Upřesnit témata.

Viz také

Referenční dokumentace

Třída COleControl

Koncepty

MFC – ovládací prvky ActiveX

MFC – ovládací prvky ActiveX: Vlastnosti

MFC – ovládací prvky ActiveX: Metody