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);

}

原文地址:https://www.cnblogs.com/greenleaf1976/p/12283182.html

时间: 2024-08-02 11:50:59

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

修复duilib CEditUI控件和CWebBrowserUI控件中按Tab键无法切换焦点的bug

转载请说明原出处,谢谢~~:http://blog.csdn.net/zhuhongshu/article/details/41556615 在duilib中,按tab键会让焦点在Button一类的控件中切换,但是切换焦点一直存在bug,具体的描述如下: 1.在主窗体里弹出新的窗体,当新窗体中存在CEditUI控件并且焦点在此CEditUI控件上,那么按tab键将无法切换焦点而一直处于CEditUI中.(只在新窗体中有此bug,主创体中没有,原因会在后面分析) 2.CWebBrowserUI控件

VS2010/MFC对话框:为控件添加消息处理函数

为控件添加消息处理函数 创建对话框类和添加控件变量在上一讲中已经讲过,这一讲的主要内容是如何为控件添加消息处理函数. MFC为对话框和控件等定义了诸多消息,我们对它们操作时会触发消息,这些消息最终由消息处理函数处理.比如我们点击按钮时就会产生BN_CLICKED消息,修改编辑框内容时会产生EN_CHANGE消息等.一般为了让某种操作达到效果,我们只需要实现某个消息的消息处理函数. 一.添加消息处理函数 以前面的加法计算器的程序为例,说明怎样为“计算”按钮控件添加消息处理函数.添加方法列出4种:

MFC输入框CEdit控件十六进制转换

做MFC串口发送的时候,一般使用CEdit控件作为发送输入框,一般是发送输入框关联一个CString的变量,通过updatedata更新,大部分情况下我们需要使用十六进制发送,但是CString默认是字符串格式,比如输入框输入11 22 33 44 55,实际上是内容"11 22 33 44 AA",我们希望将它转换为0x11,0x22,0x33,0x44,0xaa. 那么如何实现了,通过下列的2个函数实现 1 //将一个字符串作为十六进制串转化为一个字节数组,字节间可用空格分隔, 2

CEdit控件[转]

1.CEdit.CButton等从CWnd继承了重要的功能,使用CWnd::SetWindowText和CWnd::GetWindowText可以设置和获得其上的文本, CWnd::SetFont可以设置文本字体.为了让编辑框控件接受换行符,必须设置该控件支持多行输入这一属性.若在对话框的OnInitDialog ()中设置焦点到编辑框控件上,OnInitDialog需返回FALSE. 2.CEdit::Create()用来初始化编辑控件.virtual BOOL Create( DWORD d

如何给对话框中的控件发送消息呢?Windows消息分类

以博文CTabCtrl中介绍的那样,给Tab添加子对话框来显示Tab内容.那么如果这个子对话框中含有个CTreeCtrl控件,有个Button控件,我想要模拟给这两个控件发送消息,该怎么办呢?直接把给控件的消息给控件容器(控件的父窗口)是没有用的.为什么呢?首先要明白windows的消息分类: Windows消息的分类 1. 标准消息(队列消息)除WM_COMMAND之外,所有以WM_开头的消息都是标准消息,如WM_MOUSEMOVE.WM_LBUTTONUP.WM_KEYDOWN.WM_C

MFC入门教程之控件(7)设备自动检测ondevicechange的添加和使用

MFC入门学习(1)了解MFC 源文档<http://blog.csdn.net/codectq/article/details/19131227> MFC入门学习之控件(2)创建一个对话框窗口并在运行时显示 源文档<http://blog.csdn.net/codectq/article/details/19131289> MFC入门学习之控件(3)标签控件Tab Control的添加和使用 源文档<http://blog.csdn.net/codectq/article/

OpenCV 通过 MFC 的 Picture Control 控件操作图像

如果希望对显示在MFC Picture Control 控件里的图像进行操作,比如画线画点之类的,可以利用 OpenCV 结合 MFC 本身的鼠标响应函数来实现. 如何将图像显示到 Picture Control 控件不谈,本文是采用的这篇博客所介绍的方法实现的. 点击打开链接 给对话框添加 WM_LBUTTONDOWN 鼠标左键点击消息,在消息响应函数中添加如下代码: void CMFCOpenCVShowDlg::OnLButtonDown(UINT nFlags, CPoint point

OpenCV 2.2版本以上显示图片到 MFC 的 Picture Control 控件中

OpenCV 2.2 以及后面的版本取消掉了 CvvImage.h 和CvvImage.cpp 两个文件,直接导致了苦逼的程序员无法调用里面的显示函数来将图片显示到 MFC 的 Picture Control 控件中.为此,网上很多人表示只要将那两个文件人为的提取出来然后放到工程里面就解决问题了,也提供了两个文件的下载,但是这麻烦不说,还会导致一些奇奇怪怪的报错(至少本人是这样的,很崩溃!).所以在了解了一些gdi绘图之后结合网上的代码写了如下的函数,只需调用就可以将OpenCV的图片显示在上面

MFC之自绘控件

在描绘MFC界面时,MFC自带的控件样式是绝对不满足界面的需求的. 所以我们就要在MFC自带控件基础上对控件样式进行重绘. 在采用自绘前界面样式 采用自绘后界面样式 是不是自绘控件后看起来正常了很多? 自绘控件的步骤: 我们以做一个关闭按钮为例 先创建一个MFC类继承自CButton. 给这个类添加 一个虚函数DrawItem()和 一个afx BOOL OnEraseBkgnd()函数(一般以afx开头的函数都会在消息映射里面有一条映射) DrawItem()是控件的自绘处理函数,在这个函数中