R redwavehb Unregistered / Unconfirmed GUEST, unregistred user! 2000-09-07 #1 比如我的HTML页面没有比TWEBBROWER的界面大,但TWEBBROWER还显示竖滚动条,如何去掉。
Z zhongs Unregistered / Unconfirmed GUEST, unregistred user! 2000-09-07 #2 思路:(我用以下的方法去掉了TListView的ScrollBar) 1) 想办法取Flat Scroll Bars的handle 2) 在TWebBrowser的Resize时,用以下函数隐藏Scrollbar BOOL FlatSB_ShowScrollBar( HWND hwnd, int code, BOOL fShow );
思路:(我用以下的方法去掉了TListView的ScrollBar) 1) 想办法取Flat Scroll Bars的handle 2) 在TWebBrowser的Resize时,用以下函数隐藏Scrollbar BOOL FlatSB_ShowScrollBar( HWND hwnd, int code, BOOL fShow );
9 940801 Unregistered / Unconfirmed GUEST, unregistred user! 2000-09-07 #3 思路之二: TEdit 的祖先类依次是: TObject -> TPersistent -> TComponent -> TControl -> TWincontrol -> TCustomEdit TWebBrowser 的祖先类依次是: TObject -> TPersistent -> TComponent -> TControl -> TWincontrol -> TOleControl, 为什么 TEdit 没有缺省的 ScrollBar,而 TWebBrowser 有呢? 肯定是 TOleControl 或 TWebBrowser 定义了缺省的 ScrollBar。 只要找到加入了 Scrollbar 的方法,Override 它就可以了, Override 的时候别忘了 inherited;
思路之二: TEdit 的祖先类依次是: TObject -> TPersistent -> TComponent -> TControl -> TWincontrol -> TCustomEdit TWebBrowser 的祖先类依次是: TObject -> TPersistent -> TComponent -> TControl -> TWincontrol -> TOleControl, 为什么 TEdit 没有缺省的 ScrollBar,而 TWebBrowser 有呢? 肯定是 TOleControl 或 TWebBrowser 定义了缺省的 ScrollBar。 只要找到加入了 Scrollbar 的方法,Override 它就可以了, Override 的时候别忘了 inherited;
R redwavehb Unregistered / Unconfirmed GUEST, unregistred user! 2000-09-08 #4 TWEBBROWER是一个ACTIVEX控件。上两种方法都无法实现,希望对WINDOWS编程较熟的人回答
Z zhongs Unregistered / Unconfirmed GUEST, unregistred user! 2000-09-08 #5 思路之二的方法是行不通的,因为ScrollBar是Ie WebBrowser内部封装的, 在delphi根本就不存在可Override的方法。TEdit和TMemo其实在Window系统是同一 WindowClass,只不过Delphi为方便操作Line包装为两个控件。
思路之二的方法是行不通的,因为ScrollBar是Ie WebBrowser内部封装的, 在delphi根本就不存在可Override的方法。TEdit和TMemo其实在Window系统是同一 WindowClass,只不过Delphi为方便操作Line包装为两个控件。
C CathyEagle Unregistered / Unconfirmed GUEST, unregistred user! 2000-09-08 #6 用接口。 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; // IDocHostUIHandler EmbeddedWB的OnGetHostInfo可以做到。 http://www.intelligo.net/iedelphi/ongethostinfo.htm
用接口。 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; // IDocHostUIHandler EmbeddedWB的OnGetHostInfo可以做到。 http://www.intelligo.net/iedelphi/ongethostinfo.htm
9 940801 Unregistered / Unconfirmed GUEST, unregistred user! 2000-09-08 #7 To redwavehb: 的确有一个 TWEBBROWER 的 ACTIVEX控件,那是 IE 带的,Delphi 5 自带了 TWebBrowser 的 VCL 控件,有源码的。 利用 TWebBrowser 写一个自己的 WebBrowser 控件应该可以解决这个问题。 To zhongs: 你说得这么肯定,你能肯定你的看法吗?在回答这个问题之前,你有没有查资料来确认你的答 案呢? 看了这个问题后,我又去看了 TControl, TWinControl, TOleControl, TWebBrowser, TCustomEdit 的 VCL 源代码,这个思路我不是随便说的。
To redwavehb: 的确有一个 TWEBBROWER 的 ACTIVEX控件,那是 IE 带的,Delphi 5 自带了 TWebBrowser 的 VCL 控件,有源码的。 利用 TWebBrowser 写一个自己的 WebBrowser 控件应该可以解决这个问题。 To zhongs: 你说得这么肯定,你能肯定你的看法吗?在回答这个问题之前,你有没有查资料来确认你的答 案呢? 看了这个问题后,我又去看了 TControl, TWinControl, TOleControl, TWebBrowser, TCustomEdit 的 VCL 源代码,这个思路我不是随便说的。
R redwavehb Unregistered / Unconfirmed GUEST, unregistred user! 2000-09-08 #8 CathyEagle能说的清楚些,如能传我一可行的例程,100分归你
C CathyEagle Unregistered / Unconfirmed GUEST, unregistred user! 2000-09-11 #9 EmbeddedWB没找到吗? http://www.intelligo.net/iedelphi/ongethostinfo.htm
Z zhongs Unregistered / Unconfirmed GUEST, unregistred user! 2000-09-11 #10 to 940801: 不知应override哪方法,或响应哪条Message,请说出来吧 我使用下面这可把TreeView的ScrollBar可去掉: FlatSB_ShowScrollBar(TreeView1.Handle, SB_BOTH, False); 我在ie4取TWebBrowser.HWND会报错,不知是什么原因: FlatSB_ShowScrollBar(WebBrowser1.HWND, SB_HORZ , False);
to 940801: 不知应override哪方法,或响应哪条Message,请说出来吧 我使用下面这可把TreeView的ScrollBar可去掉: FlatSB_ShowScrollBar(TreeView1.Handle, SB_BOTH, False); 我在ie4取TWebBrowser.HWND会报错,不知是什么原因: FlatSB_ShowScrollBar(WebBrowser1.HWND, SB_HORZ , False);
M mogao Unregistered / Unconfirmed GUEST, unregistred user! 2000-09-11 #11 利用网页的分帧可以做到: <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=gb2312"> </head> <frameset framespacing="0" frameborder="0" cols="*,0"> <frame name="main"src="1.html" scrolling="no" noresize> <frame name="other" src="null.htm" noresize></frameset> </html> 你把要显示的改为1.html,这样显示出来就没有滚动框了
利用网页的分帧可以做到: <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=gb2312"> </head> <frameset framespacing="0" frameborder="0" cols="*,0"> <frame name="main"src="1.html" scrolling="no" noresize> <frame name="other" src="null.htm" noresize></frameset> </html> 你把要显示的改为1.html,这样显示出来就没有滚动框了
R redwavehb Unregistered / Unconfirmed GUEST, unregistred user! 2000-09-13 #12 CathyEagle,我已下载到TEmbeddedWB,但没有帮助,你能给我一个例程吗,我的信箱为: redwavehb@163.net
A avant Unregistered / Unconfirmed GUEST, unregistred user! 2000-09-13 #13 >>我的HTML页面没有比TWEBBROWER的界面大 真要如此,就好办了。 var doc,all,itemlevariant; begin doc:=webbrowser.document; all:=doc.all; item:=all.tags('scroll'); item:=item.item(0); item.innertext:='no'; end; 或者在网页里改:《body scroll="no"》,仅对你的前提:“我的HTML页面没有比TWEBBROWER的界面大”有效 要想有通用性,还是CathyEagle大虾的方法好。
>>我的HTML页面没有比TWEBBROWER的界面大 真要如此,就好办了。 var doc,all,itemlevariant; begin doc:=webbrowser.document; all:=doc.all; item:=all.tags('scroll'); item:=item.item(0); item.innertext:='no'; end; 或者在网页里改:《body scroll="no"》,仅对你的前提:“我的HTML页面没有比TWEBBROWER的界面大”有效 要想有通用性,还是CathyEagle大虾的方法好。