CCmdTarget::OnCmdMsg

virtuel BOOL OnCmdMsg ( UINT nID, int nCode, void * pExtra, AFX_CMDHANDLERINFO * pHandlerInfo );

Valeur de retour

Différent de zéro si le message est géré ; sinon 0.

Paramètres

nID

Contient l'ID de commande.

nCode

Identifie le code de notification de commande.

pExtra

Utilisé en fonction de la valeur du nCode.

pHandlerInfo

Si il n'est pas NULL, OnCmdMsg renseigne les membres pTarget et IMP de la structure de pHandlerInfo au lieu de l'envoi de la commande. Généralement, ce paramètre doit être NULL.

Remarques

Appelé par le framework de route et envoyer des messages de commande et de gérer la mise à jour des objets d'interface utilisateur de commande. C'est la routine principale mise en œuvre de l'architecture de commande de cadre.

Au moment de l'exécution, OnCmdMsg envoie une commande à d'autres objets ou gère la commande elle-même en appelant la classe racine CCmdTarget::OnCmdMsg, qui fait la réelle recherche de message-carte. Pour une description complète de l'itinéraire de commande par défaut, voir Message de manutention et de cartographie des sujets dans le Guide du programmeur Visual C++.

En de rares occasions, vous pouvez substituer cette fonction membre pour étendre le cadre de l'acheminement de la commande standard. Consultez Technical Note 21 pour plus de détails avancés de l'architecture de routage de commandes.

Exemple

/ / Cet exemple montre comment étendre la commande standard du cadre / / route de la vue aux objets gérés par le view.nbsp ; Cet exemple
/ / est d'un object-oriented application de dessin, semblable à la
/ / DRAWCLI échantillon application qui établit et édite des « formes ».

BOOL CMyView::OnCmdMsg(UINT nID, int nCode, void* pExtra,
      AFX_CMDHANDLERINFO* pHandlerInfo)
{
   / / Étend voie de commande du cadre de l'avis de
   / / la CMyShape spécifiques à l'application qui est actuellement sélectionné
   / / dans la vue. m_pActiveShape a la valeur NULL si aucun objet shape
   / / est actuellement sélectionnée dans la vue.
   Si ((m_pActiveShape! = NULL)
      & & m_pActiveShape - > OnCmdMsg (nID, nCode, pExtra, pHandlerInfo))
      Return TRUE ;

/ / Si les objets sur la route de commande étendu ne gère
   / / la commande, alors que la classe de base OnCmdMsg traiter elle.
   Return CView::OnCmdMsg (nID, nCode, pExtra, pHandlerInfo) ;
}

/ / Le gestionnaire de commandes pour ID_SHAPE_COLOR (commande de menu à modifier
/ / la couleur de la forme sélectionnée) a été ajouté à
/ / le message carte de CMyShape (note, pas de CMyView) à l'aide de ClassWizard.  

/ / L'élément de menu sera automatiquement activé ou désactivé, en fonction de / / de savoir si un CMyShape est actuellement sélectionnée dans la vue, c'est / / selon la question de savoir si CMyView::m_pActiveView est NULL.  Il n'est pas / / nécessaire pour implémenter un gestionnaire de ON_UPDATE_COMMAND_UI pour activer / / ou désactiver l'élément de menu.  

BEGIN_MESSAGE_MAP (CMyShape, CCmdTarget)
   //{{AFX_MSG_MAP(CMyShape)
   ON_COMMAND (ID_SHAPE_COLOR, OnShapeColor)
   //}}AFX_MSG_MAP
END_MESSAGE_MAP()

|&Nbsp Aperçu de CCmdTarget ; Membres de la classe | Graphique de la hiérarchie

Voir aussi  ;CCmdUI

Index