C++ MFC:如何设置CEdit框的焦点?

C++ MFC:如何设置CEdit框的焦点?,c++,c,visual-c++,mfc,cmfctoolbar,C++,C,Visual C++,Mfc,Cmfctoolbar,我正在做我的第一个简单的MFC项目,但我遇到了一个问题:想在其中一个对话框中设置所有CEdit框的焦点。我的想法是,当打开对话框时,焦点将放在第一个编辑框上,然后用“tab”在它们之间切换 我看到了方法SetFocus(),但无法正确应用它。此外,我也找不到一个解决方案来实现具有特定键的焦点顺序 提前感谢所有花时间帮助我的人 当您的对话框第一次显示时,您可以通过调用OnInitDialog()函数中的SetFocus将焦点设置为给定控件。但是,如果这样做,您的OnInitDialog()必须返回

我正在做我的第一个简单的MFC项目,但我遇到了一个问题:想在其中一个对话框中设置所有
CEdit
框的焦点。我的想法是,当打开对话框时,焦点将放在第一个编辑框上,然后用“tab”在它们之间切换

我看到了方法
SetFocus()
,但无法正确应用它。此外,我也找不到一个解决方案来实现具有特定键的焦点顺序


提前感谢所有花时间帮助我的人

当您的对话框第一次显示时,您可以通过调用
OnInitDialog()
函数中的
SetFocus
将焦点设置为给定控件。但是,如果这样做,您的
OnInitDialog()
必须返回
FALSE

BOOL MyDialog::OnInitDialog(){
CDialog::OnInitDialog();//调用基类成员
GetDlgItem(IDC_MYEDIT)->SetFocus();
//..
return FALSE;//否则,框架会将焦点重置为默认值
}
从:

返回值
指定应用程序是否已将输入焦点设置为 对话框中的控件。如果OnInitDialog返回非零, Windows将输入焦点设置为默认位置,即第一个位置 对话框中的控件。仅当应用程序已返回0时,它才能返回0 显式地将输入焦点设置为对话框中的一个控件 盒子


.比我快。)这是默认行为。您不必编写任何代码来实现这一点。唯一需要做的是,您的控件按照希望选项卡在它们之间移动的方式排序,初始编辑控件是资源脚本中的第一个控件。