Partager via


Ajout de contrôles à la main

Vous pouvez soit ajouter des contrôles dans une boîte de dialogue à l'aide de l'éditeur de boîtes de dialogue ou les ajouter vous, avec du code.

Pour créer un objet de contrôle, vous incluerez généralement l'objet de contrôle C++ dans une boîte de dialogue C++ ou un objet cadre de fenêtre. Comme de nombreux autres objets dans l'infrastructure, les vérifications nécessitent la construction sur deux niveaux. Vous devriez appeler la fonction membre Créer du contrôle comme une partie de la création de la boîte de dialogue parente ou la fenêtre de cadre. Pour les boîtes de dialogue, ceci est généralement effectuée dans OnInitDialog, et pour les fenêtres de cadre, dans OnCreate.

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

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

La fonction suivante OnInitDialog configure un rectangle, puis appelle Créer pour créer le contrôle d'édition windows et le joindre à l'objet non initialisé de 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 SetFocus. Enfin, vous retournez 0 depuis OnInitDialog pour indiquer 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 de contrôle dans la liste des éléments de dialogue. Dans la plupart des cas, vous souhaiterez ajouter des contrôles dans les boîtes de dialogue de l'éditeur de boîtes de dialogue.

Voir aussi

Référence

Faisant et utilisation des contrôles

CDialog::OnInitDialog

Concepts

contrôles (MFC)