动态创建WebBrowser

procedure TForm1.CrtNew;
begin
Browser := TWebBrowser.Create(Self);
TWinControl(Browser).Parent := Self;
Browser.Left := 88;
Browser.Top := 8;
Browser.Width := ClientWidth - 96;
Browser.Height := ClientHeight - 16;
Browser.Navigate(FileName);
end;

关于TWebBrowser.Document内存泄露问题: http://hi.baidu.com/allen%5F086/blog/item/7a268c022de949e109fa9308.html

 

如何动态创建WebBrowser: http://topic.csdn.net/t/20030116/15/1365092.html

 

过了N过岁月之后,动手操作,忘记了,照上面的代码写,还是没有显示出来;最后关键句:Browser.ParentWindow:=Form1.Handle;这句要放在最后,不然创建的WebBrowser不能调整大小。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
动态创建 MFC WebBrowser 控件,可以按照以下步骤进行操作: 1. 在 MFC 应用程序中创建一个新的 CWnd 派生类,例如 CMyWebBrowser。 2. 在 CMyWebBrowser.h 文件中添加以下代码: ``` class CMyWebBrowser : public CWnd { public: CMyWebBrowser(); virtual ~CMyWebBrowser(); BOOL Create(const RECT& rect, CWnd* pParentWnd, UINT nID); protected: DECLARE_MESSAGE_MAP() }; ``` 3. 在 CMyWebBrowser.cpp 文件中添加以下代码: ``` #include "CMyWebBrowser.h" #include <exdisp.h> // WebBrowser 控件的接口定义 BEGIN_MESSAGE_MAP(CMyWebBrowser, CWnd) END_MESSAGE_MAP() CMyWebBrowser::CMyWebBrowser() { } CMyWebBrowser::~CMyWebBrowser() { } BOOL CMyWebBrowser::Create(const RECT& rect, CWnd* pParentWnd, UINT nID) { // 创建 WebBrowser 控件 LPCLSID pClsid = &CLSID_WebBrowser; LPCTSTR lpszName = _T("Microsoft Web Browser"); LPUNKNOWN pUnknownOuter = NULL; HRESULT hr = CoCreateInstance(*pClsid, pUnknownOuter, CLSCTX_ALL, IID_IWebBrowser2, (void**)&m_pWebBrowser); if (FAILED(hr)) { return FALSE; } // 设置 WebBrowser 控件的父窗口和位置 CRect rc(rect); BOOL bResult = CWnd::CreateEx(0, AfxRegisterWndClass(0), lpszName, WS_CHILD | WS_VISIBLE, rc, pParentWnd, nID); if (!bResult) { m_pWebBrowser->Release(); m_pWebBrowser = NULL; return FALSE; } // 把 WebBrowser 控件的 HWND 与 CMyWebBrowser 对象的 HWND 绑定 m_pWebBrowser->put_HWND((long)m_hWnd); return TRUE; } ``` 4. 在需要创建 WebBrowser 控件的地方,可以添加以下代码: ``` CMyWebBrowser* pWebBrowser = new CMyWebBrowser; CRect rc(0, 0, 100, 100); // 控件的位置和大小 pWebBrowser->Create(rc, this, 123); // 创建 WebBrowser 控件,并把它添加到当前窗口中 ``` 以上代码可以创建一个简单的 WebBrowser 控件,并把它添加到指定的父窗口中。但是需要注意的是,要使用 WebBrowser 控件,需要先调用 CoInitialize 函数进行 COM 初始化。同时,WebBrowser 控件也需要在程序退出前调用 Release 函数进行释放。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值