在VC中,继承一个STATIC类,
class CPanel : public CStatic//用CPanel.Create(WS_CHILD|WS_VISIBLE , rect, this, 100, NULL) ;
显示后,
想能捕获鼠标事件,怎么能做到,
手工的方式加了消息影射:afx_msg void OnLButtonUp(UINT nFlags, CPoint point);也没有用
请高手指点一下谢谢 

解决方案 »

  1.   

    在 BEGIN ——MESSAGEMAP ON——MESSAGE(WM_CLICK , ONCLICK)  ;//ONLCICK  是一个过程   
    应该就可以了 和END——MESSAGEMAP  
      

  2.   

    应该是在什么地方写,我在。H中写了,他不允许,
       //{{AFX_MSG(CCard)
        afx_msg void OnLButtonUp(UINT nFlags, CPoint point);
        afx_msg void OnPaint();
        ON_MESSAGE( WM_CLICK, OnLButtonUp );
        //}}AFX_MSG
        DECLARE_MESSAGE_MAP()在。CPP中写:
    BEGIN_MESSAGE_MAP( CMyWnd, CMyParentWndClass )
        //{{AFX_MSG_MAP( CMyWnd
        ON_MESSAGE( WM_CLICK, OnLButtonUp );
        //}}AFX_MSG_MAP
    END_MESSAGE_MAP( )
    也不允许,说,AFX_MSG_MAP 已经定义过了!!
      

  3.   

    首先,确认创建的时候一定要具有SS_NOTIFY 属性,这样才可以响应鼠标
    其次,建立消息影射
      

  4.   

    不好意思了,很笨啊,
    程序部件:一个CDialog,自己创建一个继承类 class CPanel : public CStatic//
    在对话框中(CDialog),加了一个按钮,代码:
    CRect r;
    CPanel MyPanel;
    r.SetRect (100,100,300,200);
    MyPanel.Create(WS_CHILD|WS_VISIBLE|SS_NOTIFY  , r, this, 100,NULL) ;
    DWORD dwStyle = MyPanel.GetStyle();
    if (!(dwStyle & SS_NOTIFY)) {
        ::SetWindowLong(m_hWnd, GWL_STYLE, dwStyle | SS_NOTIFY);
    }
    在CPanel.cpp中定义一个 OnClick()函数;
    有消息影射:
    BEGIN_MESSAGE_MAP(CCard, CWnd)//CStatic)
        //{{AFX_MSG_MAP(CCard)
        ON_COMMAND( STN_CLICKED, OnClick)//WM_COMMAND
        ON_BN_CLICKED(IDC_BUTTON1, OnClick)
        ON_CONTROL_REFLECT(STN_CLICKED, OnClick)
        //}}AFX_MSG_MAP
    END_MESSAGE_MAP()
    但是做了后,还是不可以收到消息
    哪位高手再指点一下,哪里写的不对,或者没有照顾到,谢谢
      

  5.   

    同意bobob(PDFViewer2.0 Release拉!) ,要有NOTIFY属性。可以直接在Static控件的属性里勾选上Notify