【发布时间】:2012-03-21 01:40:08
【问题描述】:
我正在尝试在对话框中的 ComboBox 控件上使用 GetFocus(),但由于某种原因它不起作用。
即使我使用 SetFocus() 函数设置焦点,它也不起作用,但看起来它具有键盘焦点。
SetFocus(hKeysComboBox);
if (GetFocus() == hKeysComboBox) // This is false
也许是因为它在一个对话框中?我不知道,这看起来很简单。
【问题讨论】:
我正在尝试在对话框中的 ComboBox 控件上使用 GetFocus(),但由于某种原因它不起作用。
即使我使用 SetFocus() 函数设置焦点,它也不起作用,但看起来它具有键盘焦点。
SetFocus(hKeysComboBox);
if (GetFocus() == hKeysComboBox) // This is false
也许是因为它在一个对话框中?我不知道,这看起来很简单。
【问题讨论】:
这是一个可编辑的组合吗?那些实际上包含一个子编辑控件,当您聚焦组合时,组合又聚焦子编辑控件(以便它可以接收管理键盘输入)。您可以使用 Spy++ 查看此父/子结构。
所以要检查组合是否有焦点,您可以检查 GetFocus 的父级是否是组合。
【讨论】:
if (VC++)
{
use `tag order` property;
}
else
{
use WM_NEXTDLGCTL with SendMessage;
}
【讨论】: