求助:在CRichEditCtrl的派生类中-CMyRichEdit,画上了一个控件CStatic派生类-CMyStatic,但是,只要鼠标焦点在CMyRichEdit中,无论怎么在CMyStatic上边移动,焦点始终在CMyRichEdit上,而CMyStatic不能响应自己的mousemove事件?我在做一个类似阿里旺旺的软件,在菜单的问题上犯了难,CMenu的派生类没有OnPaint事件,无法重画(本人白菜一个)。所以想使用CStatic画一个那样的菜单,但是单击右键只能显示出自己的菜单,却不能在上边进行操作。

解决方案 »

  1.   

    Static本身不响应鼠标消息
    重载OnNcHitTest
    LRESULT CMyStatic::OnNcHitTest(CPoint point) 
    {
    return HTCLIENT;
    }
      

  2.   

    刚才尝试了一下 xianglitian 的方法,但是设断点后,鼠标点击 CMyStatic区域,不能触发,貌似焦点还是在 CMyRichEdit 上,它不能触发。但是,如果这个CMyStatic在对话框上上却能响应一些消息,而画在CMyRichEdit 上却没有任何消息响应
      

  3.   

    你 CMyStatic的父窗口是谁?
    CMyRichEdit?
      

  4.   

    是的,因为我想做一个 类似 阿里旺旺的菜单,但是Cmenu派生类不太理想,所以我想使用CStatic做一个那个,就像图显示的。所以我把这CMyStatic画在了CMyRichEdit中,发现基本这些mousemove类似的消息都不能响应
      

  5.   

    原来是这样
    给你两个建议

    还是用CMenu做
    只要找对方法自绘就是了

    不用CMenu也别用CStatic
    直接用CWnd派生类来做