请问,webbrowser边框如何去掉
请教,webbrowser边框怎么去掉
各位朋友,webbrowser边框怎么去掉?在做多页浏览器时遇到这么个问题.不知道怎么去掉.好痛苦呀.谢谢.....
------解决方案--------------------
procedure WB_Set3DBorderStyle(Sender: TObject; bValue: Boolean);
var
Document : IHTMLDocument2;
Element : IHTMLElement;
StrBorderStyle: string;
begin
//去掉边框
try
Document := TWebBrowser(Sender).Document as IHTMLDocument2;
if Assigned(Document) then
begin
Element := Document.Body;
if Element <> nil then
begin
case BValue of
False: StrBorderStyle := 'none';
True: StrBorderStyle := '';
end;
Element.Style.BorderStyle := StrBorderStyle;
end;
end;
except
//..
end;
end;
procedure TFrmWebBrowser.WebBrowser1DocumentComplete(Sender: TObject;
const pDisp: IDispatch; var URL: OleVariant);
begin
WB_Set3DBorderStyle(Sender,false);
end;
------解决方案--------------------
完全解决之道是继承IDocHostUIHandler接口,该接口中有一个
function GetHostInfo(var pInfo: TDOCHOSTUIINFO): HRESULT; stdcall;
继承接口,实现这个函数就可以将滚动条完全屏蔽掉
函数中的TDOCHOSTUIINFO参数,就是用来指定样式的
具体的,楼主查查资料
这里给一段,我以前扩展WebBrowser的时候的一段代码
------解决方案--------------------
你们根本没有看到楼主的问题根本,他做的是浏览器,你能指望你浏览的页面给你改css吗?
回答别人的问题要先看看人家的要求再说!
function TSimpleWebBrowser.GetHostInfo(var pInfo: TDOCHOSTUIINFO): HRESULT;
begin
//传递给MSHTML用于描述浏览器的样式等
pInfo.cbSize := SizeOf(pInfo);
pInfo.dwFlags := 0;
if not ShowScrollBar then //不显示浏览器的滚动条
pInfo.dwFlags := pInfo.dwFlags or DOCHOSTUIFLAG_SCROLL_NO;
if FlatScrollBars then //平面类型的滚动条显示
pInfo.dwFlags := pInfo.dwFlags or DOCHOSTUIFLAG_FLAT_SCROLLBAR;
if not Border3DStyle then //不显示3D边框
pInfo.dwFlags := pInfo.dwFlags or DOCHOSTUIFLAG_NO3DBORDER;
pInfo.dwFlags := Pinfo.dwFlags or DOCHOSTUIFLAG_ENABLE_ACTIVEX_INACTIVATE_MODE;
result := S_OK; //覆盖系统本身的处理
end;
上述的代码是可以实现的,它实现的就是调用ie的接口,直接进行去除载入的页面的边框。
是由于网页引起的,但是不能指望去改web页面,比人能给你改吗。楼主,支持你。
各位朋友,webbrowser边框怎么去掉?在做多页浏览器时遇到这么个问题.不知道怎么去掉.好痛苦呀.谢谢.....
------解决方案--------------------
procedure WB_Set3DBorderStyle(Sender: TObject; bValue: Boolean);
var
Document : IHTMLDocument2;
Element : IHTMLElement;
StrBorderStyle: string;
begin
//去掉边框
try
Document := TWebBrowser(Sender).Document as IHTMLDocument2;
if Assigned(Document) then
begin
Element := Document.Body;
if Element <> nil then
begin
case BValue of
False: StrBorderStyle := 'none';
True: StrBorderStyle := '';
end;
Element.Style.BorderStyle := StrBorderStyle;
end;
end;
except
//..
end;
end;
procedure TFrmWebBrowser.WebBrowser1DocumentComplete(Sender: TObject;
const pDisp: IDispatch; var URL: OleVariant);
begin
WB_Set3DBorderStyle(Sender,false);
end;
------解决方案--------------------
完全解决之道是继承IDocHostUIHandler接口,该接口中有一个
function GetHostInfo(var pInfo: TDOCHOSTUIINFO): HRESULT; stdcall;
继承接口,实现这个函数就可以将滚动条完全屏蔽掉
函数中的TDOCHOSTUIINFO参数,就是用来指定样式的
具体的,楼主查查资料
这里给一段,我以前扩展WebBrowser的时候的一段代码
function TSimpleWebBrowser.GetHostInfo(var pInfo: TDOCHOSTUIINFO): HRESULT;
begin
//传递给MSHTML用于描述浏览器的样式等
pInfo.cbSize := SizeOf(pInfo);
pInfo.dwFlags := 0;
if not ShowScrollBar then //不显示浏览器的滚动条
pInfo.dwFlags := pInfo.dwFlags or DOCHOSTUIFLAG_SCROLL_NO;
if FlatScrollBars then //平面类型的滚动条显示
pInfo.dwFlags := pInfo.dwFlags or DOCHOSTUIFLAG_FLAT_SCROLLBAR;
if not Border3DStyle then //不显示3D边框
pInfo.dwFlags := pInfo.dwFlags or DOCHOSTUIFLAG_NO3DBORDER;
pInfo.dwFlags := Pinfo.dwFlags or DOCHOSTUIFLAG_ENABLE_ACTIVEX_INACTIVATE_MODE;
result := S_OK; //覆盖系统本身的处理
end;
------解决方案--------------------
你们根本没有看到楼主的问题根本,他做的是浏览器,你能指望你浏览的页面给你改css吗?
回答别人的问题要先看看人家的要求再说!
function TSimpleWebBrowser.GetHostInfo(var pInfo: TDOCHOSTUIINFO): HRESULT;
begin
//传递给MSHTML用于描述浏览器的样式等
pInfo.cbSize := SizeOf(pInfo);
pInfo.dwFlags := 0;
if not ShowScrollBar then //不显示浏览器的滚动条
pInfo.dwFlags := pInfo.dwFlags or DOCHOSTUIFLAG_SCROLL_NO;
if FlatScrollBars then //平面类型的滚动条显示
pInfo.dwFlags := pInfo.dwFlags or DOCHOSTUIFLAG_FLAT_SCROLLBAR;
if not Border3DStyle then //不显示3D边框
pInfo.dwFlags := pInfo.dwFlags or DOCHOSTUIFLAG_NO3DBORDER;
pInfo.dwFlags := Pinfo.dwFlags or DOCHOSTUIFLAG_ENABLE_ACTIVEX_INACTIVATE_MODE;
result := S_OK; //覆盖系统本身的处理
end;
上述的代码是可以实现的,它实现的就是调用ie的接口,直接进行去除载入的页面的边框。
是由于网页引起的,但是不能指望去改web页面,比人能给你改吗。楼主,支持你。