GetFocus在对话框中的ComboBox上

时间:2012-03-21 01:40:09

标签: c++ windows winapi

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

SetFocus(hKeysComboBox);
if (GetFocus() == hKeysComboBox) // This is false

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

2 个答案:

答案 0 :(得分:3)

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

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

答案 1 :(得分:0)

if (VC++)
{
    use `tag order` property;
}
else
{
    use WM_NEXTDLGCTL with SendMessage;
}

有关详细信息,请参阅How to set focus in a dialog box