Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Wie bei allen von CWnd abgeleitete Klasse können Sie ein Verhalten des Steuerelements ändern, indem Sie eine neue Klasse von einer vorhandenen Steuerelementklasse abzuleiten.
So erstellen Sie eine abgeleitete Steuerelementklasse
Leiten Sie die Klasse von einer vorhandenen Steuerelementklasse ab, und überschreiben Sie optional die Create-Memberfunktion, sodass sie die erforderlichen Argumente der Basisklasse Erstellungsfunktion bereitstellt.
Stellen Sie Meldung Handler Memberfunktionen und Meldungszuordnungseinträge bereit, um das Verhalten des Steuerelements als Antwort auf bestimmte Windows-Meldungen zu ändern.Siehe Zuordnen von Meldungen zu Funktionen.
Erstellen neuer Memberfunktionen bereit, um die Funktionalität des Steuerelements zu erweitern (optional).
Verwenden eines abgeleiteten Steuerelements in einem Dialogfeld erfordert zusätzliche Arbeit.Die Typen und die Positionen von Steuerelementen in einem Dialogfeld werden normalerweise in einer Dialogfeldvorlagenressource angegeben.Wenn Sie eine abgeleitete Steuerelementklasse erstellt haben, können Sie sie in einer Dialogfeldvorlage nicht angeben, da der Ressourcencompiler weiß nichts über die abgeleitete Klasse.
Um das abgeleiteten Steuerelements in einem Dialogfeld platzieren
Betten Sie ein Objekt einer abgeleiteten Steuerelementklasse in der Deklaration der abgeleiteten Dialogfeldklasse ein.
Überschreiben Sie die OnInitDialog-Memberfunktion in der Dialogfeldklasse, um die SubclassDlgItem-Memberfunktion für das abgeleitete Steuerelement aufzurufen.
SubclassDlgItem "ordnet" dynamisch mit einem Steuerelement, das von einer Dialogfeldvorlage erstellt wird.Wenn ein Steuerelement dynamisch als Unterklasse definiert ist, verarbeiten Sie ein Hook Windows, einige Meldungen in Ihrer eigenen Anwendung, werden die übrigen Nachrichten an Windows weiter.Weitere Informationen finden Sie in der SubclassDlgItem-Memberfunktion der Klasse CWnd in der MFC-Referenz.Das folgende Beispiel zeigt, wie Sie eine Überschreibung von OnInitDialog geschrieben haben, um SubclassDlgItem aufzurufen:
BOOL CSubDialog::OnInitDialog()
{
CDialog::OnInitDialog();
m_wndMyBtn.SubclassDlgItem(IDC_MYBTN, this);
return TRUE;
}
Da das abgeleitete Steuerelement in der Dialogfeldklasse eingebettet ist, wird sie erstellt, wenn das Dialogfeld erstellt und zerstört wird, wenn das Dialogfeld zerstört wird.Vergleichen Sie diesen Code beispielsweise in Steuerelemente manuell hinzufügen.
Siehe auch
Referenz
Erstellen und mit Steuerelementen