Udostępnij za pośrednictwem


CCmdTarget::OnCmdMsg

Wywołana w ramach marszruty i wysłania wiadomości polecenia i obsługi aktualizacji obiektów poleceń interfejsu użytkownika.

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

Parametry

  • nID
    Zawiera identyfikator polecenia.

  • nCode
    Określa polecenie kod powiadomienia.Zobacz uwagi uzyskać więcej informacji o wartości nCode.

  • pExtra
    Zgodnie z wartością nCode.Zobacz uwagi uzyskać więcej informacji o pExtra.

  • pHandlerInfo
    Jeśli nie NULL, OnCmdMsg wypełnia pTarget i pmf członków pHandlerInfo struktury zamiast polecenia wysyłki.Zazwyczaj ten parametr powinien być NULL.

Wartość zwracana

Niezerowa, jeśli wiadomość jest obsługiwane; 0 inaczej.

Uwagi

Jest to procedury realizacji głównego architektury polecenia ramy.

W czasie wykonywania OnCmdMsg wysyła polecenia do innych obiektów lub uchwyty samo polecenie wywołując główna klasa CCmdTarget::OnCmdMsg, która jest wyszukiwanie rzeczywistej mapie wiadomości.Pełny opis polecenia domyślnej marszruty, zobacz obsługi wiadomości i mapowanie tematy.

W rzadkich przypadkach może być zastąpienie tej funkcji Członkowskich rozszerzenie w ramach standardowego polecenia routingu.Odnoszą się do technicznej Uwaga 21 zaawansowane szczegóły architektury routing polecenia.

Jeżeli OnCmdMsg, należy podać odpowiednią wartość dla nCode, kod powiadomienia polecenia i pExtra, która zależy od wartości nCode.W poniższej tabeli wymieniono odpowiadające im wartości:

nCodewartość

pExtrawartość

CN_COMMAND

CCmdUI*

CN_EVENT

AFX_EVENT *

CN_UPDATE_COMMAND_UI

CCmdUI *

CN_OLECOMMAND

COleCmdUI*

CN_OLE_UNREGISTER

WARTOŚĆ NULL

Przykład

// 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()

Wymagania

Nagłówek: afxwin.h

Zobacz też

Informacje

Klasa CCmdTarget

Diagram hierarchii

Klasa CCmdUI

Klasa COleCmdUI