我从static类派生了自己的一个类
发现它自己不响应鼠标单击消息和WM_SETFOCUS,而是把消息发给父窗口了 
有办法让它自己响应这消息吗?
如果从控件框里直接拖一个过来的话,选上Notify这个选项就可以响应Click了
但我主要是想要响应WM_SETFOCUS,可以吗?

解决方案 »

  1.   

    在资源编辑中设置static控件的属性,在style属性页中将Notify选上,这样static控件才接收消息
      

  2.   

    直接在继承类里面影射消息就可以了:
    class CHyperLink : public CStatic
    {
    //
    afx_msg void OnClicked();
    //
    }/////////////////////////////////////BEGIN_MESSAGE_MAP(CHyperLink, CStatic)
        //{{AFX_MSG_MAP(CHyperLink)
        ON_CONTROL_REFLECT(STN_CLICKED, OnClicked)
        //}}AFX_MSG_MAP
    END_MESSAGE_MAP()/////////////////////////////
    void CHyperLink::OnClicked()
    {//
    }
      

  3.   

    CHyperLink 的代码很多,你可以在网上搜索一下,可以参考!
      

  4.   

    create static控件时添加SS_NOTIFY style
      

  5.   

    我是主要想要响应WM_SETFOCUS啊
      

  6.   

    WM_SETFOCUS 应该就比较麻烦了,你为什么要用static呢?用button和edit都可以吧