我正在进行我的第一个简单的MFC项目,但我正在努力解决一个问题:希望在一个对话框中设置所有CEdit
框的焦点。我的想法是当打开对话框时,焦点放在第一个编辑框上,然后用'tab‘在它们之间交换。
我看到了SetFocus()
方法,但是我不能正确地应用它。而且,我也找不到用特定键实现焦点顺序的解决方案。
提前感谢每一个花时间来帮助我的人!
发布于 2020-01-30 15:20:40
当您的对话框首次通过在您的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。
https://stackoverflow.com/questions/59995885
复制