在对话框中的组合框上获取焦点

Jos*_*osh 1 c++ windows winapi

我试图在对话框中的 ComboBox 控件上使用 GetFocus(),但由于某种原因它不起作用。
即使我使用 SetFocus() 函数设置焦点,它也不起作用,但看起来它具有键盘焦点。

SetFocus(hKeysComboBox);
if (GetFocus() == hKeysComboBox) // This is false
Run Code Online (Sandbox Code Playgroud)

也许是因为它在一个对话框中?我不知道,这看起来很简单。

Bre*_*McK 5

这是一个可编辑的组合吗?那些实际上包含一个子编辑控件,当您聚焦组合时,组合依次聚焦子编辑控件(以便它可以接收管理键盘输入)。您可以使用 Spy++ 查看此父/子结构。

因此,要检查组合是否具有焦点,您可以检查 GetFocus 的父级是否是组合。