1.手写新建了一个CBaseChartDlg类,继承于CDialogclass CBaseChartDlg : public CDialog  2.在 CBaseChartDlg 类中响应了 OnLButtonDownvoid CBaseChartDlg::OnLButtonDown(UINT nFlags, CPoint point) 
{
   MessageBox("CBaseChartDlg::OnLButtonDown");
   CDialog::OnLButtonDown(nFlags, point);
}3.又新建了一个对话框,添加了CMyChartDlg类,手动把父类改为了CBaseChartDlg
没有响应 OnLButtonDown 函数class CMyChartDlg : public CBaseChartDlg 我想让CMyChartDlg 类,在不响应OnLButtonDown时,鼠标按下时自动调用void CBaseChartDlg::OnLButtonDown函数
而不是void CDialog::OnLButtonDown函数,应该怎么实现呀

解决方案 »

  1.   

    为什么子类要“不响应OnLButtonDown”, 难道鼠标按下有别的用处?
      

  2.   

    不想重写代码,父类响应了挺多的消息OnPaint();
    OnVScroll();
    OnEraseBkgnd();
    OnLButtonDown();
    OnLButtonUp();
    OnRButtonDown();
    OnMouseMove();
    OnHScroll();
    OnSize();
    OnMouseWheel();
    同时父类还要派生很多子类,如果子类响应这些消息,就得每个子类都响应一遍
      

  3.   

    void CMyChartDlg::OnLButtonDown(UINT nFlags, CPoint point) 
    {
       // 处理
       ...   
       // 否则响应基类
       CBaseChartDlg::OnLButtonDown(nFlags, point);
    }
      

  4.   

    在CPP中把CMyChartDlg的父类也改成CBaseChartDlg了吗?BEGIN_MESSAGE_MAP(CMyChartDlg, CBaseChartDlg)
      

  5.   

    在CPP中没有把CMyChartDlg的父类改成CBaseChartDlg
    修改了这句,就可以了
    BEGIN_MESSAGE_MAP(CMyChartDlg, CBaseChartDlg)
    谢谢flydreamGG !