![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
TWebBrowser и правая кнопка мыши [D7, WinXP]
ins © (2007-07-27 20:20:00)Как можно заблокировать в вышеуказанном компоненте реакцию на нажание правой кнопки мыши
Инс (2007-08-01 20:34:00) [1]Ааа, вот из-за кого я не смог зарегистрироваться под привычным ником ;)
WASM (2007-08-01 19:51:00) [2]Кидаешь на форму ApplicationEvents
procedure TForm1.ApplicationEvents1Message(var Msg: tagMSG;
var Handled: Boolean);
begin
if (Msg.Message = WM_RBUTTONUP) then
begin
if IsChild(WebBrowser1.Handle, Msg.hwnd) then
begin
PopupMenu1Popup(Mouse.CursorPos.X, Mouse.CursorPos.Y + 2);
Handled := True;
end;
end;
end;
ins (2007-07-27 21:51:00) [3]Спасибо. Помогло.
WASM (2007-07-27 20:48:00) [4]Я делаю так
var
HookID: THandle;
procedure TForm1.FormCreate(Sender: TObject);
begin
HookID:= SetWindowsHookEx(WH_MOUSE, MouseProc, 0, GetCurrentThreadId());
end;
procedure TForm1.FormDestroy(Sender: TObject);
begin
if HookID <> 0 then
UnHookWindowsHookEx(HookID);
end;
function MouseProc(nCode: Integer; wParam, lParam: Longint): Longint; stdcall;
var
szClassName: array[0..255] of Char;
begin
if nCode < 0 then
Result:= CallNextHookEx(HookID, nCode, wParam, lParam)
else
case wParam of
WM_RBUTTONUP:
begin
GetClassName(PMOUSEHOOKSTRUCT(lParam)^.HWND, szClassName, SizeOf(szClassName));
if szClassName = 'Internet Explorer_Server' then
begin
Result:= HC_SKIP;
Form1.PopupMenu1.Popup(Mouse.CursorPos.X, Mouse.CursorPos.Y + 2);
end else
Result:= CallNextHookEx(HookID, nCode, wParam, lParam);
end
else
Result:= CallNextHookEx(HookID, nCode, wParam, lParam);
end;
end;