关于EDIT BOX控件的焦点设置问题

yuanyi_604 2010-07-12 04:40:35
在使用
GetDlgItem (IDC_EDIT1)->PostMessage(WM_SETFOCUS,0,0);
设置焦点,运行程序可以看到焦点已经在控件EDIT1上,有光标在闪,但是无法输入。。。
请问,在不改变“ GetDlgItem (IDC_EDIT1)->PostMessage(WM_SETFOCUS,0,0); ”的前提下,怎么样才能使键盘输入有效?
...全文
709 30 打赏 收藏 转发到动态 举报
写回复
用AI写文章
30 条回复
切换为时间正序
请发表友善的回复…
发表回复
buyong 2011-10-20
  • 打赏
  • 举报
回复
这个才是正解。
[Quote=引用 16 楼 worcy_kiddy 的回复:]
C/C++ code


// OnInitDialog 中
GetDlgItem(IDC_EDIT1)->SetFocus();
// 将return TRUE改为下面:
return FALSE;
[/Quote]
yuanyi_604 2010-07-13
  • 打赏
  • 举报
回复
感谢各位的技术支持!
正解见:
http://www.huarw.com/program/vc/vc02/200901/1657025.html
yuanyi_604 2010-07-13
  • 打赏
  • 举报
回复
[Quote=引用 27 楼 liberty724048 的回复:]
大哥看这样行不:
GetDlgItem (IDC_EDIT1)->GetParent()->SetForegroundWindow();
GetDlgItem (IDC_EDIT1)->PostMessage(WM_SETFOCUS,0,0);
[/Quote]

还是不行。。。
Liberty-Bird 2010-07-13
  • 打赏
  • 举报
回复
大哥看这样行不:
GetDlgItem (IDC_EDIT1)->GetParent()->SetForegroundWindow();
GetDlgItem (IDC_EDIT1)->PostMessage(WM_SETFOCUS,0,0);
yuanyi_604 2010-07-12
  • 打赏
  • 举报
回复
[Quote=引用 25 楼 xiaokang007 的回复:]
无法输入 是因为 一直在 设置 焦点吧
[/Quote]
不是
xiaokang007 2010-07-12
  • 打赏
  • 举报
回复
无法输入 是因为 一直在 设置 焦点吧
yuanyi_604 2010-07-12
  • 打赏
  • 举报
回复
[Quote=引用 23 楼 visualeleven 的回复:]
引用 21 楼 yuanyi_604 的回复:
引用 20 楼 zhaoxueqian1988 的回复:
引用楼主 yuanyi_604 的回复:
在使用
GetDlgItem (IDC_EDIT1)->PostMessage(WM_SETFOCUS,0,0);
设置焦点,运行程序可以看到焦点已经在控件EDIT1上,有光标在闪,但是无法输入。。。
请问,在不改变“ GetDlgItem……
[/Quote]

无效。。。。
Eleven 2010-07-12
  • 打赏
  • 举报
回复
[Quote=引用 21 楼 yuanyi_604 的回复:]
引用 20 楼 zhaoxueqian1988 的回复:
引用楼主 yuanyi_604 的回复:
在使用
GetDlgItem (IDC_EDIT1)->PostMessage(WM_SETFOCUS,0,0);
设置焦点,运行程序可以看到焦点已经在控件EDIT1上,有光标在闪,但是无法输入。。。
请问,在不改变“ GetDlgItem (IDC_EDIT1)->PostMessage……
[/Quote]
放在view类的void CXXXView::OnInitialUpdate()函数中
GetDlgItem(IDC_EDIT1)->SetFocus();
sunyouhao 2010-07-12
  • 打赏
  • 举报
回复
GetDlgItem (IDC_EDIT1)->SetFocus();
GetDlgItem (IDC_EDIT1)->PostMessage(WM_SETFOCUS,0,0);
这样呢
yuanyi_604 2010-07-12
  • 打赏
  • 举报
回复
[Quote=引用 20 楼 zhaoxueqian1988 的回复:]
引用楼主 yuanyi_604 的回复:
在使用
GetDlgItem (IDC_EDIT1)->PostMessage(WM_SETFOCUS,0,0);
设置焦点,运行程序可以看到焦点已经在控件EDIT1上,有光标在闪,但是无法输入。。。
请问,在不改变“ GetDlgItem (IDC_EDIT1)->PostMessage(WM_SETFOCUS,0,0); ”的前提下,怎么样才能……
[/Quote]

目前在初始化函数中出现。
也曾将也在使用函数Create创建完成对话框之后,才调用PostMessage(WM_SETFOCUS,0,0);使之出现。
两种效果一样。

jogger007 2010-07-12
  • 打赏
  • 举报
回复
[Quote=引用楼主 yuanyi_604 的回复:]
在使用
GetDlgItem (IDC_EDIT1)->PostMessage(WM_SETFOCUS,0,0);
设置焦点,运行程序可以看到焦点已经在控件EDIT1上,有光标在闪,但是无法输入。。。
请问,在不改变“ GetDlgItem (IDC_EDIT1)->PostMessage(WM_SETFOCUS,0,0); ”的前提下,怎么样才能使键盘输入有效?
[/Quote]
GetDlgItem (IDC_EDIT1)->PostMessage(WM_SETFOCUS,0,0);
该语句在那个函数中出现的?
yuanyi_604 2010-07-12
  • 打赏
  • 举报
回复
我的EDIT BOX控件已经设置为第一个了。。。。
yuanyi_604 2010-07-12
  • 打赏
  • 举报
回复
[Quote=引用 17 楼 visualeleven 的回复:]
引用 12 楼 yuanyi_604 的回复:
引用 11 楼 visualeleven 的回复:
引用 10 楼 yuanyi_604 的回复:
大家帮帮忙啊。。。
我又追加30分了。。。。
可怜都没分了

请将你的问题描述清楚。。。


1,MFC创建一个多文档工程
2,使用分隔条将子对话框分割为两部分
3,每部分创建一个对话框(控件所在对话框)
4,在控件所在的对话……
[/Quote]

和你说的一样,用CFormView作为View类,然后用CSplitterWnd来拆分视图框架啊,CFormView中方有Edit框,想要在CFormView中设置Edit框得到焦点。。。

“在你的CFormView类的相关联的对话框模板,即在资源编辑器对话框模板上Ctrl+D,将Edit的Tab order设置为第一个”啥意思?
Eleven 2010-07-12
  • 打赏
  • 举报
回复
[Quote=引用 12 楼 yuanyi_604 的回复:]
引用 11 楼 visualeleven 的回复:
引用 10 楼 yuanyi_604 的回复:
大家帮帮忙啊。。。
我又追加30分了。。。。
可怜都没分了

请将你的问题描述清楚。。。


1,MFC创建一个多文档工程
2,使用分隔条将子对话框分割为两部分
3,每部分创建一个对话框(控件所在对话框)
4,在控件所在的对话框中设置焦点为控件IDC_EDIT1。。。。
还……
[/Quote]
你用CFormView作为View类,然后用CSplitterWnd来拆分视图框架啊,CFormView中方有Edit框,想要在CFormView中设置Edit框得到焦点???

--------------------------------------
在你的CFormView类的相关联的对话框模板,即在资源编辑器对话框模板上Ctrl+D,将Edit的Tab order设置为第一个。。。
黑泡泡选手 2010-07-12
  • 打赏
  • 举报
回复

// OnInitDialog 中
GetDlgItem(IDC_EDIT1)->SetFocus();
// 将return TRUE改为下面:
return FALSE;
hyf699 2010-07-12
  • 打赏
  • 举报
回复
关注中
yuanyi_604 2010-07-12
  • 打赏
  • 举报
回复
[Quote=引用 13 楼 zwfgdlc 的回复:]
子窗口跟父窗口在同一个类吗?
[/Quote]

不在
zwfgdlc 2010-07-12
  • 打赏
  • 举报
回复
子窗口跟父窗口在同一个类吗?
yuanyi_604 2010-07-12
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 visualeleven 的回复:]
引用 10 楼 yuanyi_604 的回复:
大家帮帮忙啊。。。
我又追加30分了。。。。
可怜都没分了

请将你的问题描述清楚。。。
[/Quote]

1,MFC创建一个多文档工程
2,使用分隔条将子对话框分割为两部分
3,每部分创建一个对话框(控件所在对话框)
4,在控件所在的对话框中设置焦点为控件IDC_EDIT1。。。。
还没清楚吗?。。。。。
Eleven 2010-07-12
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 yuanyi_604 的回复:]
大家帮帮忙啊。。。
我又追加30分了。。。。
可怜都没分了
[/Quote]
请将你的问题描述清楚。。。
加载更多回复(10)

15,979

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 界面
社区管理员
  • 界面
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧