VS2010 c++ 如何捕获 Cdockablepane 点击底部选项卡的 消息 30
如图上所示,现在我想捕获点击选项卡的消息。在两个dockablepane里建立单击鼠标左键的消息响应函数,都无法捕获消息。求大神指教这是创建dockablepane的代码...
如图上所示,现在我想捕获点击选项卡的消息。在两个dockablepane里建立单击鼠标左键的消息响应函数,都无法捕获消息。求大神指教
这是创建dockablepane的代码
if (!CreateDockingWindows())
{
TRACE0("未能创建停靠窗口\n");
return -1;
}
//m_wndTestCaseView.AddTab(&m_wndParameterView);
m_wndTestCaseView.EnableDocking(CBRS_ALIGN_ANY);
m_wndParameterView.EnableDocking(CBRS_ALIGN_ANY);
DockPane(&m_wndTestCaseView);
CDockablePane* pTabbedBar = NULL;
m_wndParameterView.AttachToTabWnd(&m_wndTestCaseView, DM_SHOW, TRUE, &pTabbedBar);//把参数视图窗格加载到用例视图窗格中 展开
这是创建dockablepane的代码
if (!CreateDockingWindows())
{
TRACE0("未能创建停靠窗口\n");
return -1;
}
//m_wndTestCaseView.AddTab(&m_wndParameterView);
m_wndTestCaseView.EnableDocking(CBRS_ALIGN_ANY);
m_wndParameterView.EnableDocking(CBRS_ALIGN_ANY);
DockPane(&m_wndTestCaseView);
CDockablePane* pTabbedBar = NULL;
m_wndParameterView.AttachToTabWnd(&m_wndTestCaseView, DM_SHOW, TRUE, &pTabbedBar);//把参数视图窗格加载到用例视图窗格中 展开
4个回答
展开全部
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);
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
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激活的
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
gamewnd类是不是你自己写的?是不是从与窗口相关的类比如CWnd派生而来的
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
朋友,问题解决了吗,我现在也遇到了这个问题
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询