初始化双击MFC中的编辑控件

时间:2016-08-01 09:27:52

标签: c++ mfc

我正在尝试在编辑框上设置鼠标点击事件,当我双击编辑框时,它应该会弹出一个消息框。

ON_WM_LBUTTONDBLCLK(IDC_EDITItem, &MessageManage::OnItemDoubleClick)

void MessageManage::OnItemDoubleClick()
{
    MessageBox( m_strItemMsg, "Sample code", MB_OK | MB_ICONINFORMATION );
}

2 个答案:

答案 0 :(得分:1)

  

它没有从编辑框中点击双击事件

实现此目的的一种方法是从CEdit派生自己的类并处理ON_WM_LBUTTONDBLCLK()。以下代码响应双击示例程序中的编辑控件。

BEGIN_MESSAGE_MAP(MyEdit, CEdit)
    ON_WM_LBUTTONDBLCLK()
END_MESSAGE_MAP()

// MyEdit message handlers

void MyEdit::OnLButtonDblClk(UINT nFlags, CPoint point)
{
    // TODO: Add your message handler code here and/or call default

    CEdit::OnLButtonDblClk(nFlags, point);
}

答案 1 :(得分:1)

另一种方法是在对话框中使用PreTranslateMessage

BOOL CMFCApplication1Dlg::PreTranslateMessage(MSG* pMsg)
{
    if (pMsg->message == WM_LBUTTONDBLCLK &&
        pMsg->hwnd == ::GetDlgItem(m_hWnd, IDC_EDIT1))
    {
        AfxMessageBox(_T("Run Code"));
        return TRUE; //Important!!! Message is handled
    }

    return CDialogEx::PreTranslateMessage(pMsg);
}