有没有个可以把 怎么实现Picture控件双击事件 说清楚的 高手来帮我解答下这个问题 

解决方案 »

  1.   

    子类化CStatic类,比如类名为CNewStatic,在该类中处理WM_LBUTTONDBLCLK消息
    void CNewStatic::OnLButtonDblClk(UINT nFlags, CPoint point) 
    {
    // TODO: Add your message handler code here and/or call default

    CStatic::OnLButtonDblClk(nFlags, point); AfxMessageBox(_T("HELLO"));
    }CNewStatic m_static; // 成员变量
    BOOL CXXDlg::OnInitDialog()
    {
     ...
     m_static.SubclassDlgItem(IDC_STATIC1, this);
     m_static.ModifyStyle(0, SS_NOTIFY); // 或者在资源编辑器勾上Notify属性也可以
     return TRUE;
    }
      

  2.   

    肯定有的。不过你点击在picture控件的中间没有用,因为picture控件只是一个矩形框架区域。不包含内部区域。
    响应对话框的双击事件吧
    重载这个函数:PreTranslateMessage  
    BOOL CMyDlg::PreTranslateMessage(MSG* pMsg)  
    {  
    if( pMsg->message == WM_LBUTTONDBLCLK)  
    {  
    //判断点在范围内,  
    }  
      

  3.   

    让picture继承一下CStatic是比较常用的方法,也可以通过父窗口的双击处理函数中加入坐标判断,方法很多,,一般都是采用继承CStatic的自定义picture类来实现
      

  4.   

    不子类化 CStatic 的方法 有的速度说下 
      

  5.   

    为啥不子类化?那怎么响应wm_lbuttondblclk消息?
      

  6.   


    BOOL CXXXDlg::PreTranslateMessage(MSG* pMsg) 
    {
    // TODO: Add your specialized code here and/or call the base class
    if(WM_LBUTTONDBLCLK == pMsg->message)
    {
    CStatic* pStatic = (CStatic*)GetDlgItem(IDC_STATIC1);
    ASSERT(pStatic);
    CRect rect;
    pStatic->GetWindowRect(&rect);
    if(rect.PtInRect(pMsg->pt))
    {
    AfxMessageBox(_T("Click!"));
    }
    }
    return CDialog::PreTranslateMessage(pMsg);
    }
      

  7.   

    VisualEleven两种方法都可取,特别第二种,很好,