将静态文本的属性选中WM_NOTIFY
然后,将它的ID修改称自己的ID,不要使用IDC_STATIC
就可以响应OnLButton的消息了。

解决方案 »

  1.   

    不好意思,写错了
    将它的属性Notify选中
      

  2.   

    CStatic 也是从CWnd中继承来的,所以只自己添加就行了,由类向导不支持,你用文本编辑器完成就行了
      

  3.   

    一、你把静态文本的ID改成别的ID,就可以用类向导添加BN_CLICKED的消息映射;
    二、你只有选中静态文本的Notify,消息映射函数才会执行;
    三、如果你想处理不其它消息如DOUBLECLICKED、MOUSEMOVE等,你可以从CStatic派生自己的静态文本类这样一来你就可以随心所欲地处理任何消息了。
    满意了吗?
      

  4.   

    重载你的静态文本框,在PreSubclassWindow()函数中实现一下的代码:
    void COwnStatic::PreSubclassWindow() 
    {
        // 要求得到 STN_CLICKED 通知消息
        DWORD dwStyle = GetStyle();
        ::SetWindowLong( GetSafeHwnd(), GWL_STYLE, dwStyle | SS_NOTIFY);    CStatic::PreSubclassWindow();
    }问题搞定
      

  5.   

    哦,对了,另外还要修改你的消息映射表:BEGIN_MESSAGE_MAP(COwnStatic, CStatic)
        //{{AFX_MSG_MAP(CHyperLink)
        ON_CONTROL_REFLECT(STN_CLICKED, OnClicked)
        ... ...
        //}}AFX_MSG_MAP
    END_MESSAGE_MAP()
      

  6.   

    试过了,easper的方法可行,我原先还不知道,一直自己重载子类,不过重载子类可以做许多其他的事情。
      

  7.   

    试过了,easypaper的方法可行,我原先还不知道,一直自己重载子类,不过重载子类可以做许多其他的事情。
      

  8.   

    Sorry,我把easypaper的名字写错了。