我正在处理我的第一个简单的 MFC 项目,但我正在努力解决一个问题:想要CEdit
在其中一个对话框中设置所有框的焦点。我的想法是当打开对话框时,焦点放在第一个编辑框上,然后用“选项卡”在它们之间交换。
我看到了方法SetFocus()
,但我无法正确应用它。我也找不到用特定键实现焦点顺序的解决方案。
提前感谢所有花时间帮助我的人!
我正在处理我的第一个简单的 MFC 项目,但我正在努力解决一个问题:想要CEdit
在其中一个对话框中设置所有框的焦点。我的想法是当打开对话框时,焦点放在第一个编辑框上,然后用“选项卡”在它们之间交换。
我看到了方法SetFocus()
,但我无法正确应用它。我也找不到用特定键实现焦点顺序的解决方案。
提前感谢所有花时间帮助我的人!
当您的对话框首次显示时,您可以通过调用SetFocus
您的OnInitDialog()
函数将焦点设置到给定控件。但是,如果您这样做,您OnInitDialog()
必须返回FALSE
:
BOOL MyDialog::OnInitDialog() {
CDialog::OnInitDialog(); // Call base class member
GetDlgItem(IDC_MYEDIT)->SetFocus();
//..
return FALSE; // Otherwise, the framework will reset the focus to its default
}
从M/S 文档:
返回值
指定应用程序是否已将输入焦点设置到对话框中的控件之一。如果 OnInitDialog 返回非零值,Windows 将输入焦点设置到默认位置,即对话框中的第一个控件。仅当应用程序已将输入焦点显式设置为对话框中的某个控件时,应用程序才能返回 0。