Partager via


Ajout de contrôles à la main

Vous pouvez ajoutez des contrôles à la boîte de dialogue à l'éditeur de boîtes de dialogue ou les ajouter vous-même, au code.

Pour créer un objet contrôle vous-même, vous allez inclure habituellement l'objet contrôle C++ dans la boîte de dialogue C++ ou l'objet de la fenêtre frame.À l'instar de nombreux autres objets dans l'infrastructure, les contrôles requièrent la construction à deux couches.Vous devez appeler la fonction membre de Créer du contrôle dans le cadre de la création de la boîte de dialogue ou la fenêtre frame parente.Pour les boîtes de dialogue, cela est généralement effectuée dans OnInitDialog, et pour les fenêtres frame, dans OnCreate.

L'exemple suivant montre comment vous pouvez déclarer un objet d' CEdit dans la déclaration de classe d'une classe de boîte de dialogue dérivée et appeler la fonction membre de Créer dans OnInitDialog.Étant donné que l'objet d' CEdit est déclaré comme un objet incorporé, il est automatiquement généré lorsque l'objet dialog est construit, mais il doit toujours être initialisé avec sa propre fonction membre de Créer .

class CCustomDialog : public CDialog
{
   CEdit m_edit;
   virtual BOOL OnInitDialog();
};

La fonction suivante d' OnInitDialog configure un rectangle, puis appelle Créer pour créer le contrôle d'édition windows et pour l'attacher à l'objet non initialisé d' CEdit .

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;
}

Après avoir créé l'objet de modification, vous pouvez également définir le focus d'entrée au contrôle en appelant la fonction membre d' SetFocus .Enfin, vous retournez 0 d' OnInitDialog pour montrer que vous définissez le focus.Si vous retournez une valeur différente de zéro, le gestionnaire de dialogue définit le focus sur le premier élément du contrôle dans la liste d'éléments de dialogue.Dans la plupart des cas, vous souhaiterez ajouter des contrôles à vos boîtes de dialogue avec l'éditeur de boîtes de dialogue.

Voir aussi

Référence

Faisant et l'utilisation des contrôles

CDialog::OnInitDialog

Concepts

Contrôles (MFC)