⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mfcievw.cpp

📁 C++编程实践与技巧一书各章节的源码
💻 CPP
字号:
// mfcieVw.cpp : 视类实现文件
//

#include "stdafx.h"
#include "mfcie.h"
#include "MainFrm.h"

#include "mfcieDoc.h"
#include "mfcieVw.h"

#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif

/////////////////////////////////////////////////////////////////////////////
// CMfcieView

IMPLEMENT_DYNCREATE(CMfcieView, CHtmlView)

BEGIN_MESSAGE_MAP(CMfcieView, CHtmlView)
	//{{AFX_MSG_MAP(CMfcieView)
	ON_COMMAND(ID_GO_BACK, OnGoBack)
	ON_COMMAND(ID_GO_FORWARD, OnGoForward)
	ON_COMMAND(ID_GO_SEARCH_THE_WEB, OnGoSearchTheWeb)
	ON_COMMAND(ID_GO_START_PAGE, OnGoStartPage)
	ON_COMMAND(ID_VIEW_STOP, OnViewStop)
	ON_COMMAND(ID_VIEW_REFRESH, OnViewRefresh)
	ON_COMMAND(ID_FILE_OPEN, OnFileOpen)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CMfcieView construction/destruction

CMfcieView::CMfcieView()
{
}

CMfcieView::~CMfcieView()
{
}

BOOL CMfcieView::PreCreateWindow(CREATESTRUCT& cs)
{
	cs.lpszClass = AfxRegisterWndClass(0);
	return CView::PreCreateWindow(cs);
}

/////////////////////////////////////////////////////////////////////////////
// CMfcieView drawing

void CMfcieView::OnDraw(CDC* pDC)
{
	CMfcieDoc* pDoc = GetDocument();
	ASSERT_VALID(pDoc);
}

/////////////////////////////////////////////////////////////////////////////
// CMfcieView diagnostics

#ifdef _DEBUG
void CMfcieView::AssertValid() const
{
	CView::AssertValid();
}

void CMfcieView::Dump(CDumpContext& dc) const
{
	CView::Dump(dc);
}

CMfcieDoc* CMfcieView::GetDocument() // non-debug version is inline
{
	ASSERT(m_pDocument->IsKindOf(RUNTIME_CLASS(CMfcieDoc)));
	return (CMfcieDoc*)m_pDocument;
}
#endif //_DEBUG

/////////////////////////////////////////////////////////////////////////////
// CMfcieView message handlers
//改变主窗口标题
void CMfcieView::OnTitleChange(LPCTSTR lpszText)
{
	if (m_pDocument != NULL)
		m_pDocument->SetTitle(lpszText);
}

//主窗口框架显示新的URL
void CMfcieView::OnDocumentComplete(LPCTSTR lpszUrl)
{
	((CMainFrame*)GetParentFrame())->SetAddress(lpszUrl);
}

//程序执行的时候首先显示主页
void CMfcieView::OnInitialUpdate()
{
	CHtmlView::OnInitialUpdate();
	GoHome();
}

void CMfcieView::OnBeforeNavigate2(LPCTSTR /*lpszURL*/, DWORD /*nFlags*/,
	LPCTSTR /*lpszTargetFrameName*/, CByteArray& /*baPostedData*/,
	LPCTSTR /*lpszHeaders*/, BOOL* /*pbCancel*/)
{
	// start the animation so that is plays while the new page is being loaded
	((CMainFrame*)GetParentFrame())->StartAnimation();
}

//后退
void CMfcieView::OnGoBack()
{
	GoBack();
}

//前进
void CMfcieView::OnGoForward()
{
	GoForward();
}

//搜索
void CMfcieView::OnGoSearchTheWeb()
{
	GoSearch();
}

//回到主页
void CMfcieView::OnGoStartPage()
{
	GoHome();
}

//停止
void CMfcieView::OnViewStop()
{
	Stop();
}

//刷新
void CMfcieView::OnViewRefresh()
{
	Refresh();
}

// 打开本地文件,包括HTML页面,GIFs,AIFF文件等
void CMfcieView::OnFileOpen()
{
	CString str;

	str.LoadString(IDS_FILETYPES);

	CFileDialog fileDlg(TRUE, NULL, NULL, OFN_HIDEREADONLY, str);

	if(fileDlg.DoModal() == IDOK)
		Navigate2(fileDlg.GetPathName(), 0, NULL);
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -