以下是 OnCmdMsg 的一般形式:
virtual BOOL OnCmdMsg(UINT nID, int nCode, void* pExtra, AFX_CMDHANDLERINFO* pHandlerInfo);
参数说明:
- nID:标识命令的 ID。
- nCode:命令的代码,例如 CN_COMMAND 表示普通的命令消息,CN_UPDATE_COMMAND_UI 表示更新 UI 的命令消息。
- pExtra:指向命令的额外信息的指针。
- pHandlerInfo:命令处理程序的信息。
CMDIFrameWndEx 作为 CWnd 的派生类,可以覆盖 OnCmdMsg 方法以处理特定的命令消息。这是一种常见的用法,特别是在 MDI(Multiple Document Interface)应用程序中,用于处理与文档视图相关的命令。
以下是一个简单的示例:
BOOL CMyMDIFrameWnd::OnCmdMsg(UINT nID, int nCode, void* pExtra, AFX_CMDHANDLERINFO* pHandlerInfo)
{
// 自定义命令处理逻辑
if (nID == ID_CUSTOM_COMMAND) {
// 处理自定义命令
// ...
return TRUE; // 表示命令已被处理
}
// 调用基类的 OnCmdMsg 处理其他命令
return CMDIFrameWndEx::OnCmdMsg(nID, nCode, pExtra, pHandlerInfo);
}
在这个示例中,当收到自定义命令(假设命令的 ID 是 ID_CUSTOM_COMMAND)时,OnCmdMsg 方法会处理该命令,然后返回 TRUE 表示命令已被处理。如果命令不是自定义命令,它会调用基类的 OnCmdMsg 来处理其他命令。
转载请注明出处:http://www.zyzy.cn/article/detail/18898/MFC/CMDIFrameWndEx