MFC将某一Cwnd类获取的消息传递给别的窗口响应

比如再一个Cmainframe上创建一个视图CGameControlPanelView,另外有一个对话框CCtrlDlg,对话框上有摁钮,用来点击响应处理函数。这里的问题就是,把摁钮的消息处理函数写在对话框类里可以正常响应,但是把消息处理函数写在CGameControlPanelView类里面,没法响应,原因是对话框截获了这个点击消息,没传到视图类CGameControlPanelView。

解决办法:

在对话框CCtrlDlg里重载函数

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

实现如下:

BOOL CCtrlDlg::OnCmdMsg( UINT nID, int nCode, void* pExtra, AFX_CMDHANDLERINFO* pHandlerInfo )
{
	//MessageBox("here");
	//GetParent()->OnCmdMsg(nID,nCode,pExtra,pHandlerInfo);
	CMainFrame *pmwnd = (CMainFrame*)AfxGetMainWnd();
	CbubbleView *pview = (CbubbleView*)(pmwnd->m_wndSplitter.GetPane(0,0));

	//pview->SetFocus();
	if (pview->OnCmdMsg(nID,nCode,pExtra,pHandlerInfo))
		return TRUE;

	return TRUE;
}


 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值