Freigeben über


CCmdTarget::OnCmdMsg

Aufgerufen durch das Framework, um Befehlsmeldungen weiterzuleiten und Weiterleiten und die Aktualisierung der Befehlsbenutzeroberfläche zu behandeln Objekte ein.

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

Parameter

  • nID
    Enthält die ID Befehl

  • nCode
    Identifiziert den Befehlsbenachrichtigungscode.Siehe Remarks weitere Informationen über Werte für nCode.

  • pExtra
    Wird nach dem Wert von nCode.Siehe Remarks weitere Informationen zu pExtra.

  • pHandlerInfo
    Wenn nicht NULL, OnCmdMsg die pTarget und pmf-Member der Struktur pHandlerInfo ausfüllt, anstatt, den Befehl weiterzuleiten.In der Regel sollte dieser Parameter NULL sein.

Rückgabewert

Ungleich 0 (null), wenn die Meldung verarbeitet wird; andernfalls 0.

Hinweise

Dies ist die zentrale Implementierungsroutine der Frameworkbefehlsarchitektur.

Zur Laufzeit stellt OnCmdMsg einen Befehl an aus anderen Objekten oder behandelt den Befehl selbst, indem die Stammklasse CCmdTarget::OnCmdMsg aufruft, die die eigentliche Meldungszuordnungssuche ausführt.Eine vollständige Beschreibung des standardmäßigen Befehlsroutings, finden Sie unter Nachrichtenverarbeitungs- und Zuordnungs-Themen.

In seltenen Fällen sollten Sie diese Memberfunktion überschreiben, um das Standardbefehlsrouting des Frameworks zu erweitern.Siehe Technischer Hinweis 21 für erweiterte Details der BefehlRouting Architektur.

Wenn Sie OnCmdMsg überschreiben, müssen Sie den entsprechenden Wert für nCode, den Befehlsbenachrichtigungscode bereitstellen und pExtra, der vom Wert von nCode abhängt.In der folgenden Tabelle werden die entsprechenden Werte auf:

nCode-Wert

pExtra-Wert

CN_COMMAND

CCmdUI*

CN_EVENT

AFX_EVENT*

CN_UPDATE_COMMAND_UI

CCmdUI*

CN_OLECOMMAND

COleCmdUI*

CN_OLE_UNREGISTER

NULL

Beispiel

// This example illustrates extending the framework's standard command 
// route from the view to objects managed by the view.  This example
// is from an object-oriented drawing application, similar to the
// DRAWCLI sample application, which draws and edits "shapes".
BOOL CMyView::OnCmdMsg(UINT nID, int nCode, void* pExtra, AFX_CMDHANDLERINFO* pHandlerInfo)
{
   // Extend the framework's command route from the view to
   // the application-specific CMyShape that is currently selected
   // in the view. m_pActiveShape is NULL if no shape object
   // is currently selected in the view.
   if ((m_pActiveShape != NULL)
      && m_pActiveShape->OnCmdMsg(nID, nCode, pExtra, pHandlerInfo))
      return TRUE;

   // If the object(s) in the extended command route don't handle
   // the command, then let the base class OnCmdMsg handle it.
   return CView::OnCmdMsg(nID, nCode, pExtra, pHandlerInfo);
}
// The command handler for ID_SHAPE_COLOR (menu command to change
// the color of the currently selected shape) was added to the message
// map of CMyShape (note, not CMyView) using the Properties window.  
// The menu item will be automatically enabled or disabled, depending 
// on whether a CMyShape is currently selected in the view, that is, 
// depending on whether CMyView::m_pActiveView is NULL.  It is not 
// necessary to implement an ON_UPDATE_COMMAND_UI handler to enable 
// or disable the menu item.  
BEGIN_MESSAGE_MAP(CMyShape, CCmdTarget)
   ON_COMMAND(ID_SHAPE_COLOR, &CMyShape::OnShapeColor)
END_MESSAGE_MAP()

Anforderungen

Header: afxwin.h

Siehe auch

Referenz

CCmdTarget-Klasse

Hierarchien-Diagramm

CCmdUI-Klasse

COleCmdUI-Klasse