VS2010 c++ 如何捕获 Cdockablepane 点击底部选项卡的 消息
答案:4 悬赏:10 手机版
解决时间 2021-03-16 02:59
- 提问者网友:川水往事
- 2021-03-15 12:38
VS2010 c++ 如何捕获 Cdockablepane 点击底部选项卡的 消息
最佳答案
- 五星知识达人网友:刀戟声无边
- 2021-03-15 13:58
BOOL CMainFrame::PreTranslateMessage(MSG* pMsg)
{
// TODO: 在此添加专用代码和/或调用基类
if (pMsg->message == WM_LBUTTONDOWN)
{
CWnd* pWnd = m_wndClassView.GetActiveWindow();
CWnd* pImmediateParent = m_wndClassView.GetParent(); // m_wndClassView (CDockablePane)
if (pImmediateParent != NULL && pImmediateParent->IsKindOf(RUNTIME_CLASS(CMFCBaseTabCtrl)))
{
CMFCBaseTabCtrl* pTabCtrl = (CMFCBaseTabCtrl*)pImmediateParent;
CWnd* pTabPanel = (CWnd*)pTabCtrl->GetParent();
if (pMsg->hwnd == pTabCtrl->m_hWnd)
{
//输入需要处理的代码
}
}
}
return CFrameWndEx::PreTranslateMessage(pMsg);
}
{
// TODO: 在此添加专用代码和/或调用基类
if (pMsg->message == WM_LBUTTONDOWN)
{
CWnd* pWnd = m_wndClassView.GetActiveWindow();
CWnd* pImmediateParent = m_wndClassView.GetParent(); // m_wndClassView (CDockablePane)
if (pImmediateParent != NULL && pImmediateParent->IsKindOf(RUNTIME_CLASS(CMFCBaseTabCtrl)))
{
CMFCBaseTabCtrl* pTabCtrl = (CMFCBaseTabCtrl*)pImmediateParent;
CWnd* pTabPanel = (CWnd*)pTabCtrl->GetParent();
if (pMsg->hwnd == pTabCtrl->m_hWnd)
{
//输入需要处理的代码
}
}
}
return CFrameWndEx::PreTranslateMessage(pMsg);
}
全部回答
- 1楼网友:轻熟杀无赦
- 2021-03-15 17:01
朋友,问题解决了吗,我现在也遇到了这个问题
- 2楼网友:西岸风
- 2021-03-15 15:46
gamewnd类是不是你自己写的?是不是从与窗口相关的类比如CWnd派生而来的
- 3楼网友:等灯
- 2021-03-15 14:48
CWnd* pImmediateParent = m_wndTestCaseView.GetParent();
if(pImmediateParent!=NULL && pImmediateParent->IsKindOf(RUNTIME_CLASS(CMFCBaseTabCtrl)))
{
CMFCBaseTabCtrl* pTab = (CMFCBaseTabCtrl*)pImmediateParent;
pTab->GetActiveTab();//当前的tab激活的
}
if(pImmediateParent!=NULL && pImmediateParent->IsKindOf(RUNTIME_CLASS(CMFCBaseTabCtrl)))
{
CMFCBaseTabCtrl* pTab = (CMFCBaseTabCtrl*)pImmediateParent;
pTab->GetActiveTab();//当前的tab激活的
}
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯