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 OnInitDialogaufrufen 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