B bundur Unregistered / Unconfirmed GUEST, unregistred user! 2004-04-17 #1 请问如何在 TWebBrowser 中屏蔽右键菜单?
L lich Unregistered / Unconfirmed GUEST, unregistred user! 2004-04-17 #2 http://www.euromind.com/iedelphi/embeddedwb.htm 用这个版本, 在contextmenu中返回不同的返回值
刀 刀剑如梦 Unregistered / Unconfirmed GUEST, unregistred user! 2004-04-17 #3 关注此贴.... 谁在整理出相关核心代码呀.对这方面了解的不够,希望向大家学习之.
B bundur Unregistered / Unconfirmed GUEST, unregistred user! 2004-04-18 #4 另: 如何分析 BeforeNavigate2 事件的 PostData 中的元素?
幻 幻世星龙 Unregistered / Unconfirmed GUEST, unregistred user! 2004-04-18 #5 我没有用过TWebBrowser,不过在TEdit中想要屏蔽右键菜单的话,只要将它的PopupMenu的属性,设成一个空的TPopupMenu的类型就行了。
W wqhatnet Unregistered / Unconfirmed GUEST, unregistred user! 2004-04-21 #7 http://www.delphibbs.com/delphibbs/dispq.asp?lid=597528 http://www.delphibbs.com/delphibbs/dispq.asp?lid=563075
http://www.delphibbs.com/delphibbs/dispq.asp?lid=597528 http://www.delphibbs.com/delphibbs/dispq.asp?lid=563075
B bundur Unregistered / Unconfirmed GUEST, unregistred user! 2004-04-30 #8 To: wqhatnet 非常感谢 wqhatnet 兄提供的方法, 但因为我要在 ActiveX 中使用, WM_ 的消息在 ActiveX 中不被接受,所以 该方法还是不能凑效. 欢迎大家继续提供宝贵意见!
To: wqhatnet 非常感谢 wqhatnet 兄提供的方法, 但因为我要在 ActiveX 中使用, WM_ 的消息在 ActiveX 中不被接受,所以 该方法还是不能凑效. 欢迎大家继续提供宝贵意见!
S satanmonkey Unregistered / Unconfirmed GUEST, unregistred user! 2004-04-30 #9 在csdn回答的,copy过来给你。 要屏蔽掉右键菜单,完美的解决方法是实现IDocHostUIHandler.ShowContexMenu返回S_OK就可以了,你必须 自己实现这个接口,需要用到的接口定义如下 IDocHostUIHandler = interface(IUnknown) ['{bd3f23c0-d43e-11cf-893b-00aa00bdce1a}'] function ShowContextMenu(const dwID: DWORD const ppt: PPOINT; const pcmdtReserved: IUnknown const pdispReserved: IDispatch): HRESULT stdcall; function GetHostInfo(var pInfo: TDOCHOSTUIINFO): HRESULT stdcall; function ShowUI(const dwID: DWORD const pActiveObject: IOleInPlaceActiveObject; const pCommandTarget: IOleCommandTarget const pFrame: IOleInPlaceFrame; const pDoc: IOleInPlaceUIWindow): HRESULT stdcall; function HideUI: HRESULT stdcall; function UpdateUI: HRESULT stdcall; function EnableModeless(const fEnable: BOOL): HRESULT stdcall; function OnDocWindowActivate(const fActivate: BOOL): HRESULT stdcall; function OnFrameWindowActivate(const fActivate: BOOL): HRESULT stdcall; function ResizeBorder(const prcBorder: PRECT; const pUIWindow: IOleInPlaceUIWindow; const fRameWindow: BOOL): HRESULT stdcall; function TranslateAccelerator(const lpMsg: PMSG const pguidCmdGroup: PGUID; const nCmdID: DWORD): HRESULT stdcall; function GetOptionKeyPath(var pchKey: POLESTR const dw: DWORD): HRESULT stdcall; function GetDropTarget(const pDropTarget: IDropTarget; out ppDropTarget: IDropTarget): HRESULT stdcall; function GetExternal(out ppDispatch: IDispatch): HRESULT stdcall; function TranslateUrl(const dwTranslate: DWORD const pchURLIn: POLESTR; var ppchURLOut: POLESTR): HRESULT stdcall; function FilterDataObject(const pDO: IDataObject; out ppDORet: IDataObject): HRESULT stdcall; end; ICustomDoc=interface(IUnknown) ['{3050f3f0-98b5-11cf-bb82-00aa00bdce0b}'] function SetUIHandler(const pUIHandler:IDocHostUIHandler):HRESULT stdcall; end; ICustomDoc接口是设置IDocHostUIHandler的接口 使用如下 (webbrowser1.document as ICustomDoc).SetUIHandler(IDocHostUIHandler的实例);
在csdn回答的,copy过来给你。 要屏蔽掉右键菜单,完美的解决方法是实现IDocHostUIHandler.ShowContexMenu返回S_OK就可以了,你必须 自己实现这个接口,需要用到的接口定义如下 IDocHostUIHandler = interface(IUnknown) ['{bd3f23c0-d43e-11cf-893b-00aa00bdce1a}'] function ShowContextMenu(const dwID: DWORD const ppt: PPOINT; const pcmdtReserved: IUnknown const pdispReserved: IDispatch): HRESULT stdcall; function GetHostInfo(var pInfo: TDOCHOSTUIINFO): HRESULT stdcall; function ShowUI(const dwID: DWORD const pActiveObject: IOleInPlaceActiveObject; const pCommandTarget: IOleCommandTarget const pFrame: IOleInPlaceFrame; const pDoc: IOleInPlaceUIWindow): HRESULT stdcall; function HideUI: HRESULT stdcall; function UpdateUI: HRESULT stdcall; function EnableModeless(const fEnable: BOOL): HRESULT stdcall; function OnDocWindowActivate(const fActivate: BOOL): HRESULT stdcall; function OnFrameWindowActivate(const fActivate: BOOL): HRESULT stdcall; function ResizeBorder(const prcBorder: PRECT; const pUIWindow: IOleInPlaceUIWindow; const fRameWindow: BOOL): HRESULT stdcall; function TranslateAccelerator(const lpMsg: PMSG const pguidCmdGroup: PGUID; const nCmdID: DWORD): HRESULT stdcall; function GetOptionKeyPath(var pchKey: POLESTR const dw: DWORD): HRESULT stdcall; function GetDropTarget(const pDropTarget: IDropTarget; out ppDropTarget: IDropTarget): HRESULT stdcall; function GetExternal(out ppDispatch: IDispatch): HRESULT stdcall; function TranslateUrl(const dwTranslate: DWORD const pchURLIn: POLESTR; var ppchURLOut: POLESTR): HRESULT stdcall; function FilterDataObject(const pDO: IDataObject; out ppDORet: IDataObject): HRESULT stdcall; end; ICustomDoc=interface(IUnknown) ['{3050f3f0-98b5-11cf-bb82-00aa00bdce0b}'] function SetUIHandler(const pUIHandler:IDocHostUIHandler):HRESULT stdcall; end; ICustomDoc接口是设置IDocHostUIHandler的接口 使用如下 (webbrowser1.document as ICustomDoc).SetUIHandler(IDocHostUIHandler的实例);
B bundur Unregistered / Unconfirmed GUEST, unregistred user! 2004-05-01 #10 希望 satanmonkey 兄能具体一点, 关于如何实现这个接口. 还有其中的 TDOCHOSTUIINFO 不知道是在哪个单元中.
S satanmonkey Unregistered / Unconfirmed GUEST, unregistred user! 2004-05-01 #11 TDOCHOSTUIINFO = record cbSize: ULONG; dwFlags: DWORD; dwDoubleClick: DWORD; end 你建一个COM对象,实现IDocHostUIHandler就得了啊。 把他的实例传给SetUIHandler 大概这样 TSomeClass = class(TComObject,IDocHostUIHandler)
TDOCHOSTUIINFO = record cbSize: ULONG; dwFlags: DWORD; dwDoubleClick: DWORD; end 你建一个COM对象,实现IDocHostUIHandler就得了啊。 把他的实例传给SetUIHandler 大概这样 TSomeClass = class(TComObject,IDocHostUIHandler)
B bundur Unregistered / Unconfirmed GUEST, unregistred user! 2004-05-09 #12 虽然没有得到满意的答案,但还是结帖吧。 以后要是谁有更好的解决方案,我可以另开帖酬谢。