MFC OnCmdMsg函数是干什么用的?

BOOL CMainFrame::OnCmdMsg(UINT nID, int nCode, void* pExtra, AFX_CMDHANDLERINFO* pHandlerInfo)
{
	CWnd* pWnd=this->GetFocus();
if(pWnd && pWnd!=this && pWnd->OnCmdMsg(nID, nCode, pExtra, pHandlerInfo))return TRUE;
//上一条是什么意思?
	return CFrameWnd::OnCmdMsg(nID, nCode, pExtra, pHandlerInfo);

}

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

该函数由框架调用,路由和调度命令消息,处理用户接口对象的命令更新。

具体的你可以查看msdn

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
您好!要在MFC中实现单文档多界面切换,可以按照以下步骤进行操作: 1. 创建一个基于单文档模板的MFC应用程序。在创建向导中选择"单文档"选项。 2. 在您的应用程序的主框架类(一般命名为CMainFrame)中,添加一个成员变量用于存储多个视图对象。例如,您可以声明一个指针数组:`CArray< CView*, CView* > m_ViewArray;` 3. 在CMainFrame类的OnCreate函数中,创建所有需要的视图对象并将其添加到视图数组中。例如,您可以使用以下代码创建两个视图对象并添加到数组中: ```cpp int CMainFrame::OnCreate(LPCREATESTRUCT lpCreateStruct) { if (CFrameWnd::OnCreate(lpCreateStruct) == -1) return -1; // 创建视图对象 CView* pView1 = new CMyView1; CView* pView2 = new CMyView2; // 将视图对象添加到数组中 m_ViewArray.Add(pView1); m_ViewArray.Add(pView2); return 0; } ``` 4. 在CMainFrame类中添加一个函数,用于切换当前活动的视图。例如,您可以使用以下代码实现: ```cpp void CMainFrame::SwitchToView(int nIndex) { // 隐藏当前活动的视图 CView* pOldActiveView = GetActiveView(); if (pOldActiveView != nullptr) pOldActiveView->ShowWindow(SW_HIDE); // 显示新的活动视图 CView* pNewActiveView = m_ViewArray.GetAt(nIndex); if (pNewActiveView != nullptr) { SetActiveView(pNewActiveView); pNewActiveView->ShowWindow(SW_SHOW); pNewActiveView->SetFocus(); } } ``` 5. 在您的菜单或工具栏中添加切换视图的命令。例如,您可以在菜单资源中添加两个菜单项,并将其与对应的视图切换函数关联起来。 6. 在CMainFrame类中重写OnCmdMsg函数,以处理切换视图的命令消息。例如,您可以使用以下代码实现: ```cpp BOOL CMainFrame::OnCmdMsg(UINT nID, int nCode, void* pExtra, AFX_CMDHANDLERINFO* pHandlerInfo) ***

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值