C++ MFC:如何设置CEdit框的焦点?
我正在做我的第一个简单的MFC项目,但我遇到了一个问题:想在其中一个对话框中设置所有C++ MFC:如何设置CEdit框的焦点?,c++,c,visual-c++,mfc,cmfctoolbar,C++,C,Visual C++,Mfc,Cmfctoolbar,我正在做我的第一个简单的MFC项目,但我遇到了一个问题:想在其中一个对话框中设置所有CEdit框的焦点。我的想法是,当打开对话框时,焦点将放在第一个编辑框上,然后用“tab”在它们之间切换 我看到了方法SetFocus(),但无法正确应用它。此外,我也找不到一个解决方案来实现具有特定键的焦点顺序 提前感谢所有花时间帮助我的人 当您的对话框第一次显示时,您可以通过调用OnInitDialog()函数中的SetFocus将焦点设置为给定控件。但是,如果这样做,您的OnInitDialog()必须返回
CEdit
框的焦点。我的想法是,当打开对话框时,焦点将放在第一个编辑框上,然后用“tab”在它们之间切换
我看到了方法SetFocus()
,但无法正确应用它。此外,我也找不到一个解决方案来实现具有特定键的焦点顺序
提前感谢所有花时间帮助我的人 当您的对话框第一次显示时,您可以通过调用
OnInitDialog()
函数中的SetFocus
将焦点设置为给定控件。但是,如果这样做,您的OnInitDialog()
必须返回FALSE
:
BOOL MyDialog::OnInitDialog(){
CDialog::OnInitDialog();//调用基类成员
GetDlgItem(IDC_MYEDIT)->SetFocus();
//..
return FALSE;//否则,框架会将焦点重置为默认值
}
从:
返回值指定应用程序是否已将输入焦点设置为 对话框中的控件。如果OnInitDialog返回非零, Windows将输入焦点设置为默认位置,即第一个位置 对话框中的控件。仅当应用程序已返回0时,它才能返回0 显式地将输入焦点设置为对话框中的一个控件 盒子
.比我快。)这是默认行为。您不必编写任何代码来实现这一点。唯一需要做的是,您的控件按照希望选项卡在它们之间移动的方式排序,初始编辑控件是资源脚本中的第一个控件。