MFC-ActiveX-Steuerelemente: Erweiterte Eigenschaft-Implementierung
In diesem Artikel werden die Themen, die zum Implementieren erweiterter Eigenschaften in einem ActiveX-Steuerelement verknüpft sind:
Schreibgeschützt und lesegeschützte Eigenschaften
Fehlercodes von einer Eigenschaft zurückgeben
Schreibgeschützt und lesegeschützte Eigenschaften
Der Assistent zum Hinzufügen von Eigenschaften stellt eine schnelle und einfache Möglichkeit, schreibgeschützt oder lesegeschützte Eigenschaften für das Steuerelement zu implementieren.
So fügen Sie ein schreibgeschütztes oder eine lesegeschützte Eigenschaft implementieren
Laden Sie das Projekt des Steuerelements.
Erweitern Sie in der Klassenansicht den Knoten Bibliothek des Steuerelements.
Klicken Sie mit der rechten Maustaste auf den Knoten Schnittstellen für das Steuerelement (der zweite Knoten des Knotens Bibliothek), um das Kontextmenü zu öffnen.
Klicken Sie im Kontextmenü auf Hinzufügen und klicken Sie dann auf Eigenschaft hinzufügen.
Dadurch wird Assistent zum Hinzufügen von Eigenschaften.
Geben Sie im Feld Eigenschaftenname den Namen der Eigenschaft ein.
Für Implementierungstyp Klicken Sie auf Get/Set-Methoden.
Geben Sie im Feld Eigenschaftentyp Wählen Sie den richtigen Typ für die Eigenschaft aus.
Wenn Sie eine schreibgeschützte Eigenschaft festlegen möchten, deaktivieren Sie die Option Funktionsnamen.Wenn Sie eine lesegeschützte Eigenschaft sollen, deaktivieren Sie den Abrufens funktionsnamen.
Klicken Sie auf Fertig stellen.
In diesem Fall fügt der Assistent zum Hinzufügen von Eigenschaften oder SetNotSupported die Funktion Dispatchzuordnungs im GetNotSupported Eintrag anstelle eines normalen Menge ein oder ruft diese Funktion ab.
Wenn Sie eine vorhandene Eigenschaft ändern möchten, um schreibgeschützt oder lesegeschützt sein sollen, können Sie die Dispatchzuordnung manuell bearbeiten und den unnötigen Gruppe entfernen oder Funktion aus der Steuerelementklasse abrufen.
Wenn Sie eine Eigenschaft bedingt schreibgeschützt oder lesegeschützt sein soll (z. B. nur, wenn das Steuerelement in einem bestimmten Modus ausgeführt wird) können Sie die Gruppe als normal Funktion bereitstellen oder abrufen und rufen die SetNotSupported oder Funktion GetNotSupported ggf. an.Beispiele:
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 SetNotSupported an, wenn der m_bReadOnlyMode Datenmember TRUE ist.Wenn FALSE, die Eigenschaft auf den neuen Wert festgelegt wird.
Fehlercodes von einer Eigenschaft zurückgeben
So geben Sie an, dass ein Fehler aufgetreten ist, beim Abrufen oder Festlegen einer Eigenschaft, die COleControl::ThrowError-Funktion verwenden, die SCODE (Statuscode) als Parameter akzeptiert.Sie können vordefinierte SCODE verwenden oder eine eigene definieren.Eine Liste mit vordefiniertem SCODE s und Anweisungen zum Definieren von benutzerdefiniertem SCODE s, finden Sie in den Artikeln Behandeln von Fehlern im ActiveX-Steuerelement ActiveX-Steuerelemente: Erweiterte Themen.
Hilfsfunktionen sind für die meisten vordefinierten SCODE s, wie die Common COleControl::SetNotSupported, COleControl::GetNotSupported und COleControl::SetNotPermitted.
Hinweis |
---|
ThrowError gilt nur für Ressourcen des Zurückgebens eines Fehlers aus einer Eigenschaft zu verwendende Funktion abrufen oder festlegen oder eine Automatisierung Methode.Dies sind die einzigen vorkommen, dass der entsprechenden Ausnahmehandler auf dem Stapel vorhanden ist. |
Weitere Informationen zu meldende von Ausnahmen in anderen Bereichen des Codes finden Sie im Abschnitt zu COleControl::FireError und Behandeln von Fehlern im ActiveX-Steuerelement im Artikel enthaltenen ActiveX-Steuerelemente: Erweiterte Themen.