共用方式為


CCmdTarget::OnCmdMsg

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

參數

  • nID
    包含命令 ID.

  • nCode
    識別命令通知程式碼。 請參閱 備註 如需值的詳細資訊 nCode。

  • pExtra
    使用以 nCode的值。 請參閱 備註 有關 pExtra。

  • pHandlerInfo
    如果不是, NULLOnCmdMsg 填入 pHandlerInfo 結構的 pTargetpmf 成員而不是傳送命令。 通常,這個參數應該是 NULL

傳回值

不是零,如果訊息被處理,則為 0。

備註

這是框架命令結構的主要實作常式。

在執行階段, OnCmdMsg 分派一個命令對其他物件或呼叫根類別處理命令 CCmdTarget::OnCmdMsg,進行實際訊息對應 (Message Map 搜尋。 如需預設命令傳送的完整描述,請參閱 訊息處理和對應的主題

最少的情況下,您可以覆寫這個成員函式擴充架構的標準命令傳送。 參考 Technical Note 21 有關命令路由架構的進階的詳細資料。

如果您覆寫 OnCmdMsg,您必須提供 nCode,命令會通知程式碼和 pExtra適當的值,視 nCode的值。 下表列出其相對應的值:

nCode 值

pExtra 值

CN_COMMAND

CCmdUI*

CN_EVENT

AFX_EVENT*

CN_UPDATE_COMMAND_UI

CCmdUI*

CN_OLECOMMAND

COleCmdUI*

CN_OLE_UNREGISTER

NULL

範例

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

需求

Header: afxwin.h

請參閱

參考

CCmdTarget 類別

階層架構圖

CCmdUI 類別

COleCmdUI 類別