📄 fixedhtmlview.cpp
字号:
// FixedHtmlView.cpp : implementation file
//
#include "stdafx.h"
#include "MyIE.h"
#include "FixedHtmlView.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
#define IDC_BROWSER_CONTROL 2
/////////////////////////////////////////////////////////////////////////////
// CFixedHtmlView
IMPLEMENT_DYNCREATE(CFixedHtmlView, CView)
CFixedHtmlView::CFixedHtmlView()
{//11/7
m_pBrowserApp = NULL;
}
CFixedHtmlView::~CFixedHtmlView()
{//11/7
if (m_pBrowserApp != NULL)
m_pBrowserApp->Release();
if(m_wndBrowser.m_hWnd!=NULL)
m_wndBrowser.DestroyWindow();
}
BEGIN_MESSAGE_MAP(CFixedHtmlView, CView)
//{{AFX_MSG_MAP(CFixedHtmlView)
ON_COMMAND(ID_FILE_PRINT, OnFilePrint)
ON_WM_PARENTNOTIFY()
ON_WM_CREATE()
ON_WM_SIZE()
ON_COMMAND(ID_FILE_PRINTPREVIEW, OnFilePrintpreview)
ON_WM_DESTROY()
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
BEGIN_EVENTSINK_MAP(CFixedHtmlView, CView)
ON_EVENT(CFixedHtmlView, IDC_BROWSER_CONTROL, 102 /* StatusTextChange */, OnStatusTextChange, VTS_BSTR)
ON_EVENT(CFixedHtmlView, IDC_BROWSER_CONTROL, 108 /* ProgressChange */, OnProgressChange, VTS_I4 VTS_I4)
ON_EVENT(CFixedHtmlView, IDC_BROWSER_CONTROL, 105 /* CommandStateChange */, OnCommandStateChange, VTS_I4 VTS_BOOL)
ON_EVENT(CFixedHtmlView, IDC_BROWSER_CONTROL, 106 /* DownloadBegin */, OnDownloadBegin, VTS_NONE)
ON_EVENT(CFixedHtmlView, IDC_BROWSER_CONTROL, 104 /* DownloadComplete */, OnDownloadComplete, VTS_NONE)
ON_EVENT(CFixedHtmlView, IDC_BROWSER_CONTROL, 113 /* TitleChange */, OnTitleChange, VTS_BSTR)
ON_EVENT(CFixedHtmlView, IDC_BROWSER_CONTROL, 252 /* NavigateComplete2 */, NavigateComplete2, VTS_DISPATCH VTS_PVARIANT)
ON_EVENT(CFixedHtmlView, IDC_BROWSER_CONTROL, 250 /* BeforeNavigate2 */, BeforeNavigate2, VTS_DISPATCH VTS_PVARIANT VTS_PVARIANT VTS_PVARIANT VTS_PVARIANT VTS_PVARIANT VTS_PBOOL)
// ON_EVENT(CFixedHtmlView, IDC_BROWSER_CONTROL, 112 /* PropertyChange */, OnPropertyChange, VTS_BSTR)
ON_EVENT(CFixedHtmlView, IDC_BROWSER_CONTROL, 251 /* NewWindow2 */, OnNewWindow2, VTS_PDISPATCH VTS_PBOOL)
ON_EVENT(CFixedHtmlView, IDC_BROWSER_CONTROL, 259 /* DocumentComplete */, DocumentComplete, VTS_DISPATCH VTS_PVARIANT)
// ON_EVENT(CFixedHtmlView, IDC_BROWSER_CONTROL, 253 /* OnQuit */, OnQuit, VTS_NONE)
// ON_EVENT(CFixedHtmlView, IDC_BROWSER_CONTROL, 254 /* OnVisible */, OnVisible, VTS_BOOL)
// ON_EVENT(CFixedHtmlView, IDC_BROWSER_CONTROL, 255 /* OnToolBar */, OnToolBar, VTS_BOOL)
// ON_EVENT(CFixedHtmlView, IDC_BROWSER_CONTROL, 256 /* OnMenuBar */, OnMenuBar, VTS_BOOL)
// ON_EVENT(CFixedHtmlView, IDC_BROWSER_CONTROL, 257 /* OnStatusBar */, OnStatusBar, VTS_BOOL)
// ON_EVENT(CFixedHtmlView, IDC_BROWSER_CONTROL, 258 /* OnFullScreen */, OnFullScreen, VTS_BOOL)
// ON_EVENT(CFixedHtmlView, IDC_BROWSER_CONTROL, 260 /* OnTheaterMode */, OnTheaterMode, VTS_BOOL)
END_EVENTSINK_MAP()
/////////////////////////////////////////////////////////////////////////////
// CFixedHtmlView drawing
void CFixedHtmlView::OnDraw(CDC* pDC)
{
// CDocument* pDoc = GetDocument();
// TODO: add draw code here
}
//11/7
void CFixedHtmlView::OnDestroy()
{
if (m_pBrowserApp != NULL)
m_pBrowserApp->Release();
}
/////////////////////////////////////////////////////////////////////////////
// CFixedHtmlView diagnostics
#ifdef _DEBUG
void CFixedHtmlView::AssertValid() const
{
CView::AssertValid();
}
void CFixedHtmlView::Dump(CDumpContext& dc) const
{
CView::Dump(dc);
}
#endif //_DEBUG
/////////////////////////////////////////////////////////////////////////////
// CFixedHtmlView message handlers
/*int CFixedHtmlView::OnCreate(LPCREATESTRUCT lpCreateStruct)
{
if (CView::OnCreate(lpCreateStruct) == -1)
return -1;
// TODO: Add your specialized creation code here
// Create the embedded browser control:
// No TRY block needed.
return 0;
}*/
/*
CString CFixedHtmlView::GetType()
{
CString str = m_wndBrowser.GetType();
return str;
}
long CFixedHtmlView::GetLeft()
{
return m_wndBrowser.GetLeft();
}
long CFixedHtmlView::GetTop()
{
return m_wndBrowser.GetTop();
}
int CFixedHtmlView::GetToolBar()
{
return m_wndBrowser.GetToolBar();
}
long CFixedHtmlView::GetHeight()
{
return m_wndBrowser.GetHeight();
}
BOOL CFixedHtmlView::GetVisible()
{
return m_wndBrowser.GetVisible();
}
*/
CString CFixedHtmlView::GetLocationName()
{
return m_wndBrowser.GetLocationName();
}
CString CFixedHtmlView::GetLocationURL()
{
return m_wndBrowser.GetLocationURL();
}
/*
BOOL CFixedHtmlView::GetBusy()
{
return m_wndBrowser.GetBusy();
}*/
READYSTATE CFixedHtmlView::GetReadyState()
{
return (READYSTATE)m_wndBrowser.GetReadyState();
}
/*
BOOL CFixedHtmlView::GetOffline()
{
return m_wndBrowser.GetOffline();
}
BOOL CFixedHtmlView::GetSilent()
{
return m_wndBrowser.GetSilent();
}
*/
LPDISPATCH CFixedHtmlView::GetApplication()
{
return m_wndBrowser.GetApplication();
}
LPDISPATCH CFixedHtmlView::GetParentBrowser()
{
return m_wndBrowser.GetParent();
}
/*
LPDISPATCH CFixedHtmlView::GetContainer()
{
return m_wndBrowser.GetContainer();
}*/
LPDISPATCH CFixedHtmlView::GetHtmlDocument()
{
if(m_pBrowserApp != NULL)
return m_wndBrowser.GetDocument();
else
return NULL;
}
/*
BOOL CFixedHtmlView::GetTopLevelContainer()
{
return m_wndBrowser.GetTopLevelContainer();
}
BOOL CFixedHtmlView::GetMenuBar()
{
return m_wndBrowser.GetMenuBar();
}
BOOL CFixedHtmlView::GetFullScreen()
{
return m_wndBrowser.GetFullScreen();
}
BOOL CFixedHtmlView::GetStatusBar()
{
return m_wndBrowser.GetStatusBar();
}
*/
OLECMDF CFixedHtmlView::QueryStatusWB(OLECMDID cmdID)
{
return (OLECMDF)m_wndBrowser.QueryStatusWB(cmdID);
}
void CFixedHtmlView::ExecWB(OLECMDID cmdID, OLECMDEXECOPT cmdexecopt,
VARIANT* pvaIn, VARIANT* pvaOut)
{
//((IWebBrowser2*)m_wndBrowser.GetApplication())->ExecWB(cmdID, cmdexecopt, pvaIn, pvaOut);
if(m_pBrowserApp != NULL)
m_pBrowserApp->ExecWB(cmdID, cmdexecopt, pvaIn, pvaOut);
}
/*
BOOL CFixedHtmlView::GetRegisterAsBrowser()
{
return m_wndBrowser.GetRegisterAsBrowser();
}
BOOL CFixedHtmlView::GetRegisterAsDropTarget()
{
return m_wndBrowser.GetRegisterAsDropTarget();
}
BOOL CFixedHtmlView::GetTheaterMode()
{
return m_wndBrowser.GetTheaterMode();
}
BOOL CFixedHtmlView::GetAddressBar()
{
return m_wndBrowser.GetAddressBar();
}*/
/////////////////////////////////////////////////////////////////////////////
// CFixedHtmlView operations
BOOL CFixedHtmlView::LoadFromResource(LPCTSTR lpszResource)
{
HINSTANCE hInstance = AfxGetResourceHandle();
ASSERT(hInstance != NULL);
CString strResourceURL;
BOOL bRetVal = TRUE;
LPTSTR lpszModule = new TCHAR[_MAX_PATH];
if (GetModuleFileName(hInstance, lpszModule, _MAX_PATH))
{
strResourceURL.Format(_T("res://%s/%s"), lpszModule, lpszResource);
Navigate(strResourceURL, 0, 0, 0);
}
else
bRetVal = FALSE;
delete [] lpszModule;
return bRetVal;
}
BOOL CFixedHtmlView::LoadFromResource(UINT nRes)
{
HINSTANCE hInstance = AfxGetResourceHandle();
ASSERT(hInstance != NULL);
CString strResourceURL;
BOOL bRetVal = TRUE;
LPTSTR lpszModule = new TCHAR[_MAX_PATH];
if (GetModuleFileName(hInstance, lpszModule, _MAX_PATH))
{
strResourceURL.Format(_T("res://%s/%d"), lpszModule, nRes);
Navigate(strResourceURL, 0, 0, 0);
}
else
bRetVal = FALSE;
delete [] lpszModule;
return bRetVal;
}
void CFixedHtmlView::Navigate(LPCTSTR lpszURL, DWORD dwFlags /* = 0 */,
LPCTSTR lpszTargetFrameName /* = NULL */ ,
LPCTSTR lpszHeaders /* = NULL */, LPVOID lpvPostData /* = NULL */,
DWORD dwPostDataLen /* = 0 */)
{
if(m_pBrowserApp == NULL)
return;
COleSafeArray vPostData;
if (lpvPostData != NULL)
{
if (dwPostDataLen == 0)
dwPostDataLen = lstrlen((LPCTSTR) lpvPostData);
vPostData.CreateOneDim(VT_UI1, dwPostDataLen, lpvPostData);
}
CString strURL(lpszURL);
BSTR bstrURL = strURL.AllocSysString();
// ((IWebBrowser2*)m_wndBrowser.GetApplication())
m_pBrowserApp->Navigate(bstrURL,
COleVariant((long) dwFlags, VT_I4),
COleVariant(lpszTargetFrameName, VT_BSTR),
vPostData,
COleVariant(lpszHeaders, VT_BSTR));
SysFreeString(bstrURL);
}
void CFixedHtmlView::Navigate2(LPCTSTR lpszURL, DWORD dwFlags /* = 0 */,
LPCTSTR lpszTargetFrameName /* = NULL */,
LPCTSTR lpszHeaders /* = NULL */,
LPVOID lpvPostData /* = NULL */, DWORD dwPostDataLen /* = 0 */)
{
if(m_pBrowserApp == NULL)
return;
COleSafeArray vPostData;
if (lpvPostData != NULL)
{
if (dwPostDataLen == 0)
dwPostDataLen = lstrlen((LPCTSTR) lpvPostData);
vPostData.CreateOneDim(VT_UI1, dwPostDataLen, lpvPostData);
}
COleVariant vURL(lpszURL, VT_BSTR);
COleVariant vHeaders(lpszHeaders, VT_BSTR);
COleVariant vTargetFrameName(lpszTargetFrameName, VT_BSTR);
COleVariant vFlags((long) dwFlags, VT_I4);
// ((IWebBrowser2*)m_wndBrowser.GetApplication())
m_pBrowserApp->Navigate2(vURL,
vFlags, vTargetFrameName, vPostData, vHeaders);
}
/*
void CFixedHtmlView::PutProperty(LPCTSTR lpszProperty, const VARIANT& vtValue)
{
m_wndBrowser.PutProperty(lpszProperty, vtValue);
}
BOOL CFixedHtmlView::GetProperty(LPCTSTR lpszProperty, CString& strValue)
{
BOOL bResult = FALSE;
VARIANT vReturn;
vReturn.vt = VT_BSTR;
vReturn.bstrVal = NULL;
vReturn = m_wndBrowser.GetProperty_(lpszProperty);
strValue = CString(vReturn.bstrVal);
bResult = TRUE;
return bResult;
}
COleVariant CFixedHtmlView::GetProperty(LPCTSTR lpszProperty)
{
COleVariant result;
VARIANT vReturn;
vReturn.vt = VT_BSTR;
vReturn.bstrVal = NULL;
vReturn = m_wndBrowser.GetProperty_(lpszProperty);
result = vReturn;
return result;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -