MFC中如何将焦点设置到指定控件上

抄的:https://blog.csdn.net/libaineu2004/article/details/24377105?depth_1-utm_source=distribute.pc_relevant.none-task&utm_source=distribute.pc_relevant.none-task

我们常常会有这样的需求,想在窗口打开的时候就将焦点(光标)设置到某个指定的控件上去。
我们都知道设置焦点需要用到setFocus这个方法(几乎任何编程环境都这样VC,C#,VB,VF都这样)。
但在VC中我们使用了GetDlgItem(IDC_XX)->SetFocus()并不一定会达到我们需要的效果。
如果我们仅仅设置了SetFocus()那是不够的,我们还需要将对话框中的OnInitDialog的最后那句return设置为"FALSE";
 
我曾经在对话框中对各个控件的输入进行校验检测,当检测到不满足要求的输入则会弹出对话框提示。
我本来的目的是弹出提示框,但确定后回到窗体中后就将焦点和光标设置到对应的控件上,结果死都上不去。
 
一开始我以为是Setfocus的设置无效,后面发现是逻辑上错了,因为当提示框显示的时候,在提示框弹出前通过SetFocus设置的焦点都将作废。
 
发现这一点后,我将弹出提示框前需要设置获得焦点的目标控件存储起来,等提示框显示完了我仍然可以对该控件进行设置焦点的操作,问题总算解决了。
 
 
获取到焦点所在的控件的ID号:

CWnd *pWnd = GetFocus();
if(pWnd == NULL)
;//no focus
else
UINT nID = pWnd->GetDlgCtrlID();

SDK:
HWND hWnd = ::GetFocus();
if(hWnd == NULL)
;//no focus
else
UINT nID = ::GetDlgCtrlID(hWnd);

原文地址:https://www.cnblogs.com/a-s-m/p/12571248.html

时间: 2024-09-29 02:24:06

MFC中如何将焦点设置到指定控件上的相关文章

WPF如何将数据库中的二进制图片数据显示在Image控件上

首先在xaml文件里定义一个Image控件,取名为img MemoryStream stream = new MemoryStream(获得的数据库对象): BitMapImage bmp = new BitMapImage(); bmp.BeginInit();//初始化 bmp.StreamSource = stream;//设置源 bmp.EndInit();//初始化结束 img.Source = bmp;//设置图像Source 很多人用这个方法都没有初始化BitMapImage ,这

QT 判断当前焦点是否在某控件上(使用hasFocus函数,毕竟QT是DIRECTUI,所以这个Focus到底代表了什么呢?)

ui->pushButtonhasFocus()->hasFocus(); ui->treeWidget->hasFocus(); http://blog.csdn.net/emdfans/article/details/28867319

WinForm设置窗体默认控件焦点

winform窗口打开后文本框的默认焦点设置,进入窗口后默认聚焦到某个文本框,两种方法: ①设置tabindex 把该文本框属性里的tabIndex设为0,焦点就默认在这个文本框里了. ②Winform的Activated事件 在Form的Activated事件中添加textBox1.Focus(), 即可获得焦点. private void Form1_Activated(object sender, EventArgs e) { textBox1.Focus(); } TextBox是可以获

4、CRM2011编程实战——将窗体中指定控件的值做处理后更新到另一个字段中

需求:将接报时间加上到期提醒时间后得到的值,更新到字段"到期截止时间" Js调用: //设置到期截止时间 function setDeadLine(){ var recordId = Xrm.Page.data.entity.getId(); var entityName = Xrm.Page.data.entity.getEntityName(); var reportedTime = Xrm.Page.getControl("hxcs_fdatetimeofrequest

C#:设置焦点在最小的TabIndex控件上

private void FocusFirstTabIndex(Control container) { // init search result varialble Control searchResult = null; // find the control with the lowest tab index foreach (Control control in container.Controls) { if (control.CanFocus && (searchResult

mysql中以blob形式存储的图片文件 通过ajax方式传输 在js中设置成img控件的src

第一步,读取blob数据, 第二步,将blob数据转换成byte数组 第三步,将byte数据进行base64加密转换成字符串并回传 第四步,接收字符串 第五步,将img控件的src设置成"data:image/jpeg;base64,"+接收的字符串; 相关代码: java: public String getAccountImg(String alias) { String sql = "SELECT imgrawdata FROM wx_account WHERE ali

VC/MFC 当鼠标移到控件上时显示提示信息

VC/MFC 当鼠标移到控件上时显示提示信息 ToolTip是Win32中一个通用控件,MFC中为其生成了一个类CToolTipCtrl,总的说来其使用方法是较简单的,下面讲一下它的一般用法和高级用法. 一般用法步骤:  添加CToolTipCtrl成员变量 m_tt.  在父窗口中调用EnableToolTips(TRUE);  在窗口的OnCreate(或者其他适当的位置)中向ToolTip中添加需要显示Tip的子窗口,并同时指定相应的显示字串CToolTipCtrl::AddTool(pW

OpenCV获取摄像头视频并在MFC的Picture控件上显示

分为两步:OpenCV获取摄像头数据+图像在Picture上显示 第一步:OpenCV获取摄像头数据 参考:http://www.cnblogs.com/epirus/archive/2012/06/04/2535190.html http://blog.sina.com.cn/s/blog_6dbe9bdb0100nii7.html http://blog.csdn.net/augusdi/article/details/8762961 #include "stdafx.h" #in

从源码中浅析Android中如何利用attrs和styles定义控件

一直有个问题就是,Android中是如何通过布局文件,就能实现控件效果的不同呢?比如在布局文件中,我设置了一个TextView,给它设置了textColor,它就能够改变这个TextView的文本的颜色.这是如何做到的呢?我们分3个部分来看这个问题1.attrs.xml  2.styles.xml  3.看组件的源码. 1.attrs.xml: 我们知道Android的源码中有attrs.xml这个文件,这个文件实际上定义了所有的控件的属性,就是我们在布局文件中设置的各类属性 你可以找到attr