www.pudn.com > mu_explorer.rar > 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); 
}