如何将焦点设置到 TabCtrl 内的子对话框中的 CEdit?

发布于 2024-11-05 13:15:16 字数 255 浏览 0 评论 0原文

我有一个对话框(CDialog),其中包含所有者绘制的 CTabCtrl。选项卡内容是子对话框(每个选项卡一个)。每个选项卡中都有一个 CEdit。当用户单击选项卡时,我将使用 ShowWindow(SW_HIDE) 隐藏所有子对话框并显示选定的对话框。

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

I have a dialog box (CDialog) with owner-drawn CTabCtrl in it. Tabs content are child dialogs (one for each tab). There is an CEdit in each tab. When the user clicks a tab, I'm hiding all child dialogs using ShowWindow(SW_HIDE) and showing a selected one.

The problem is that when I have, for example, two tabs, click inside an edit box in the first tab and then switch to second, input focus stays on that (invisible) edit box in the first tab no matter what I do in my code (tried calling all methods that potentially can set focus, nothing changed).

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

携君以终年 2024-11-12 13:15:16

试试这个:

GetDlgItem(IDC_YOURCONTROL)->SetFocus();

或者与控件链接的相关变量:

m_YOURCONTROLControl.SetFocus();

Try this:

GetDlgItem(IDC_YOURCONTROL)->SetFocus();

Or the related variable linked with the control:

m_YOURCONTROLControl.SetFocus();
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文