我用CStatic继承了一个新类
class CStaticPictrue : public CStatic
然后用Create动态创建请问如何触发CStaticPictrue类中的鼠标事件例如OnRButtonDown等。

解决方案 »

  1.   

    在ClassWizard中已经定义了
    void CStaticPictrue::OnRButtonDown(UINT nFlags, CPoint point) 
    {
    // TODO: Add your message handler code here and/or call default

    CStatic::OnRButtonDown(nFlags, point);
    }
      

  2.   

    看看你在创建Static控件的时候,有没有添加SS_NOTIFY
      

  3.   

    添加了也没反映
    m_wndstatic.Create("",WS_CHILD|WS_VISIBLE|SS_BITMAP|SS_CENTERIMAGE|SS_NOTIFY,CRect(100,100,280,280),this,1);
      

  4.   

    like this:CStatic myStatic;
    myStatic.Create(_T("my static"),     WS_CHILD|WS_VISIBLE|SS_CENTER|SS_NOTIFY,//SS_NOTIFY这个风格是关键,否则不会响应鼠标消息!! 
      CRect(10,10,150,50), this);
      

  5.   

    CStatic myStatic;定义为成员变量,绝对可以!!已测试!
      

  6.   

    我今天刚刚解决了这个问题。和feinianoliang的方法一样,加上SS_NOTIFY,然后在你重载的类中利用classWizard添加相应的鼠标事件。一切ok!祝好运!
      

  7.   

    为测试方便,你可以这样试一下:(加一个WS_BORDER方便看) m_wndstatic.Create("",WS_CHILD|WS_VISIBLE|SS_BITMAP|SS_CENTERIMAGE|SS_NOTIFY|WS_BORDER,CRect(100,100,280,280),this,1);
      

  8.   

    关键是要有SS_NOTIFY属性,可以象楼上那样在创建时设定,也可以用ModifyStyle(0,SS_NOTIFY,0)来修改完成。
      

  9.   

    我试过在Dialog base中可以通过,但在single document中却不能通过。