MFC – ovládací prvky ActiveX: Implementace rozšířených vlastností
Tento článek popisuje témata související s implementací rozšířených vlastností v ovládacím prvku technologie ActiveX.
Důležité
technologie ActiveX je starší technologie, která by se neměla používat pro nový vývoj. Další informace o moderních technologiích, které nahrazují technologie ActiveX, najdete v tématu technologie ActiveX Ovládací prvky.
Vlastnosti jen pro čtení a jen pro zápis
Průvodce přidáním vlastnosti poskytuje rychlou a snadnou metodu pro implementaci vlastností jen pro čtení nebo jen pro zápis pro ovládací prvek.
Implementace vlastnosti jen pro čtení nebo jen pro zápis
Načtěte projekt ovládacího prvku.
V zobrazení tříd rozbalte uzel knihovny ovládacího prvku.
Kliknutím pravým tlačítkem myši na uzel rozhraní ovládacího prvku (druhý uzel uzlu knihovny) otevřete místní nabídku.
V místní nabídce klepněte na tlačítko Přidat a potom klepněte na tlačítko Přidat vlastnost.
Tím se otevře Průvodce přidáním vlastnosti.
Do pole Název vlastnosti zadejte název vlastnosti.
Pro typ implementace klepněte na tlačítko Get/Set Metody.
V poli Typ vlastnosti vyberte správný typ vlastnosti.
Pokud chcete vlastnost jen pro čtení, zrušte zaškrtnutí políčka Nastavit název funkce. Pokud chcete vlastnost jen pro zápis, vymažte název funkce Get.
Klikněte na Finish (Dokončit).
Když to uděláte, Průvodce přidáním vlastnosti vloží funkci SetNotSupported
nebo GetNotSupported
do položky mapy dispečeru místo normální sady nebo funkce Get.
Pokud chcete změnit existující vlastnost jen pro čtení nebo jen pro zápis, můžete mapu odeslání upravit ručně a odebrat nepotřebnou sadu nebo funkci Get z třídy ovládacího prvku.
Pokud chcete, aby vlastnost byla podmíněně určená jen pro čtení nebo jen pro zápis (například pouze v případě, že ovládací prvek pracuje v určitém režimu), můžete funkci Set nebo Get poskytnout normálně a případně ji zavolatSetNotSupported
.GetNotSupported
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
, pokud m_bReadOnlyMode
má datový člen hodnotu TRUE. Pokud false, vlastnost je nastavena na novou hodnotu.
Vrácení kódů chyb z vlastnosti
Pokud chcete označit, že při pokusu o získání nebo nastavení vlastnosti došlo k chybě, použijte COleControl::ThrowError
funkci, která jako parametr přebírá kód SCODE (stavový kód). Můžete použít předdefinovaný kód SCODE nebo definovat vlastní. Seznampředch objektům (SCOD) technologie ActiveX technologie ActiveX najdete seznam předdefinovaných objektů SCODe a
Pomocné funkce existují pro nejběžnější předdefinované SCODEs, jako je COleControl::SetNotSupported, COleControl::GetNotSupported a COleControl::SetNotPermitted.
Poznámka
ThrowError
je určena pouze jako způsob vrácení chyby z funkce Get nebo Set vlastnosti nebo metody automatizace. Toto jsou jediné časy, kdy bude v zásobníku k dispozici příslušná obslužná rutina výjimky.
Další informace o vytváření sestav výjimek v jiných oblastech kódu naleznete v tématu COleControl::FireError a část Zpracování chyb v ovládacím prvku technologie ActiveX v článku technologie ActiveX Ovládací prvky: Pokročilá témata.
Viz také
MFC – ovládací prvky ActiveX
MFC – ovládací prvky ActiveX: Vlastnosti
MFC – ovládací prvky ActiveX: Metody
COleControl – třída