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

📄 wordeditview.cpp

📁 《Visual C++.NET MFC类库应用详解》程序实例
💻 CPP
字号:
// WordEditView.cpp : CWordEditView 类的实现
//

#include "stdafx.h"
#include "WordEdit.h"

#include "WordEditDoc.h"
#include "CntrItem.h"
#include "WordEditView.h"
#include "MarginSetup.h"

#ifdef _DEBUG
#define new DEBUG_NEW
#endif


// CWordEditView

IMPLEMENT_DYNCREATE(CWordEditView, CRichEditView)

BEGIN_MESSAGE_MAP(CWordEditView, CRichEditView)
	ON_WM_DESTROY()
	// 标准打印命令
	ON_COMMAND(ID_FILE_PRINT, CRichEditView::OnFilePrint)
	ON_COMMAND(ID_FILE_PRINT_DIRECT, CRichEditView::OnFilePrint)
	ON_COMMAND(ID_FILE_PRINT_PREVIEW, CRichEditView::OnFilePrintPreview)
	ON_COMMAND(ID_FORMAT_FONT, OnFormatFont)
	ON_COMMAND(ID_FORMAT_LEFT, OnFormatLeft)
	ON_COMMAND(ID_FORMAT_RIGHT, OnFormatRight)
	ON_COMMAND(ID_FORMAT_CENTER, OnFormatCenter)
	ON_COMMAND(ID_FORMAT_MARGIN, OnFormatMargin)
END_MESSAGE_MAP()

// CWordEditView 构造/销毁

CWordEditView::CWordEditView()
{
	// TODO: 在此处添加构造代码

}

CWordEditView::~CWordEditView()
{
}

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

	return CRichEditView::PreCreateWindow(cs);
}

void CWordEditView::OnInitialUpdate()
{
	CRichEditView::OnInitialUpdate();

	// 设置打印边距(720 缇 = 1/2 英寸)
	SetMargins(CRect(720, 720, 720, 720));
}


// CWordEditView 打印

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


void CWordEditView::OnDestroy()
{
	// 停用处于销毁中的项;这在
	// 使用拆分器视图时非常重要 
   COleClientItem* pActiveItem = GetDocument()->GetInPlaceActiveItem(this);
   if (pActiveItem != NULL && pActiveItem->GetActiveView() == this)
   {
      pActiveItem->Deactivate();
      ASSERT(GetDocument()->GetInPlaceActiveItem(this) == NULL);
   }
   CRichEditView::OnDestroy();
}



// CWordEditView 诊断

#ifdef _DEBUG
void CWordEditView::AssertValid() const
{
	CRichEditView::AssertValid();
}

void CWordEditView::Dump(CDumpContext& dc) const
{
	CRichEditView::Dump(dc);
}

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


// CWordEditView 消息处理程序

void CWordEditView::OnFormatFont()
{
	// TODO: 在此添加命令处理程序代码
	CFontDialog fFontDialog;
	if(fFontDialog.DoModal()!=IDOK)
		return;
	CHARFORMAT2 &cf=GetCharFormatSelection();
    cf.cbSize = sizeof(CHARFORMAT);
	cf.dwMask = CFM_BOLD|CFM_ITALIC|CFM_UNDERLINE|CFM_STRIKEOUT|CFM_SIZE|
		CFM_COLOR|CFM_OFFSET|CFM_PROTECTED|CFM_FACE;
    cf.yHeight=fFontDialog.GetSize();
    cf.crTextColor=fFontDialog.GetColor();
    strcpy(cf.szFaceName,fFontDialog.GetFaceName());
	if(fFontDialog.IsStrikeOut())
	   cf.dwEffects |= CFE_STRIKEOUT;
	if(fFontDialog.IsBold())
	   cf.dwEffects |= CFE_BOLD;
	if(fFontDialog.IsItalic())
	   cf.dwEffects |= CFE_ITALIC;
	if(fFontDialog.IsUnderline())
	   cf.dwEffects |= CFE_UNDERLINE;
    SetCharFormat(cf);
}

void CWordEditView::OnFormatLeft()
{
	// TODO: 在此添加命令处理程序代码
	OnParaAlign(PFA_LEFT);
}

void CWordEditView::OnFormatRight()
{
	// TODO: 在此添加命令处理程序代码
	OnParaAlign(PFA_RIGHT);	
}

void CWordEditView::OnFormatCenter()
{
	// TODO: 在此添加命令处理程序代码
	OnParaAlign(PFA_CENTER);
}

void CWordEditView::OnFormatMargin()
{
	// TODO: 在此添加命令处理程序代码
    CMarginSetup marginsetup;
	CRect rectMargin;
    if(marginsetup.DoModal()==IDOK)
	{
		rectMargin.left=long(marginsetup.m_MarginLeft*1440.0/2.54);
		rectMargin.right=long(marginsetup.m_MarginRight*1440.0/2.54);
		rectMargin.top=long(marginsetup.m_MarginTop*1440.0/2.54);
		rectMargin.bottom=long(marginsetup.m_MarginBottom*1440.0/2.54);

        SetMargins(rectMargin);
	}
}

⌨️ 快捷键说明

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