初始化MFC中双击编辑控件

initialize double click on edit control in MFC

本文关键字:编辑 控件 双击 MFC 初始化      更新时间:2023-10-16

我正试图在编辑框上设置鼠标单击事件,当我双击编辑框时,它应该会显示一个消息框。

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

另一种选择是只在对话框中使用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);
}

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

实现这一点的一种方法是从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);
}