📄 ieview.cpp
字号:
// IEView.cpp : implementation file
//
#include "stdafx.h"
#include "IEView.h"
#include "mainfrm.h"
#include "resource.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CIEView
IMPLEMENT_DYNCREATE(CIEView, CHtmlView)
CIEView::CIEView()
{
//{{AFX_DATA_INIT(CIEView)
// NOTE: the ClassWizard will add member initialization here
//}}AFX_DATA_INIT
}
CIEView::~CIEView()
{
}
void CIEView::DoDataExchange(CDataExchange* pDX)
{
CHtmlView::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CIEView)
// NOTE: the ClassWizard will add DDX and DDV calls here
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CIEView, CHtmlView)
//{{AFX_MSG_MAP(CIEView)
// NOTE - the ClassWizard will add and remove mapping macros here.
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CIEView diagnostics
#ifdef _DEBUG
void CIEView::AssertValid() const
{
CHtmlView::AssertValid();
}
void CIEView::Dump(CDumpContext& dc) const
{
CHtmlView::Dump(dc);
}
#endif //_DEBUG
/////////////////////////////////////////////////////////////////////////////
// CIEView message handlers
void CIEView::OnInitialUpdate()
{
//TODO: This code navigates to a popular spot on the web.
//Change the code to go where you'd like.
//Navigate2(_T("http://www.microsoft.com/visualc/"),NULL,NULL);
//主动调整大小
GoHome();
}
BOOL CIEView::PreCreateWindow(CREATESTRUCT& cs)
{
// TODO: Add your specialized code here and/or call the base class
cs.style=WS_CHILD|WS_VISIBLE;
return CHtmlView::PreCreateWindow(cs);
}
void CIEView::OnTitleChange(LPCTSTR lpszText)
{
// TODO: Add your specialized code here and/or call the base class
SetTabItemText(lpszText);
m_strTitle=lpszText;
CHtmlView::OnTitleChange(lpszText);
}
void CIEView::OnBeforeNavigate2(LPCTSTR lpszURL, DWORD nFlags, LPCTSTR lpszTargetFrameName, CByteArray& baPostedData, LPCTSTR lpszHeaders, BOOL* pbCancel)
{
// TODO: Add your specialized code here and/or call the base class
CRect rc;
GetParent()->GetClientRect(&rc);
SendMessage(WM_SIZE,SIZE_MAXSHOW,MAKELPARAM(rc.Width(),rc.Height()));
if(m_bActivedWnd && IsWindowVisible())
{
SetUrlAddress(lpszURL);
m_strTitle=lpszURL;
((CMainFrame*)AfxGetMainWnd())->SetWindowTextX(lpszURL);
}
if(!GetStatusBar())
{
//MessageBox("aaa");
}
CHtmlView::OnBeforeNavigate2(lpszURL, nFlags, lpszTargetFrameName, baPostedData, lpszHeaders, pbCancel);
}
void CIEView::OnNavigateComplete2(LPCTSTR strURL)
{
// TODO: Add your specialized code here and/or call the base class
((CMainFrame*)AfxGetMainWnd())->AddHistory(strURL,m_strTitle);
if(m_bActivedWnd && IsWindowVisible())
{
((CMainFrame*)AfxGetMainWnd())->SetWindowTextX(m_strTitle);
SetUrlAddress(GetLocationURL());
COleVariant vaZoomFactor;
ExecWB(OLECMDID_ZOOM,OLECMDEXECOPT_DONTPROMPTUSER,NULL,&vaZoomFactor);
((CMainFrame*)AfxGetMainWnd())->SetFontSizeVal(vaZoomFactor.intVal*10+1);
}
CHtmlView::OnNavigateComplete2(strURL);
}
void CIEView::OnNewWindow2(LPDISPATCH* ppDisp, BOOL* Cancel)
{
// TODO: Add your specialized code here and/or call the base class
Cancel=FALSE;
LRESULT pResult=AfxGetMainWnd()->SendMessage(WM_NEW_IEVIEW);
CWnd* pWnd=(CWnd*)pResult;
ASSERT(pWnd->IsKindOf(RUNTIME_CLASS(CIEView)));
*ppDisp = ((CIEView*)pWnd)->GetApplication();
//CHtmlView::OnNewWindow2(ppDisp, Cancel);
}
BOOL CIEView::SetTabItemText(LPCTSTR lpszItem)
{
return ((CMainFrame*)AfxGetMainWnd())->m_wndTabCtrl.SetItemText(this,lpszItem);
}
void CIEView::ReadUrlDocument(LPCTSTR lpszUrl)
{
//AfxMessageBox(lpszUrl);
Navigate2(lpszUrl,NULL,NULL);
}
void CIEView::OnActivateView(BOOL bActivate, CView* pActivateView, CView* pDeactiveView)
{
// TODO: Add your specialized code here and/or call the base class
if(bActivate && IsWindowVisible())
{
SetUrlAddress(GetLocationURL());
((CMainFrame*)AfxGetMainWnd())->SetWindowTextX(m_strTitle);
COleVariant vaZoomFactor;
ExecWB(OLECMDID_ZOOM,OLECMDEXECOPT_DONTPROMPTUSER,NULL,&vaZoomFactor);
((CMainFrame*)AfxGetMainWnd())->SetFontSizeVal(vaZoomFactor.intVal*10+1);
EnableFrameButton();
}
m_bActivedWnd=bActivate;
CHtmlView::OnActivateView(bActivate, pActivateView, pDeactiveView);
}
void CIEView::SetUrlAddress(LPCTSTR lpszUrl)
{
((CMainFrame*)AfxGetMainWnd())->m_wndAddress.SetWindowText(GetLocationURL());
}
void CIEView::OnDocumentComplete(LPCTSTR lpszURL)
{
// TODO: Add your specialized code here and/or call the base class
CHtmlView::OnDocumentComplete(lpszURL);
}
CString CIEView::GetTitle()
{
return m_strTitle;
}
void CIEView::OnCommandStateChange(long nCommand, BOOL bEnable)
{
// TODO: Add your specialized code here and/or call the base class
if(nCommand==1)//前进
{
m_bEnableGoForward=bEnable;
}
if(nCommand==2)//后退
{
m_bEnableGoBack=bEnable;
}
if(m_bActivedWnd && IsWindowVisible())
{
EnableFrameButton();
}
CHtmlView::OnCommandStateChange(nCommand, bEnable);
}
void CIEView::EnableFrameButton()
{
((CMainFrame*)AfxGetMainWnd())->EnableGoBack(m_bEnableGoBack);
((CMainFrame*)AfxGetMainWnd())->EnableGoForward(m_bEnableGoForward);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -