MFC对话框的CEdit控件回车换Tab键,并获得焦点全选中文本

Posted greenleaf1976

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MFC对话框的CEdit控件回车换Tab键,并获得焦点全选中文本相关的知识,希望对你有一定的参考价值。

对话框上有五个CEdit和两个Button控件

//重写PreTranslateMessage函数

BOOL CAddDlg::PreTranslateMessage(MSG* pMsg)
{
// TODO: 在此添加专用代码和/或调用基类
if (pMsg->message == WM_KEYDOWN && pMsg->wParam == VK_RETURN)
{
CWnd pwnd = GetFocus();
if (pwnd != NULL)
{
//判断是否是按钮控件
if (pwnd->GetDlgCtrlID() == IDOK)
{
OnBnClickedOk();
}
}
//获得下一个Tab顺序的控件指针
CWnd
pmwnd = GetNextDlgTabItem(pwnd);
if (pmwnd)
{
pmwnd->SetFocus(); //设置下一个控件获得焦点
CEdit* pEdit; //定义CEdit控件指针
pEdit = (CEdit*)pmwnd; //把获得焦点的控件指针转成CEdit控件指针,就这转换都查了好多百度,结果就这么简单):
pEdit->SetSel(0, -1); //设置全选中

        return TRUE;
    }
}
return CDialogEx::PreTranslateMessage(pMsg);

}

以上是关于MFC对话框的CEdit控件回车换Tab键,并获得焦点全选中文本的主要内容,如果未能解决你的问题,请参考以下文章

为啥 UpdateData() 在 MFC CEdit 控件的 EN_CHANGE 处理程序中不起作用

MFC的CEdit多于1024个字符自动换行

在 MFC 中,当 CEdit 控件达到最大字符时,退格不起作用

在 mfc 的 cedit 控制中处理箭头键

请教MFC中如何循环处理相同类型的控件,如编辑框之类的?

为啥子控件不出现在 MFC 派生的 CWnd 中