Partager via


Ajout de contrôles manuellement

Vous pouvez ajouter des contrôles à une boîte de dialogue avec l’éditeur de boîte de dialogue ou les ajouter vous-même, avec du code.

Pour créer vous-même un objet de contrôle, vous allez généralement incorporer l’objet de contrôle C++ dans un objet de boîte de dialogue C++ ou d’une fenêtre frame. Comme de nombreux autres objets de l’infrastructure, les contrôles nécessitent une construction en deux étapes. Vous devez appeler la fonction Créer un membre du contrôle dans le cadre de la création de la boîte de dialogue parente ou de la fenêtre frame. Pour les boîtes de dialogue, cela est généralement effectué dans OnInitDialog et pour les fenêtres frame, dans OnCreate.

L’exemple suivant montre comment déclarer un CEdit objet dans la déclaration de classe d’une classe de dialogue dérivée, puis appeler la Create fonction membre dans OnInitDialog. Étant donné que l’objet CEdit est déclaré en tant qu’objet incorporé, il est automatiquement construit lorsque l’objet de boîte de dialogue est construit, mais il doit toujours être initialisé avec sa propre Create fonction membre.

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

La fonction suivante OnInitDialog configure un rectangle, puis appelle Create pour créer le contrôle d’édition Windows et l’attacher à l’objet non initialisé 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 sur le contrôle en appelant la SetFocus fonction membre. Enfin, vous retournez 0 pour OnInitDialog montrer que vous définissez le focus. Si vous retournez une valeur différente de zéro, le gestionnaire de boîtes de dialogue définit le focus sur le premier élément de contrôle de la liste d’éléments de boîte de dialogue. Dans la plupart des cas, vous souhaiterez ajouter des contrôles à vos boîtes de dialogue avec l’éditeur de dialogue.

Voir aussi

Création et utilisation de contrôles
Contrôles
CDialog ::OnInitDialog