我正在尝试在对话框中的ComboBox控件上使用GetFocus(),但由于某种原因它无法正常工作。
即使我使用SetFocus()函数设置焦点它也不起作用,但看起来它有键盘焦点。
SetFocus(hKeysComboBox);
if (GetFocus() == hKeysComboBox) // This is false
也许是因为它在对话框中?我不知道,这看起来很简单。
答案 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。