CEdit控件的回车事件
下面的例子进行如下操作:当在CEdit中按下回车的时候,触发Button1的Click事件。
步骤1、放一个CEdit控件和一个Button控件;
步骤2、选择CEdit控件的Multiline和Want return属性; (这个很重要,一定要记得)
步骤3、在对话框的PreTranslateMessage写代码:
首先在头文件中声明:
BOOL PreTranslateMessage(MSG* pMsg);
然后再源文件中定义:
BOOL CMfctempDlg::PreTranslateMessage(MSG* pMsg){
if ((pMsg->message == WM_CHAR) && (pMsg->wParam == VK_RETURN))
{
HWND hwnd1 = ((CEdit*)GetDlgItem(IDC_EDIT1))->m_hWnd; //Edit框ID号
if (pMsg->hwnd == hwnd1)
{
OnButton1();//这个可以是其他的函数,
}
}
return CDialog::PreTranslateMessage(pMsg);
}
BOOL CSendMsgDemoDlg::PreTranslateMessage(MSG* pMsg)
{
if ((pMsg->message == WM_CHAR) && (pMsg->wParam == VK_RETURN))
{
HWND hwnd1 = ((CEdit*)GetDlgItem(IDC_EDIT_CONTENT))->m_hWnd;
if (pMsg->hwnd == hwnd1)
{
((CEdit*)GetDlgItem(IDC_EDIT_CONTENT))->SetSel(0, -1); //清空Edit框所有内容
//m_edit.PostMessage(EM_SETSEL,
0, -1)
//OnBnClickedBtnOk();
}
}
return CDialog::PreTranslateMessage(pMsg);
}
点击Edit框,清空框内内容:
方法:“响应CEdit的EM_SETFOCUS消息”
void CSendMsgDemoDlg::OnEnSetfocusEditContent()
{
// TODO: 在此添加控件通知处理程序代码
::MessageBox(NULL,_T("按下了Edit框"),_T("提示"),MB_OK);
//((CEdit*)GetDlgItem(IDC_EDIT_CONTENT))->SetSel(0, -1); //清空内容
//m_edit.PostMessage(EM_SETSEL,
0, -1) //全选编辑框中的文本
}
- 上一篇: MFC中EDIT控件实现换行
- 下一篇: CEdit中对于回车键的响应