首先从CDialog派生一个类CBaseDlg,
然后再从CBaseDlg派生一个类CMyDlg,
创建一个实例CMyDlg m_MyDlg;
在m_MyDlg发送了一个消息如WM_NCLBUTTONDOWN,
现在我想让基类CBaseDlg也能接收到这个消息,执行消息响应函数CBaseDlg::OnNcLButtonDown,我在CBaseDlg中添加了WM_NCLBUTTONDOWN的消息响应函数CBaseDlg::OnNcLButtonDown,但是当m_MyDlg发送消息WM_NCLBUTTONDOWN时,基类不执行CBaseDlg::OnNcLButtonDown函数,该如何做才能让基类执行OnNcLButtonDown呢?另外,有种方法好像是在m_MyDlg中执行CBaseDlg::OnNcLButtonDown,也可以达到执行CBaseDlg::OnNcLButtonDown基类函数的目的,但是有点麻烦,请问有没有更好的办法。

解决方案 »

  1.   

    调用CBaseDlg::OnNcLButtonDown有什么不好?MFC自动添加的代码也是这么做的。
    void CMyDlg::OnNcLButtonDown(UINT nHitTest, CPoint point)
    {
        // TODO: Add your message handler code here and/or call default    CBaseDlg::OnNcLButtonDown(nHitTest, point);
    }
      

  2.   

    1.在子类中调CBaseDlg::OnNcLButtonDown
    2.不让子类响应WM_NCLBUTTONDOWN消息.
      

  3.   

    现在我想让基类CBaseDlg也能接收到这个消息,
    ===========================
    概念不清,消息只有窗口才能接收,也就是你上面所说的类的实例才能接收,你的问题中根本就没有基类的实例,实例是继承类的.