IPolyCtl
ist die Schnittstelle, die Ihre benutzerdefinierten Methoden und Eigenschaften enthält. Der einfachste Weg diese Schnittstelle eine Eigenschaft hinzu ist es in der Klassenansicht mit der rechten Maustaste und wählen Hinzufügen-Eigenschaft.
Das Eigenschaft zu Schnittstelle hinzufügen -Dialogfeld wird angezeigt, so dass Sie die Informationen über die Eigenschaft, die Sie hinzufügen möchten, geben:
MIDL (das Programm, die IDL-Dateien kompiliert wird) definiert eine Get -Methode, mit die die Eigenschaft abgerufen und eine Put -Methode, die die Eigenschaft festlegt. Wenn die Datei von MIDL kompiliert wird, es automatisch definiert diese beiden Methoden in der Schnittstelle vorangestellt put_
und get_
der Name der Eigenschaft.
Zusammen mit der IDL-Datei die erforderlichen Zeilen hinzugefügt, das Dialogfeld Eigenschaft hinzufügen, um die Schnittstelle auch die Funktionsprototypen und legte auf die Klassendefinition in PolyCtl.h und fügt hinzu eine leere Implementierung zu PolyCtl.cpp.
Festlegen und Abrufen der Eigenschaft benötigen Sie einen Ort zum Speichern. Datei, öffnen Sie PolyCtl.h, und fügen Sie die folgende Zeile am Ende der Klassendefinition nach m_clrFillColor
ist definiert:
&Nbsp; kurze m_nSides
Jetzt können Sie die Methoden Get und Put implementieren. Die get_Sides
und put_Sides
Funktionsdefinitionen PolyCtl.h hinzugefügt wurden. Sie müssen PolyCtl.cpp entsprechend den folgenden Code hinzufügen:
STDMETHODIMP-CPolyCtl::get_Sides(short *pVal)
{
* pVal = M_nSides;
Gibt S_OK zurück.
}
STDMETHODIMP-CPolyCtl::put_Sides(short newVal)
{
Wenn (NewVal Gt; 2 & & NewVal < 101)
{
M_nSides = neuerwert;
Gibt S_OK zurück.
}
anderes
Fehler zurück (_T ("Form muss zwischen 3 und 100 Seiten"));
}
Die get_Sides
Funktion gibt einfach den aktuellen Wert der Eigenschaft Seiten durch die pVal
Zeiger. In der put_Sides
Methode, stellen Sie sicher, dass der Benutzer setzt die Sides-Eigenschaft auf einen akzeptablen Wert. Sie benötigen mehr als 2 Seiten, und da Sie ein Array von Punkten für jede Seite später gespeichert werden, 100 ist eine vernünftige Grenze für einen maximalen Wert. Wenn ein ungültiger Wert übergeben wird, verwenden Sie die ATL- Fehler -Funktion, die in die IErrorInfo -Schnittstelle eingerichtet. Dies ist nützlich, wenn Ihr Container mehr Informationen über den Fehler als das zurückgegebene HRESULT benötigt.
Das letzte, was Sie tun müssen, für die Eigenschaft Initialisierung ist m_nSides
. Machen Sie ein Dreieck der Standardform indem Sie eine Zeile an den Konstruktor in PolyCtl.h:
CPolyCtl()
{
M_nSides = 3;
}
Sie haben nun eine Eigenschaft namens Seiten. Es ist nicht viel, bis Sie etwas mit ihm, also als nächstes ändern Sie den Zeichencode tun, es zu benutzen.
Zurück zu Schritt 2 |nbsp; An Schritt 4