GetFocus на ComboBox в диалоговом окне - PullRequest
0 голосов
/ 21 марта 2012

Я пытаюсь использовать GetFocus () для элемента управления ComboBox в диалоговом окне, но по какой-то причине он не работает.
Даже если я установил фокус с помощью функции SetFocus (), он не работает, но похоже, что он имеет фокус клавиатуры.

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

Может быть, потому что это в диалоговом окне?Я не знаю, это кажется таким простым.

Ответы [ 2 ]

3 голосов
/ 21 марта 2012

Это редактируемый комбо? Они на самом деле содержат дочерний элемент управления Edit, и когда вы фокусируете комбо, комбо, в свою очередь, фокусирует дочерний элемент редактирования (чтобы он мог управлять вводом с клавиатуры). Вы можете использовать Spy ++, чтобы увидеть эту родительскую / дочернюю структуру.

Таким образом, чтобы проверить, имеет ли комбо фокус, вы можете проверить, является ли родитель GetFocus комбо.

0 голосов
/ 21 марта 2012
if (VC++)
{
    use `tag order` property;
}
else
{
    use WM_NEXTDLGCTL with SendMessage;
}

Подробнее см. Как установить фокус в диалоговом окне .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...