MFC-ActiveX-Steuerelemente: Weiterführende Eigenschaftenimplementierung
In diesem Artikel werden Themen im Zusammenhang mit der Implementierung erweiterter Eigenschaften in einem ActiveX-Steuerelement beschrieben.
Wichtig
ActiveX ist eine Legacytechnologie, die nicht für neue Software verwendet werden sollte. Weitere Informationen zu modernen Technologien, die ActiveX ablösen, finden Sie unter ActiveX-Steuerelemente.
Schreibgeschützte und schreibgeschützte Eigenschaften
Der Assistent zum Hinzufügen von Eigenschaften bietet eine schnelle und einfache Methode zum Implementieren schreibgeschützter oder schreibgeschützter Eigenschaften für das Steuerelement.
So implementieren Sie eine schreibgeschützte oder schreibgeschützte Eigenschaft
Laden Sie das Steuerelementprojekt.
Erweitern Sie in der Klassenansicht den Bibliotheksknoten des Steuerelements.
Klicken Sie mit der rechten Maustaste auf den Schnittstellenknoten des Steuerelements (den zweiten Knoten des Bibliotheksknotens), um das Kontextmenü zu öffnen.
Klicken Sie im Kontextmenü auf Hinzufügen und dann auf Eigenschaft hinzufügen.
Dadurch wird der Assistent zum Hinzufügen von Eigenschaften geöffnet.
Geben Sie im Feld "Eigenschaftsname " den Namen Ihrer Eigenschaft ein.
Klicken Sie unter Implementierungstypauf Get/Set-Methoden.
Wählen Sie im Feld "Eigenschaftentyp " den richtigen Typ für die Eigenschaft aus.
Wenn Sie eine schreibgeschützte Eigenschaft wünschen, löschen Sie den Namen der Set-Funktion. Wenn Sie eine schreibgeschützte Eigenschaft verwenden möchten, löschen Sie den Namen der Get-Funktion.
Klicken Sie auf Fertig stellen.
In diesem Fall fügt der Assistent zum Hinzufügen von Eigenschaften die Funktion SetNotSupported
oder GetNotSupported
den Verteilerzuordnungseintrag anstelle einer normalen Set- oder Get-Funktion ein.
Wenn Sie eine vorhandene Eigenschaft so ändern möchten, dass sie schreibgeschützt oder schreibgeschützt ist, können Sie die Verteilerzuordnung manuell bearbeiten und die unnötige Set- oder Get-Funktion aus der Steuerelementklasse entfernen.
Wenn eine Eigenschaft bedingt schreibgeschützt oder schreibgeschützt sein soll (z. B. nur wenn Das Steuerelement in einem bestimmten Modus ausgeführt wird), können Sie die Set- oder Get-Funktion wie gewohnt bereitstellen und gegebenenfalls die SetNotSupported
Funktion oder GetNotSupported
Funktion aufrufen. Beispiel:
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();
}
}
In diesem Codebeispiel wird aufgerufenSetNotSupported
, wenn das m_bReadOnlyMode
Datenelement WAHR ist. Wenn FALSE, wird die Eigenschaft auf den neuen Wert festgelegt.
Zurückgeben von Fehlercodes aus einer Eigenschaft
Um anzugeben, dass beim Versuch, eine Eigenschaft abzurufen oder festzulegen, ein Fehler aufgetreten ist, verwenden Sie die COleControl::ThrowError
Funktion, die einen SCODE (Statuscode) als Parameter verwendet. Sie können einen vordefinierten SCODE verwenden oder einen eigenen definieren. Eine Liste vordefinierter SCODEs und Anweisungen zum Definieren benutzerdefinierter SCODEs finden Sie unter "Behandeln von Fehlern in Ihrem ActiveX-Steuerelement " im Artikel ActiveX-Steuerelemente: Erweiterte Themen.
Hilfsfunktionen sind für die am häufigsten verwendeten vordefinierten SCODEs vorhanden, z . B. COleControl::SetNotSupported, COleControl::GetNotSupported und COleControl::SetNotPermitted.
Hinweis
ThrowError
soll nur als Mittel verwendet werden, um einen Fehler aus der Get- oder Set-Funktion einer Eigenschaft oder einer Automatisierungsmethode zurückzugeben. Dies sind die einzigen Male, in denen der entsprechende Ausnahmehandler im Stapel vorhanden ist.
Weitere Informationen zum Melden von Ausnahmen in anderen Codebereichen finden Sie unter "COleControl::FireError " und im Abschnitt "Behandeln von Fehlern in Ihrem ActiveX-Steuerelement " im Artikel "ActiveX-Steuerelemente: Erweiterte Themen".
Siehe auch
MFC ActiveX Controls (MFC-ActiveX-Steuerelemente)
MFC-ActiveX-Steuerelemente: Eigenschaften
MFC-ActiveX-Steuerelemente: Methoden
COleControl-Klasse