![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как заблочить правую кнопку мыши в Веб Броузере? [D6, Win95/98, WinME, WinXP]
Danger © (2002-09-17 01:21:00)Если кто нить знает, то помогите плиз. Есть стандартный компонент ВебБроузер, в него загружается страничка из инета, и вот надобно сделать так что бы при нажатии правой кнопки мыши на ссылке или же на самой страничке происходило определенное событие. Буду очень благодарен за помощь!
Danger (2002-09-17 22:39:00) [1]Не подскажешь где их можно достать?
REA (2002-09-17 13:08:00) [2]Тут на сайте был пример браузера в статьях и там эта проблема решалась проще.
Song (2002-09-17 09:12:00) [3]Есть ещё способ.
Вам необходимо включить интерфейс IDocHostUIHandler. Для этого Вам понадобятся два файла: ieConst.pas и IEDocHostUIHandler.pas. В методе ShowContextMenu интерфейса IDocHostUIHandler, необходимо изменить возвращаемое значение с E_NOTIMPL на S_OK. После этого меню перестанет реагировать на правое нажатие кнопки мыши. Добавьте два модуля, упомянутые выше в секцию Uses и добавьте следующий код:
...
var
Form1: TForm1;
FDocHostUIHandler: TDocHostUIHandler;
...
implementation
...
procedure TForm1.FormCreate(Sender: TObject);
begin
FDocHostUIHandler := TDocHostUIHandler.Create;
end;
procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
FDocHostUIHandler.Free;
end;
procedure TForm1.WebBrowser1NavigateComplete2(Sender: TObject;
pDisp: IDispatch; var URL: OleVariant);
var
hr: HResult;
CustDoc: ICustomDoc;
begin
hr := WebBrowser1.Document.QueryInterface(ICustomDoc, CustDoc);
if hr = S_OK then
CustDoc.SetUIHandler(FDocHostUIHandler);
end;
Alx2 (2002-09-17 08:02:00) [4]Решение "в лоб" состоит в использовании хука типа WH_MOUSE.
При возникновении "ненужного" мышиного сообщения адресованного подопытному окну, хучной функции достаточно возвратить ненулевое значение.