把 CMyStatic m_mystatic; 改成 CMyStatic * m_pMyStatic;m_mystatic.SubclassDlgItem(IDC_S3,this);
改成 
m_pMyStatic = new mystatic(this);
pMyStatic.Create(...);析构函数加上
delete m_pMyStatic;代码的参数可能不完全正确,查一下参考。

解决方案 »

  1.   

    不行= =~~~Create哪个我不会用~~
      

  2.   

    不要那么复杂,你的问题是 主对话框中 检测 控件的MOUSEMOVE,这个可以在对话框的BOOL CxxxxDlg::PreTranslateMessage(MSG* pMsg) 
    来完成.
    如果是从 cstatic 派生CYourStatic 那么可以在CYourStatic的MOUSEMOVE
    中处理
      

  3.   

    void CMyStatic::OnMouseMove(UINT nFlags, CPoint point)
    {
        // TODO: 在此添加消息处理程序代码和/或调用默认值
        if(this->GetParent()   !=NULL)
            GetParent()->SendMessage(WM_STATICMOUSE);
        CStatic::OnMouseMove(nFlags, point);
    }这里与Parent已无关了,
    你调用int GetDlgCtrlID( ) 就知道 是哪个 Static 了 ,然后 switch 就可以分开处理了
      

  4.   

    不要研究了,static控件屏蔽了所有用户输入的消息The CStatic class provides the functionality of a Windows static control. A static control is a control used to display text, to draw frames or lines separating other controls, or to display icons. A static control doesn't accept user input, but it can notify its parent of stylus taps if it's created with SS_NOTIFY style.
      

  5.   

    那我想实现static text控件的鼠标移动事件~~该怎么做?撇开这段代码不说~~~~求指教~我真的没办法了~~~纷纷全给你~~~
      

  6.   

    哪里有教程吗?我一步步去学习也可以~~~只要能做到~~谢谢了~~就不会加个SS_NOTIFY吗?
      

  7.   

    “就不会加个SS_NOTIFY吗?”
    通常 在 资源中 加上 , 一旦 派生 是 必须的, 否则 无 消息可言。
      

  8.   

    换个思路,用textout在对话框上显示一段文字,直接用对话框的mousemove事件,判断鼠标在不在这段字的范围内。是不是更简单一些?
      

  9.   

    哪里有教程吗?我一步步去学习也可以~~~只要能做到~~谢谢了~~人家设计static就是用于只显示用的,lz又何必只找麻烦呢?话说,使用cwnd来实现你的功能有何不可?