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 jeder von CWnd abgeleiteten Klasse können Sie das Verhalten eines Steuerelements ändern, indem Sie eine neue Klasse von einer vorhandenen Steuerelementklasse ableiten.
So erstellen Sie eine abgeleitete Steuerelementklasse
Leiten Sie die Klasse von einer vorhandenen Steuerelementklasse ab, und überschreiben Sie optional die
CreateMemberfunktion, sodass sie die erforderlichen Argumente für die BasisklassenfunktionCreatebereitstellt.Stellen Sie Member-Funktionen für Message-Handler und Message-Map-Einträge bereit, um das Verhalten des Steuerelements als Reaktion auf bestimmte Windows-Nachrichten zu ändern. Siehe Zuordnen von Nachrichten zu Funktionen.
Stellen Sie neue Member-Funktionen bereit, um die Funktionalität des Steuerelements zu erweitern (optional).
Die Verwendung eines abgeleiteten Steuerelements in einem Dialogfeld erfordert zusätzliche Arbeit. Die Typen und Positionen von Steuerelementen in einem Dialogfeld werden normalerweise in einer Dialogvorlagenressource angegeben. Wenn Sie eine abgeleitete Steuerelementklasse erstellen, können Sie sie nicht in einer Dialogvorlage angeben, da der Ressourcencompiler nichts über die abgeleitete Klasse kennt.
So platzieren Sie das abgeleitete Steuerelement in einem Dialogfeld
Betten Sie ein Objekt der abgeleiteten Steuerelementklasse in die Deklaration der abgeleiteten Dialogklasse ein.
Überschreiben Sie die
OnInitDialog-Funktion in Ihrer Dialog-Steuerelement-Klasse, um dieSubclassDlgItem-Funktion für das abgeleitete Steuerelement aufzurufen.
SubclassDlgItem „dynamische Unterklassen“ eines Steuerelements, das aus einer Dialogvorlage erstellt wurde. Wenn ein Steuerelement dynamisch unterklassig ist, verbinden Sie sich mit Windows, verarbeiten einige Nachrichten in Ihrer eigenen Anwendung und übergeben dann die verbleibenden Nachrichten an Windows. Weitere Informationen finden Sie in der SubclassDlgItem-Memberfunktion der Klasse CWnd in der MFC-Referenz. Das folgende Beispiel zeigt, wie Sie eine Außerkraftsetzung von OnInitDialog schreiben können, um SubclassDlgItem aufzurufen.
BOOL CSubDialog::OnInitDialog()
{
CDialog::OnInitDialog();
m_wndMyBtn.SubclassDlgItem(IDC_MYBTN, this);
return TRUE;
}
Da das abgeleitete Steuerelement in die Dialogklasse eingebettet ist, wird es erstellt, wenn das Dialogfeld erstellt wird, und es wird zerstört, wenn das Dialogfeld zerstört wird. Vergleichen Sie diesen Code mit dem Beispiel zum Hinzufügen von Steuerelementen von Hand.