Manuelles Hinzufügen von Steuerelementen
Sie können einem Dialogfeld entweder Steuerelemente mit dem Dialogfeld-Editor hinzufügen oder sie selbst mit Code hinzufügen.
Zum Erstellen eines Steuerelementobjekts selbst betten Sie das C++-Steuerelementobjekt in ein C++-Dialogfeld oder ein Framefensterobjekt ein. Wie viele andere Objekte im Framework erfordern Steuerelemente zweistufige Konstruktion. Sie sollten die Elementfunktion "Erstellen" des Steuerelements als Teil des Erstellens des übergeordneten Dialogfelds oder rahmenfensters aufrufen. Bei Dialogfeldern erfolgt dies in der Regel in OnInitDialog und für Framefenster in "OnCreate".
Das folgende Beispiel zeigt, wie Sie ein CEdit
Objekt in der Klassendeklaration einer abgeleiteten Dialogklasse deklarieren und dann die Create
Memberfunktion in OnInitDialog
aufrufen können. Da das CEdit
Objekt als eingebettetes Objekt deklariert wird, wird es automatisch erstellt, wenn das Dialogobjekt erstellt wird, aber es muss weiterhin mit seiner eigenen Create
Memberfunktion initialisiert werden.
class CCustomDialog : public CDialog
{
CEdit m_edit;
virtual BOOL OnInitDialog();
};
Die folgende OnInitDialog
Funktion richtet ein Rechteck ein, ruft Create
dann auf, um das Windows-Bearbeitungssteuerelement zu erstellen und es an das nicht initialisierte CEdit
Objekt anzufügen.
BOOL CCustomDialog::OnInitDialog()
{
CDialog::OnInitDialog();
CRect rect(85, 110, 180, 210);
m_edit.Create(WS_CHILD | WS_VISIBLE | WS_TABSTOP |
ES_AUTOHSCROLL | WS_BORDER,
rect, this, IDC_EXTRA_EDIT);
m_edit.SetFocus();
return FALSE;
}
Nach dem Erstellen des Bearbeitungsobjekts können Sie auch den Eingabefokus auf das Steuerelement festlegen, indem Sie die SetFocus
Memberfunktion aufrufen. Schließlich kehren Sie 0 zurück OnInitDialog
, um anzuzeigen, dass Sie den Fokus festlegen. Wenn Sie einen Wert ungleich Null zurückgeben, legt der Dialog-Manager den Fokus auf das erste Steuerelementelement in der Dialogfeldelementliste fest. In den meisten Fällen möchten Sie Ihren Dialogfeldern Steuerelemente mit dem Dialogfeld-Editor hinzufügen.
Siehe auch
Erstellen und Verwenden von Steuerelementen
Steuerelemente
CDialog::OnInitDialog