2 carlzj carlzj 于 2015.07.20 22:00 提问

MFC释放按钮以后,把焦点移动到编辑框中

MFC中,想要在释放按钮以后,把焦点移动到编辑框中应该怎么做?如果用SetFocus应该怎么写?
能不能在鼠标点完按钮释放以后在编辑框内出线光标闪动呢?

6个回答

oyljerry
oyljerry   Ds   Rxr 2015.07.22 19:49
已采纳
 你在对话框的PreTranslateMessage中捕获 case WM_LBUTTONUP:  得到鼠标按钮弹起事件。同时GetDlgCtrlID()判断是否为对应的按钮ID

如果是的,然后你再
(CEdit*)GetDlgItem(IDC_EDIT1)->SetFocus();
carlzj
carlzj 谢谢!
2 年多之前 回复
caozhy
caozhy   Ds   Rxr 2015.07.20 22:14

SetFocus(GetDlgItem(IDC_XXX))

carlzj
carlzj 想得到的最终目的是:在鼠标点完按钮释放以后在编辑框内出线光标闪动
2 年多之前 回复
carlzj
carlzj 如果直接加会出错,看我下面的评论中的图片~
2 年多之前 回复
carlzj
carlzj 这个可以直接加在void CxxxxxDlg::OnBnClickedButton()之中吗?
2 年多之前 回复
zuishikonghuan
zuishikonghuan   2015.07.20 22:11

setfocus函数只有一个参数,窗口句柄
只需要提供编辑框的句柄即可
MFC的话如果我没记错应该是
edit对象->GetSafeHwnd();
毕竟我没研究过MFC,如果不行请百度一下MFC如何获得控件句柄

carlzj
carlzj   2015.07.20 22:47

图片说明

91program
91program   Ds   Rxr 2015.07.20 22:55

试试这个:GetDlgItem(IDC_EDIT1)->GetSafeHwnd();

carlzj
carlzj 能不能在鼠标点完按钮释放以后在编辑框内出线光标闪动呢?
2 年多之前 回复
lixianbo2007
lixianbo2007   2015.07.22 13:54

在按钮的鼠标弹出事件里,再将光标设置到编辑框。

Csdn user default icon
上传中...
上传图片
插入图片