C++ Builder
| Главная | Уроки | Статьи | FAQ | Форум | Downloads | Литература | Ссылки | RXLib | Диски |

 
CppWebBrowser, Как у него убрать фокус
mirek
Отправлено: 03.06.2004, 10:03


Ученик-кочегар

Группа: Участник
Сообщений: 3



Поставил на форме CppWebBrowser с Align==alClient. Форму надо закрывать по Esc. Поставил обработчик клавиш на TForm2::OnKeyDown.
Всё работает нормально, но когда я тыкаю мышкой в этот CppWB по Esc уже не выходит.
AVC
Отправлено: 03.06.2004, 10:25


Ветеран

Группа: Модератор
Сообщений: 1583



Form->KeyPreview = true; стоит?
У меня все работает.
mirek
Отправлено: 03.06.2004, 10:49


Ученик-кочегар

Группа: Участник
Сообщений: 3



Да. В первый раз у меня тоже работает.
AVC
Отправлено: 03.06.2004, 14:36


Ветеран

Группа: Модератор
Сообщений: 1583



Тогда попробуйте отлавливать клавиши на уровне Application. Примерно так:
CODE

class TForm1 : public TForm
{
private:
TMessageEvent FOldAppMessage;
void __fastcall AppMessage (tagMSG &msg, bool &handled);
};


__fastcall TForm1::TForm1(TComponent* Owner) : TForm(Owner)
{
FOldAppMessage = Application->OnMessage;
Application->OnMessage = AppMessage;
}


void __fastcall TForm1::AppMessage (tagMSG &msg, bool &handled)
{
if (msg.message == WM_KEYDOWN)
{ if (msg.wParam == VK_ESCAPE)
 { handled = true;
   Memo1->Lines->Add("Esc");
   return;
 }
}
if (FOldAppMessage) FOldAppMessage(msg, handled);
}

Пример у меня работает.
mirek
Отправлено: 03.06.2004, 17:57


Ученик-кочегар

Группа: Участник
Сообщений: 3



Спасибо. Всё заработало.
Guest
Отправлено: 08.06.2004, 16:35


Не зарегистрирован







А, как убрать стандартное контекстное меню IE?

Вернуться в Вопросы программирования в C++Builder