怎样让CEdit编辑框响应鼠标双击事件
展开全部
CEdit响应鼠标双击事件 (2012-02-06 22:13:07)转载▼
(1)重载PreTranslateMessage
重载主窗口的PreTranslateMessage函数就可以,判断是发给Edit控件的双击消息后把控件进行处理,如下:
BOOL CYourDlg::PreTranslateMessage(MSG* pMsg) { if (pMsg->hwnd == m_Edit.m_hWnd && pMsg->message == WM_LBUTTONDBLCLK) // do something return Cdialog::PreTranslateMessage(pMsg); } (2) 派生类: 从新派生一个CEdit类 在头文件中添加: //{{AFX_MSG(CMyEdit)
//NOTE-the ClassWizard will add and remove memb functions here.
afx_msg void OnLButtonDblClk( UINT nFlags, Cpoint point );
//}}AFX_MSG 在cpp文件中添加: BEGIN_MESSAGE_MAP(CMyEdit, CEdit)
//{{AFX_MSG_MAP(CMyEdit)
ON_WM_LBUTTONDBLCLK()
//}}AFX_MSG_MAP
END_MESSAGE_MAP() /////////////////////////////////////////////////////////////////////////////
//CmyEdit message handlers
void CmyEdit::OnLButtonDblClk(UINT nFlags, CPoint point)
{
//TODO: Add your message handler code here and/or call default
Cedit::OnLButtonDblClk(nFlags, point);
}
以上两种方法都可以,不过在定义EDIT控件变量是要将变量类型选为“CONTROL”类,然后选择CEDIT类或者自定义的类。
(1)重载PreTranslateMessage
重载主窗口的PreTranslateMessage函数就可以,判断是发给Edit控件的双击消息后把控件进行处理,如下:
BOOL CYourDlg::PreTranslateMessage(MSG* pMsg) { if (pMsg->hwnd == m_Edit.m_hWnd && pMsg->message == WM_LBUTTONDBLCLK) // do something return Cdialog::PreTranslateMessage(pMsg); } (2) 派生类: 从新派生一个CEdit类 在头文件中添加: //{{AFX_MSG(CMyEdit)
//NOTE-the ClassWizard will add and remove memb functions here.
afx_msg void OnLButtonDblClk( UINT nFlags, Cpoint point );
//}}AFX_MSG 在cpp文件中添加: BEGIN_MESSAGE_MAP(CMyEdit, CEdit)
//{{AFX_MSG_MAP(CMyEdit)
ON_WM_LBUTTONDBLCLK()
//}}AFX_MSG_MAP
END_MESSAGE_MAP() /////////////////////////////////////////////////////////////////////////////
//CmyEdit message handlers
void CmyEdit::OnLButtonDblClk(UINT nFlags, CPoint point)
{
//TODO: Add your message handler code here and/or call default
Cedit::OnLButtonDblClk(nFlags, point);
}
以上两种方法都可以,不过在定义EDIT控件变量是要将变量类型选为“CONTROL”类,然后选择CEDIT类或者自定义的类。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询