tsl |
Отправлено: 18.02.2004, 14:19 |
|
Дежурный стрелочник
Группа: Участник
Сообщений: 65
|
Почему может не работать такой код:
void __fastcall TForm1::OnMessage(TMessage& m)
{
::SetFocus(this);
m.Result = 0;
}
То, что выполняется видел по точке останова. Но фокус не передается.
В чем может быть дело?
Не работает и такой код
::SetFocus(FindWindow(....)); |
|
Gedeon |
Отправлено: 18.02.2004, 14:46 |
|
Ветеран
Группа: Модератор
Сообщений: 1742
|
Зачем в форуме задавать теже вопросы в разных темах?
|
|
tsl |
Отправлено: 18.02.2004, 15:04 |
|
Дежурный стрелочник
Группа: Участник
Сообщений: 65
|
Да в том то и дело, что я на опыте убедился: перемещение форм по слоям и передача фокуса — темы разные. |
|
tsl |
Отправлено: 18.02.2004, 15:19 |
|
Дежурный стрелочник
Группа: Участник
Сообщений: 65
|
Если конкретно, я имел следующую ошибку:
Закрыл весь экран одной формой без бордюров. Так что не определишь Windows ли это. Обнаружил, что форма становится глухой переодически к клавиатуре. Обнаружил причину: при вызове последовательности таких форм, верхняя теряет фокус. По смыслу программы такое не допустимо.
Кстати, форма получает фокус посредством FormStyle = fsStayOnTop. |
|