【VC开源代码栏目提醒】:网学会员,鉴于大家对VC开源代码十分关注,论文会员在此为大家搜集整理了“HollowFontView.cpp”一文,供大家参考学习!
// HollowFontView.cpp : implementation of the CHollowFontView class
//
#include "stdafx.h"
#include "HollowFont.h"
#include "HollowFontDoc.h"
#include "HollowFontView.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CHollowFontView
IMPLEMENT_DYNCREATE(CHollowFontView, CView)
BEGIN_MESSAGE_MAP(CHollowFontView, CView)
//{{AFX_MSG_MAP(CHollowFontView)
// NOTE - the ClassWizard will add and remove mapping macros here.
// DO NOT EDIT what you see in these blocks of generated code!
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CHollowFontView construction/destruction
CHollowFontView::CHollowFontView()
{
m_sText = "计算机世界";
}
CHollowFontView::~CHollowFontView()
{
}
BOOL CHollowFontView::PreCreateWindow(CREATESTRUCT& cs)
{
// TODO: Modify the Window class or styles here by modifying
// the CREATESTRUCT cs
return CView::PreCreateWindow(cs);
}
/////////////////////////////////////////////////////////////////////////////
// CHollowFontView drawing
void CHollowFontView::OnDraw(CDC* pDC)
{
CHollowFontDoc* pDoc = GetDocument();
ASSERT_VALID(pDoc);
// TODO: add draw code for native data here
if(m_font.GetSafeHandle() != NULL)
{
CFont* pOldFont = (CFont*)pDC->SelectObject(&m_font);
pDC->SetBkMode(TRANSPARENT);
int cx = 10; //显示位置
int cy = 100;
CString sTemp = m_sText;
cx += 3; //以下先输出突出的3D文本
cy += 3;
pDC->SetTextColor(::GetSysColor(COLOR_3DDKSHADOW));
pDC->TextOut(cx+2,cy-2,sTemp);
pDC->TextOut(cx+2,cy+2,sTemp);
pDC->SetTextColor(::GetSysColor(COLOR_3DHILIGHT));
pDC->TextOut(cx+1,cy-2,sTemp);
pDC->TextOut(cx-2,cy+1,sTemp);
pDC->TextOut(cx-2,cy-2,sTemp);
pDC->SetTextColor(::GetSysColor(COLOR_3DSHADOW));
pDC->TextOut(cx-1,cy+1,sTemp);
pDC->TextOut(cx+1,cy-1,sTemp);
pDC->TextOut(cx+1,cy+1,sTemp);
pDC->SetTextColor(::GetSysColor(COLOR_3DLIGHT));
pDC->TextOut(cx,cy-1,sTemp);
pDC->TextOut(cx-1,cy,sTemp);
pDC->TextOut(cx-1,cy-1,sTemp);
//然后通过路径对象将以上要输出的文本变成空心
//向路径输出汉字
pDC->BeginPath(); //去掉以下几句将变成浮雕字
pDC->TextOut(cx,cy,sTemp,19); //
pDC->EndPath(); //
//填充路径
pDC->SetPolyFillMode(WINDING);
//设置填充模式
pDC->StrokeAndFillPath();//绘制路径外观
pDC->SelectObject(pOldFont);
}
}
/////////////////////////////////////////////////////////////////////////////
// CHollowFontView diagnostics
#ifdef _DEBUG
void CHollowFontView::AssertValid() const
{
CView::AssertValid();
}
void CHollowFontView::Dump(CDumpContext& dc) const
{
CView::Dump(dc);
}
CHollowFontDoc* CHollowFontView::GetDocument() // non-debug version is inline
{
ASSERT(m_pDocument->IsKindOf(RUNTIME_CLASS(CHollowFontDoc)));
return (CHollowFontDoc*)m_pDocument;
}
#endif //_DEBUG
/////////////////////////////////////////////////////////////////////////////
// CHollowFontView message handlers
void CHollowFontView::OnInitialUpdate()
{
CView::OnInitialUpdate();
LOGFONT lf; //lf定义字体属性
lf.lfHeight = -60; //字符字体高度
lf.lfWidth = 0; //字符平均宽度
lf.lfEscapement = 0; //文本行逆时针旋转45度
lf.lfOrientation = 0; //字体角度
lf.lfWeight = FW_HEAVY; //字体粗细程度
lf.lfItalic = FALSE; //倾斜
lf.lfUnderline = FALSE; //下划线
lf.lfStrikeOut = FALSE; //删除线
lf.lfCharSet = GB2312_CHARSET; //中文字符集
lf.lfOutPrecision = OUT_STROKE_PRECIS; //字体输出结果和要求匹配的程度
lf.lfClipPrecision = CLIP_STROKE_PRECIS;//如何剪裁落于剪裁区之外的字符
lf.lfQuality = DRAFT_QUALITY; //字体属性匹配的精确程度
lf.lfPitchAndFamily = VARIABLE_PITCH|FF_MODERN; //字体间距和字体族
strcpy(lf.lfFaceName,"幼园"); //楷体
m_font.CreateFontIndirect(&lf);
}
上一篇:
HollowFontDoc.cpp
下一篇:
经济酒店发展:China''s economy hotel market development strategies