Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Remarque
La bibliothèque de modèles actifs (ATL) continue d’être prise en charge. Toutefois, nous n’ajoutons plus de fonctionnalités ni ne mettons à jour la documentation.
ATL implémente des fenêtres autonomes avec CContainedWindowT. Une fenêtre autonome représente une fenêtre qui délègue ses messages à un objet conteneur au lieu de les gérer dans sa propre classe.
Remarque
Vous n’avez pas besoin de dériver une classe de CContainedWindowT pour utiliser des fenêtres contenues.
Avec des fenêtres autonomes, vous pouvez superclasser une classe Windows existante ou une sous-classe d’une fenêtre existante. Pour créer une fenêtre qui superclasse une classe Windows existante, spécifiez d’abord le nom de classe existant dans le constructeur de l’objet CContainedWindowT . Appelez ensuite CContainedWindowT::Create. Pour sous-classer une fenêtre existante, vous n’avez pas besoin de spécifier un nom de classe Windows (passez NULL au constructeur). Il vous suffit d’appeler la méthode CContainedWindowT::SubclassWindow avec le handle pour la fenêtre en cours de subclassification.
Vous utilisez généralement des fenêtres contenues en tant que membres de données d'une classe de conteneur. Le conteneur n’a pas besoin d’être une fenêtre ; toutefois, il doit dériver de CMessageMap.
Une fenêtre contenue peut utiliser d'autres mappages de messages pour gérer ses messages. Si vous avez plusieurs fenêtres contenues, vous devez déclarer plusieurs mappages de messages de remplacement, chacun correspondant à une fenêtre contenue distincte.
Exemple
Voici un exemple de classe de conteneur avec deux fenêtres autonomes :
class CMyContainer : public CMessageMap
{
public:
CContainedWindow m_wndEdit;
CContainedWindow m_wndList;
CMyContainer() : m_wndEdit(_T("Edit"), this, 1),
m_wndList(_T("List"), this, 2)
{
}
BEGIN_MSG_MAP(CMyContainer)
ALT_MSG_MAP(1)
// handlers for the Edit window go here
ALT_MSG_MAP(2)
// handlers for the List window go here
END_MSG_MAP()
};
Pour obtenir plus d’informations sur les fenêtres contenues, consultez l’exemple SUBEDIT .