Internet Explorer不支持。TWebBrowser是基于Internet Explorer的,所以也不支持。
在mianform类中定义: procedure OleMessage(var Msg:TMessage); //消息处理 var OldMessage:TWndMethod; procedure TMainForm.FormShow(Sender: TObject); begin //为 WebBrowser指定新的消息函数 OldMessage:=WebBrowser1.WindowProc; WebBrowser1.WindowProc:=OleMessage; end; //WebBrowser消息处理 procedure TMainForm.OleMessage(var Msg:TMessage); begin f Msg.Msg=WM_PAINT then begin //先执行默认的消息处理 OldMessage(Msg); TWebBrowser(WebBrowser1).Canvas.Handle := TWMPaint(Msg).DC; TWebBrowser(WebBrowser1).Canvas.StretchDraw(TWebBrowser (WebBrowser1).Canvas.ClipRect,bitmap); TWebBrowser(WebBrowser1).Canvas.Handle :=0; end
procedure TMainForm.OleMessage(var Msg:TMessage); var c:TCanvas; bitmap:TBitmap; begin OldMessage(Msg); if Msg.Msg=WM_PAINT then begin //先执行默认的消息处理 bitmap:=TBitmap.Create; bitmap.LoadFromFile('d:\dzrsgl\zt.bmp'); c:=TControlCanvas.Create; TControlCanvas(c).Control:=WebBrowser1; c.Brush.Style:=bsClear; c.StretchDraw(c.ClipRect,bitmap); end
procedure OleMessage(var Msg:TMessage); //消息处理
var
OldMessage:TWndMethod; procedure TMainForm.FormShow(Sender: TObject);
begin
//为 WebBrowser指定新的消息函数
OldMessage:=WebBrowser1.WindowProc;
WebBrowser1.WindowProc:=OleMessage;
end;
//WebBrowser消息处理
procedure TMainForm.OleMessage(var Msg:TMessage);
begin
f Msg.Msg=WM_PAINT then
begin
//先执行默认的消息处理
OldMessage(Msg);
TWebBrowser(WebBrowser1).Canvas.Handle := TWMPaint(Msg).DC;
TWebBrowser(WebBrowser1).Canvas.StretchDraw(TWebBrowser (WebBrowser1).Canvas.ClipRect,bitmap);
TWebBrowser(WebBrowser1).Canvas.Handle :=0;
end
end;
procedure TMainForm.OleMessage(var Msg:TMessage);
var
c:TCanvas;
bitmap:TBitmap;
begin
OldMessage(Msg);
if Msg.Msg=WM_PAINT then
begin
//先执行默认的消息处理
bitmap:=TBitmap.Create;
bitmap.LoadFromFile('d:\dzrsgl\zt.bmp');
c:=TControlCanvas.Create;
TControlCanvas(c).Control:=WebBrowser1;
c.Brush.Style:=bsClear;
c.StretchDraw(c.ClipRect,bitmap);
end
end;
现在可以画出BMP的图像,但是如果我想用PNG或者干脆不画出来,有什么方法推荐么?谢谢!