📄 fontsampleview.cpp
字号:
// FontSampleView.cpp : CFontSampleView 类的实现
//
#include "stdafx.h"
#include "FontSample.h"
#include "FontSampleDoc.h"
#include "FontSampleView.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#endif
// CFontSampleView
IMPLEMENT_DYNCREATE(CFontSampleView, CView)
BEGIN_MESSAGE_MAP(CFontSampleView, 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_COMMAND(ID_MYFONT, OnMyfont)
END_MESSAGE_MAP()
// CFontSampleView 构造/销毁
CFontSampleView::CFontSampleView()
{
// TODO: 在此处添加构造代码
//将字体颜色设置为红色
m_cTextColor = RGB(255,0,0);
//设置字体属性
m_lFont.lfHeight = 30;
m_lFont.lfWidth = 0;
m_lFont.lfEscapement = 0;
m_lFont.lfOrientation = 0;
m_lFont.lfWeight = FW_NORMAL;
m_lFont.lfItalic = FALSE;
m_lFont.lfUnderline = FALSE;
m_lFont.lfStrikeOut = FALSE;
m_lFont.lfCharSet = GB2312_CHARSET;
m_lFont.lfOutPrecision = OUT_STROKE_PRECIS;
m_lFont.lfClipPrecision = CLIP_STROKE_PRECIS;
m_lFont.lfQuality = DRAFT_QUALITY;
m_lFont.lfPitchAndFamily = VARIABLE_PITCH|FF_MODERN;
strcpy(m_lFont.lfFaceName,"楷体_GB2312");
}
CFontSampleView::~CFontSampleView()
{
}
BOOL CFontSampleView::PreCreateWindow(CREATESTRUCT& cs)
{
// TODO: 在此处通过修改 CREATESTRUCT cs 来修改窗口类或
// 样式
return CView::PreCreateWindow(cs);
}
// CFontSampleView 绘制
void CFontSampleView::OnDraw(CDC* pDC)
{
CFontSampleDoc* pDoc = GetDocument();
ASSERT_VALID(pDoc);
// TODO: 在此处为本机数据添加绘制代码
CFont myFont;
CFont* pOldFont;
//根据“字体”通用对话框中的选项绘制文本
myFont.CreateFontIndirect(&m_lFont);
pOldFont = pDC->SelectObject(&myFont);
pDC->SetTextColor(m_cTextColor);
pDC->TextOut(100,80,"通过菜单可以设置字体属性");
//pDC->SelectObject(pOldFont);
//由CreateFont函数直接创建一种显示字体
CFont myFont1;
myFont1.CreateFont(-50, //字符的逻辑高度
0, //字符的平均宽度,缺省值
450, //文本行逆时针旋转45度
450, //字符逆时针旋转45度
FW_NORMAL, //正常体
FALSE, //不倾斜
TRUE, //加下划线
FALSE, //不加删除线
GB2312_CHARSET, //中文字符集
OUT_DEFAULT_PRECIS,
CLIP_DEFAULT_PRECIS,
DEFAULT_QUALITY,
DEFAULT_PITCH|FF_MODERN,
"宋体_GB2312"); //宋体
pOldFont = pDC->SelectObject(&myFont1);
//将字体颜色设置为兰色
pDC->SetTextColor(RGB(0,0,255));
pDC->TextOut(200,250,"宋体格式");
pDC->SelectObject(pOldFont);
}
// CFontSampleView 打印
BOOL CFontSampleView::OnPreparePrinting(CPrintInfo* pInfo)
{
// 默认准备
return DoPreparePrinting(pInfo);
}
void CFontSampleView::OnBeginPrinting(CDC* /*pDC*/, CPrintInfo* /*pInfo*/)
{
// TODO: 打印前添加额外的初始化
}
void CFontSampleView::OnEndPrinting(CDC* /*pDC*/, CPrintInfo* /*pInfo*/)
{
// TODO: 打印后添加清除过程
}
// CFontSampleView 诊断
#ifdef _DEBUG
void CFontSampleView::AssertValid() const
{
CView::AssertValid();
}
void CFontSampleView::Dump(CDumpContext& dc) const
{
CView::Dump(dc);
}
CFontSampleDoc* CFontSampleView::GetDocument() const // 非调试版本是内联的
{
ASSERT(m_pDocument->IsKindOf(RUNTIME_CLASS(CFontSampleDoc)));
return (CFontSampleDoc*)m_pDocument;
}
#endif //_DEBUG
// CFontSampleView 消息处理程序
void CFontSampleView::OnMyfont()
{
// TODO: 在此添加命令处理程序代码
//声明一个“字体”通用对话框对象
CFontDialog dlg;
//定义“字体”通用对话框的初值
dlg.m_cf.lpLogFont = &m_lFont;
dlg.m_cf.rgbColors = m_cTextColor;
dlg.m_cf.Flags != CF_INITTOLOGFONTSTRUCT;
//打开“字体”通用对话框,若单击了“确定”按钮
if (dlg.DoModal() == IDOK){
//获取所选择的字体属性
dlg.GetCurrentFont(&m_lFont);
//获取所选择的字体颜色
m_cTextColor = dlg.GetColor();
//重画窗口
Invalidate();
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -