我直接放了一个空的PopupMenu,然后WebBrowser的PopupMenu属性指向PopupMenu1,但是点击鼠标右键还是有快捷菜单出来,我想可能是因为WebBrowser调入的html本身有快捷菜单,但是我不想要该怎么办啊?

解决方案 »

  1.   

    WebBrowser 只是个容器,嵌入页面后,一般由网页的语言控制系统功能。
    如果想屏蔽右键,不如在要调入的 html 里写一段脚本。
      

  2.   

    禁止WebBrowser的右键菜单    
      disable the Context Menu in a TWebbrowser? var
    HookID: THandle;
    function MouseProc(nCode: Integer; wParam, lParam: Longint): Longint; stdcall;
    var
    szClassName: array[0..255] of Char;
    const
    ie_name = 'Internet Explorer_Server';
    begin
    case nCode < 0 of
    True:
    Result := CallNextHookEx(HookID, nCode, wParam, lParam)
    else
    case wParam of
    WM_RBUTTONDOWN,
    WM_RBUTTONUP:
    begin
    GetClassName(PMOUSEHOOKSTRUCT(lParam)^.HWND, szClassName, SizeOf(szClassName));
    if lstrcmp(@szClassName[0], @ie_name[1]) = 0 then
    Result := HC_SKIP
    else
    Result := CallNextHookEx(HookID, nCode, wParam, lParam);
    end
    else
    Result := CallNextHookEx(HookID, nCode, wParam, lParam);
    end;
    end;
    end;
    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;
    procedure TForm1.Button1Click(Sender: TObject);
    begin
    Webbrowser1.Navigate('http://www.google.com&#39;);
    end;
      

  3.   

    procedure OnAppMsg(var msg: tmsg;var handled: boolean);
    procedure TForm1.FormCreate(Sender: TObject);
    begin
      WebBrowser1.Navigate('http://www.163.com');
      Application.OnMessage := OnAppMsg;
    end;procedure TForm1.OnAppMsg(var msg: tmsg; var handled: boolean);
    begin
      if (msg.message = wm_rbuttondown) then
      begin
        showmessage(inttostr(WebBrowser1.Handle));
        showmessage(inttostr(windowfrompoint(msg.pt)));
        showmessage(inttostr(msg.lParam));
        showmessage(inttostr(longint(@msg.wParam)));
        showmessage('trap browser mouse');
      end
      else
        inherited;
    end;
    _____________________________________
    procedure OnAppMsg(var msg: tmsg;var handled: boolean);
    procedure TForm1.FormCreate(Sender: TObject);
    begin
      WebBrowser1.Navigate('http://www.163.com');
      Application.OnMessage := OnAppMsg;
    end;procedure TForm1.OnAppMsg(var msg: tmsg; var handled: boolean);
    begin
      if (msg.message = wm_rbuttondown) then
      begin
        showmessage(inttostr(WebBrowser1.Handle));
        showmessage(inttostr(windowfrompoint(msg.pt)));
        showmessage(inttostr(msg.lParam));
        showmessage(inttostr(longint(@msg.wParam)));
        showmessage('trap browser mouse');
      end
      else
        inherited;
    end;