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

📄 textviewerview.cpp

📁 这是书上的代码
💻 CPP
字号:
// TextViewerView.cpp : CTextViewerView 类的实现
//

#include "stdafx.h"
#include "TextViewer.h"

#include "TextViewerDoc.h"
#include "TextViewerView.h"

#ifdef _DEBUG
#define new DEBUG_NEW
#endif


// CTextViewerView

IMPLEMENT_DYNCREATE(CTextViewerView, CView)

BEGIN_MESSAGE_MAP(CTextViewerView, CView)
	// 标准打印命令
	ON_COMMAND(ID_FILE_PRINT, CView::OnFilePrint)
	ON_COMMAND(ID_FILE_PRINT_DIRECT, CView::OnFilePrint)
	ON_COMMAND(ID_FILE_PRINT_PREVIEW, CView::OnFilePrintPreview)
	ON_WM_SIZE()
END_MESSAGE_MAP()

// CTextViewerView 构造/销毁

CTextViewerView::CTextViewerView()
: m_ctrlEdit(NULL)
{
	// TODO: 在此处添加构造代码
}

CTextViewerView::~CTextViewerView()
{
	if ( m_ctrlEdit )
		delete m_ctrlEdit;
}

BOOL CTextViewerView::PreCreateWindow(CREATESTRUCT& cs)
{
	// TODO: 在此处通过修改 CREATESTRUCT cs 来修改窗口类或
	// 样式

	return CView::PreCreateWindow(cs);
}

// CTextViewerView 绘制

void CTextViewerView::OnDraw(CDC* /*pDC*/)
{
	CTextViewerDoc* pDoc = GetDocument();
	ASSERT_VALID(pDoc);

	// TODO: 在此处为本机数据添加绘制代码
}


// CTextViewerView 打印

BOOL CTextViewerView::OnPreparePrinting(CPrintInfo* pInfo)
{
	// 默认准备
	return DoPreparePrinting(pInfo);
}

void CTextViewerView::OnBeginPrinting(CDC* /*pDC*/, CPrintInfo* /*pInfo*/)
{
	// TODO: 打印前添加额外的初始化
}

void CTextViewerView::OnEndPrinting(CDC* /*pDC*/, CPrintInfo* /*pInfo*/)
{
	// TODO: 打印后添加清除过程
}


// CTextViewerView 诊断

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

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

CTextViewerDoc* CTextViewerView::GetDocument() const // 非调试版本是内联的
{
	ASSERT(m_pDocument->IsKindOf(RUNTIME_CLASS(CTextViewerDoc)));
	return (CTextViewerDoc*)m_pDocument;
}
#endif //_DEBUG


// CTextViewerView 消息处理程序

void CTextViewerView::OnInitialUpdate()
{
	CView::OnInitialUpdate();

	CRect rcClient;
	GetClientRect( rcClient );				// 获取当前视图的客户区大小

	if ( m_ctrlEdit ) delete m_ctrlEdit;
	m_ctrlEdit = new CEdit();

	m_ctrlEdit->Create( ES_MULTILINE | WS_CHILD | WS_VISIBLE 
		| WS_HSCROLL | ES_AUTOHSCROLL		// 自动水平滚动
		| WS_VSCROLL | ES_AUTOVSCROLL ,		// 自动垂直滚动
		rcClient, this, 201);				// 创建多行编辑控件

	CTextViewerDoc* pDoc = GetDocument();	// 获取与视图相关联的文档指针

	// 以下是将文档中的m_strContent内容全部赋给str
	CString str;
	int nLines = (int)pDoc->m_strContent.GetCount();
	for ( int i=0; i<nLines; i++ ) 
	{
		str = str + pDoc->m_strContent.GetAt( i );
		str = str + "\r\n";					// 换行
	}

	m_ctrlEdit->SetTabStops( 16 );			// 设置Tab符大小
	m_ctrlEdit->SetWindowText( str );		// 将文档内容传给控件
}

void CTextViewerView::OnSize(UINT nType, int cx, int cy)
{
	CView::OnSize(nType, cx, cy);

	// TODO: 在此添加消息处理程序代码
	CRect rcClient;
	GetClientRect( rcClient );
	if ( m_ctrlEdit )
		m_ctrlEdit->MoveWindow( rcClient );	// 改变编辑控件窗口大小
}

void CTextViewerView::OnUpdate(CView* /*pSender*/, LPARAM /*lHint*/, CObject* /*pHint*/)
{
	// TODO: 在此添加专用代码和/或调用基类

}

⌨️ 快捷键说明

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