在对话框中嵌入了一个CScrollView对象A,A可以响应鼠标按下操作,就是无法响应鼠标双击消息。请大侠帮忙看看为什么。
.h文件中
public:
virtual void OnDraw(CDC* pDC); // overridden to draw this view
virtual void OnInitialUpdate(); // first time after construct
virtual BOOL PreCreateWindow(CREATESTRUCT& cs);
DECLARE_MESSAGE_MAP()
afx_msg int OnMouseActivate(CWnd* pDesktopWnd, UINT nHitTest, UINT message);
afx_msg void OnSize(UINT nType, int cx, int cy);
// afx_msg void OnLButtonDown(UINT nFlags, CPoint point);
afx_msg void OnLButtonDblClk(UINT nFlags, CPoint point);
.cpp文件中
BEGIN_MESSAGE_MAP(CFcModelView, CScrollView)
ON_WM_MOUSEACTIVATE()
ON_WM_SIZE()
// ON_WM_LBUTTONDOWN()
ON_WM_LBUTTONDBLCLK()
END_MESSAGE_MAP()
.....
void CFcModelView::OnLButtonDblClk(UINT nFlags, CPoint point)
{
int flag = 0;
CFcModel * pFcModel = gRtu.m_pFcModel;
NODE_INFO * pNodeInfo;
LINE_INFO * pLineInfo;
for(int i=0; i<pFcModel->m_nodeArray.GetCount(); i++)
{
pNodeInfo = (NODE_INFO *)pFcModel->m_nodeArray.GetAt(i);
if(pNodeInfo->rect.PtInRect(point))
{
if(pNodeInfo->nodeType == WTG_TYPE)
{
WTG *wtg = pFcModel->GetWtgByNo(pNodeInfo->nodeNo);
CInsertWtgDlg dlg(true, *wtg);
if(dlg.DoModal() == IDOK)
{
wtg->m_componentName = dlg.m_wtgName;
wtg->m_no = dlg.m_wConNodeNo;
wtg->m_ratingPower = dlg.m_nRatingPower;
m_pDoc->SetModified(TRUE);
}
}
else if(pNodeInfo->nodeType == SVC_TYPE)
{
SVC* svc = pFcModel->GetSvcByNo(pNodeInfo->nodeNo);
CInsertSvcDlg dlg(true, *svc);
if(dlg.DoModal() == IDOK)
{
svc->m_componentName = dlg.m_svcName;
svc->m_no = dlg.m_wSvcNo;
m_pDoc->SetModified(TRUE);
}
}
}
}
for(int i=0; i<pFcModel->m_lineArray.GetCount(); i++)
{
pLineInfo = (LINE_INFO *)pFcModel->m_lineArray.GetAt(i);
if(pLineInfo->rect.PtInRect(point))
{
if(pLineInfo->lineType == TRANS_TYPE)
{
TRANSFORM* pTrans = pFcModel->GetTransformByNo(pLineInfo->lineNo);
CInsertTransformDlg dlg(true, *pTrans);
if(dlg.DoModal() == IDOK)
{
pTrans->m_componentName = dlg.m_transName;
pTrans->m_iNo = dlg.m_wINodeNo;
m_pDoc->SetModified(TRUE);
}
}
else if(pLineInfo->lineType == ORDY_LINE_TYPE)
{
ORDYLINE* pOrdyLine = pFcModel->GetOrdyLineByNo(pLineInfo->lineNo);
CInsertOrdyLineDlg dlg(true, *pOrdyLine);
if(dlg.DoModal() == IDOK)
{
pOrdyLine->m_componentName = dlg.m_lineName;
pOrdyLine->m_iNo = dlg.m_wINodeNo;
m_pDoc->SetModified(TRUE);
}
}
}
}
CScrollView::OnLButtonDblClk( nFlags, point );
}
/*
void CFcModelView::OnLButtonDown(UINT nFlags, CPoint point)
{
AfxMessageBox("鼠标按下");
}
*/