這段時(shí)間在做一個(gè)delphi界面打開(kāi)網(wǎng)頁(yè)的功能,,且此網(wǎng)頁(yè)所在窗口可完整顯示,可縮小到另一個(gè)窗口的panel上顯示
可是在改變網(wǎng)頁(yè)所在窗口時(shí),,WebBrowser控件變成了空白
上網(wǎng)google了半天,,終于在csdn上查到了解決方案:
原帖地址:http://bbs.csdn.net/topics/200046109
- uses
- SHDocVw, Windows, Controls, Forms, Classes;
-
- type
- TMyWebBrowser = class(TWebBrowser)
- private
- protected
- ActualHandle: HWND;
- procedure CreateWnd; override;
- procedure DestroyWnd; override;
- public
- end;
-
-
- { TMyWebBrowser }
- procedure TMyWebBrowser.CreateWnd;
- begin
- if (ActualHandle <> 0) and IsWindow(ActualHandle) then
- begin
- WindowHandle := ActualHandle;
- ActualHandle := 0;
- Windows.SetParent(WindowHandle, TWinControl(Self).Parent.Handle);
- //Force a resize on the client window
- MoveWindow(WindowHandle, 0, 0, TWinControl(Self).Parent.Width,
- TWinControl(Self).Parent.Height, true);
- end
- else
- inherited;
- end;
-
- procedure TMyWebBrowser.DestroyWnd;
- begin
- if (csDestroying in ComponentState) then
- inherited
- else
- begin
- //Parent to the Application window which is 0x0 in size
- Windows.SetParent(WindowHandle, Forms.Application.Handle);
- //save the WindowHandle
- ActualHandle := WindowHandle;
- //set it to 0 so Createwnd will be called again...
- WindowHandle := 0;
- end;
- end;
|