使用MFC的CHtmlView创建浏览器控件

来源:互联网 发布:java反序列化利用 ma 编辑:程序博客网 时间:2024/06/04 19:45
PlazaBrowser.h
<pre name="code" class="cpp">#ifndefPLAZA_BROWSER_HEAD_FILE#define PLAZA_BROWSER_HEAD_FILE#pragma once#include <afxhtml.h>////////////////////////////////////////////////////////////////////////////////////浏览控件class CPlazaBrowser : public CHtmlView{//函数定义public://构造函数CPlazaBrowser();//析构函数virtual ~CPlazaBrowser();//重载函数protected://绑定函数virtual VOID PreSubclassWindow();//消耗处理virtual VOID PostNcDestroy();//功能函数public://创建函数virtual BOOL Create(LPCTSTR lpszClassName, LPCTSTR lpszWindowName, DWORD dwStyle, const RECT & rect, CWnd * pParentWnd, UINT nID, CCreateContext * pContext=NULL);//消息函数public://关闭事件VOID OnWindowClosing(BOOL IsChildWindow, BOOL * bCancel);DECLARE_MESSAGE_MAP()DECLARE_EVENTSINK_MAP()};#endif


PlazaBrowser.cpp
<pre name="code" class="cpp">#include "stdafx.h"#include "PlazaBrowser.h"#include <exdispid.h>//////////////////////////////////////////////////////////////////////////////////BEGIN_MESSAGE_MAP(CPlazaBrowser, CHtmlView)END_MESSAGE_MAP()BEGIN_EVENTSINK_MAP(CPlazaBrowser, CHtmlView)ON_EVENT(CPlazaBrowser, AFX_IDW_PANE_FIRST, DISPID_WINDOWCLOSING, OnWindowClosing,VTS_BOOL VTS_PBOOL)   END_EVENTSINK_MAP()//构造函数CPlazaBrowser::CPlazaBrowser(){}//析构函数CPlazaBrowser::~CPlazaBrowser(){}//绑定函数VOID CPlazaBrowser::PreSubclassWindow(){__super::PreSubclassWindow();//设置背景SetClassLong(m_hWnd,GCL_HBRBACKGROUND,NULL);return;}//消耗处理VOID CPlazaBrowser::PostNcDestroy(){return;}//创建函数BOOL CPlazaBrowser::Create(LPCTSTR lpszClassName, LPCTSTR lpszWindowName, DWORD dwStyle, const RECT & rect, CWnd* pParentWnd, UINT nID, CCreateContext* pContext){//设置变量m_pCreateContext=pContext;//创建窗口if (CView::Create(lpszClassName,lpszWindowName,dwStyle,rect,pParentWnd,nID,pContext)==FALSE){return FALSE;}//获取大小CRect rcClient;GetClientRect(&rcClient);//创建窗口if (m_wndBrowser.CreateControl(CLSID_WebBrowser,lpszWindowName,WS_VISIBLE|WS_CHILD,rcClient,this,AFX_IDW_PANE_FIRST)==FALSE){DestroyWindow();return FALSE;}//查询接口LPUNKNOWN lpUnknown=m_wndBrowser.GetControlUnknown();lpUnknown->QueryInterface(IID_IWebBrowser2,(VOID **)&m_pBrowserApp);//屏蔽js错误提示m_pBrowserApp->put_Silent(VARIANT_TRUE);return TRUE;}//关闭事件void CPlazaBrowser::OnWindowClosing(BOOL IsChildWindow, BOOL *bCancel)   {   //禁止关闭if ((IsChildWindow==FALSE)&&(bCancel!=NULL)){*bCancel=TRUE;}return;}


<pre name="code" class="cpp">//创建控件CPlazaBrowserm_PlazaBrowser;//浏览控件CRect rcCreate(0,0,0,0);m_PlazaBrowser.Create(NULL,NULL,WS_CHILD|WS_VISIBLE,rcCreate,this,1001,NULL);m_PlazaBrowser.SetWindowPos(NULL,0,0,400,300,SWP_SHOWWINDOW);m_PlazaBrowser.Navigate(TEXT("http://192.168.2.254/ie.html"),NULL,NULL,NULL,NULL);


                                             
0 0
原创粉丝点击