C++ 如何在TabCtrl中的子对话框中将焦点设置为CEdit?

C++ 如何在TabCtrl中的子对话框中将焦点设置为CEdit?,c++,visual-c++,mfc,focus,editbox,C++,Visual C++,Mfc,Focus,Editbox,我有一个对话框CDialog,里面有所有者绘制的CTabCtrl。选项卡内容是子对话框,每个选项卡一个。每个选项卡中都有一个CEdit。当用户单击某个选项卡时,我将使用ShowWindowSW_HIDE隐藏所有子对话框并显示所选对话框 问题是,例如,当我有两个选项卡时,在第一个选项卡的编辑框内单击,然后切换到第二个选项卡,输入焦点将保持在第一个选项卡中的不可见编辑框上,无论我在代码中做了什么,都尝试调用所有可能设置焦点的方法,但没有任何更改。尝试以下操作: GetDlgItem(IDC_YOUR

我有一个对话框CDialog,里面有所有者绘制的CTabCtrl。选项卡内容是子对话框,每个选项卡一个。每个选项卡中都有一个CEdit。当用户单击某个选项卡时,我将使用ShowWindowSW_HIDE隐藏所有子对话框并显示所选对话框

问题是,例如,当我有两个选项卡时,在第一个选项卡的编辑框内单击,然后切换到第二个选项卡,输入焦点将保持在第一个选项卡中的不可见编辑框上,无论我在代码中做了什么,都尝试调用所有可能设置焦点的方法,但没有任何更改。

尝试以下操作:

GetDlgItem(IDC_YOURCONTROL)->SetFocus();
或与控件链接的相关变量:

m_YOURCONTROLControl.SetFocus();

设置焦点前控件是否可见?另一个选项是设置选项卡,它必须先有显式ID itsef,然后是控件。