📄 textviewerview.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 + -