CCmdTarget::OnCmdMsg
virtual BOOL OnCmdMsg(
UINT nID,
int nCode,
void* pExtra,
AFX_CMDHANDLERINFO* pHandlerInfo
);
參數
nID
包含命令 ID.nCode
識別命令通知程式碼。 請參閱 備註 如需值的詳細資訊 nCode。pExtra
使用以 nCode的值。 請參閱 備註 有關 pExtra。pHandlerInfo
如果不是, NULLOnCmdMsg 填入 pHandlerInfo 結構的 pTarget 和 pmf 成員而不是傳送命令。 通常,這個參數應該是 NULL。
傳回值
不是零,如果訊息被處理,則為 0。
備註
這是框架命令結構的主要實作常式。
在執行階段, OnCmdMsg 分派一個命令對其他物件或呼叫根類別處理命令 CCmdTarget::OnCmdMsg,進行實際訊息對應 (Message Map 搜尋。 如需預設命令傳送的完整描述,請參閱 訊息處理和對應的主題。
最少的情況下,您可以覆寫這個成員函式擴充架構的標準命令傳送。 參考 Technical Note 21 有關命令路由架構的進階的詳細資料。
如果您覆寫 OnCmdMsg,您必須提供 nCode,命令會通知程式碼和 pExtra適當的值,視 nCode的值。 下表列出其相對應的值:
nCode 值 |
pExtra 值 |
---|---|
CN_COMMAND |
|
CN_EVENT |
AFX_EVENT* |
CN_UPDATE_COMMAND_UI |
CCmdUI* |
CN_OLECOMMAND |
|
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