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

📄 textdemoview.cpp

📁 VC.net 的一些有用的技巧
💻 CPP
字号:
// TextDemoView.cpp : CTextDemoView 类的实现
//

#include "stdafx.h"
#include "TextDemo.h"

#include "TextDemoDoc.h"
#include "TextDemoView.h"

#ifdef _DEBUG
#define new DEBUG_NEW
#endif


// CTextDemoView

IMPLEMENT_DYNCREATE(CTextDemoView, CView)

BEGIN_MESSAGE_MAP(CTextDemoView, CView)
END_MESSAGE_MAP()

// CTextDemoView 构造/销毁

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

}

CTextDemoView::~CTextDemoView()
{
}

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

	return CView::PreCreateWindow(cs);
}

// CTextDemoView 绘制

void CTextDemoView::OnDraw(CDC* pDC)
{
	CTextDemoDoc* pDoc = GetDocument();
	ASSERT_VALID(pDoc);

	// TODO: 在此处为本机数据添加绘制代码
	using namespace Gdiplus;
	Graphics myGraphics(pDC->m_hDC);

    //在指定的位置绘制文本
	/*WCHAR string[128];
	wcscpy(string, L"在指定的位置绘制文本");
	FontFamily fontFamily(L"宋体");
	Font font(&fontFamily, 24, FontStyleRegular, UnitPixel);
	PointF pointF(30.0f, 10.0f);
	SolidBrush solidBrush(Color(255,0,0,255));
	myGraphics.DrawString(string, (INT)wcslen(string), &font, pointF, &solidBrush);*/

	//在矩形内绘制字符串
	/*WCHAR string[128];
	wcscpy(string, L"在矩形内绘制字符串");
	FontFamily fontFamily(L"宋体");
	Font font(&fontFamily, 24, FontStyleRegular, UnitPixel);
	RectF rectF(30.0f, 10.0f, 100.0f, 122.0f);
	SolidBrush solidBrush(Color(255,0,0,255));
	myGraphics.DrawString(string,(INT)wcslen(string),&font, rectF, NULL, &solidBrush);
	Pen pen(Color(255,0,0,0));
	myGraphics.DrawRectangle(&pen, rectF);*/
	
	//在矩形中居中布局文本块,每行文本都居中
	/*WCHAR string[128];
	wcscpy(string, L"在矩形中居中布局文本块,每行文本都居中");
	FontFamily fontFamily (L"宋体");
	Font font(&fontFamily, 12, FontStyleRegular, UnitPoint);
	RectF rectF(30.0f, 10.0f, 120.0f, 140.0f);
	SolidBrush solidBrush(Color(255,0,0,255));
	StringFormat stringFormat;
	// 指定每行文本居中布局
	stringFormat.SetAlignment(StringAlignmentCenter);
	// 指定文本块在矩形内居中布局
	stringFormat.SetLineAlignment(StringAlignmentCenter);
	myGraphics.DrawString(string, wcslen(string), &font, rectF, &stringFormat, &solidBrush);
	Pen pen(Color(255,0,0,0));
	myGraphics.DrawRectangle(&pen, rectF);*/

	//设置制表位
	/*WCHAR string[128] = L"姓名\t年龄\t性别\t势力\n";
	wcscat(string, L"赵云\t35\t男\t蜀\n");
	wcscat(string, L"马超\t22\t男\t西凉\n");
	wcscat(string, L"夏侯渊\t32\t男\t魏\n");
	wcscat(string, L"周瑜\t33\t男\t吴\n");

	FontFamily fontFamily(L"幼圆");
	Font font(
		&fontFamily,
		12,
		FontStyleRegular,
		UnitPoint);
	RectF rectF(10.0f, 10.0f, 450.0f, 100.0f);
	StringFormat stringFormat;
	SolidBrush solidBrush(Color(255, 0, 0, 255));
	REAL tabs[] = {150.0f, 100.0f, 100.0f, 100.0f};
	stringFormat.SetTabStops(0.0f,3, tabs);
	myGraphics.DrawString(string, wcslen(string) , &font, rectF, &stringFormat, &solidBrush);
	Pen pen(Color(255,0,0,0));
	myGraphics.DrawRectangle(&pen, rectF);*/

	//绘制垂直文本
	/*WCHAR string[] = L"绘制垂直文本";
	FontFamily fontFamily(L"楷体_GB2312");
	Font font(
		&fontFamily,
		24,
		FontStyleRegular,
		UnitPoint);
	PointF pointF(40.0f, 10.0f);
	SolidBrush solidBrush(Color(255, 0, 0, 255));
	StringFormat stringFormat;
	stringFormat.SetFormatFlags(StringFormatFlagsDirectionVertical);
	myGraphics.DrawString(string, wcslen(string), &font, pointF, &stringFormat, &solidBrush);*/

	//设定文本输出质量
	FontFamily  fontFamily(L"楷体_GB2312");
	Font font(
		&fontFamily,
		32,
		FontStyleRegular,
		UnitPixel);
	SolidBrush  solidBrush(Color(255, 0, 0, 255));
	WCHAR string1[] = L"普通文本";
	WCHAR string2[] = L"优化文本";
	WCHAR string3[] = L"抗锯齿文本";
	WCHAR string4[] = L"优化抗锯齿文本";
	//绘制普通文本
	myGraphics.SetTextRenderingHint(TextRenderingHintSingleBitPerPixel);
	myGraphics.DrawString(string1, wcslen(string1), &font, PointF(10, 10), &solidBrush);
	//绘制优化文本
	myGraphics.SetTextRenderingHint(TextRenderingHintSingleBitPerPixelGridFit);
	myGraphics.DrawString(string2, wcslen(string2), &font, PointF(10, 50), &solidBrush);
	//绘制抗锯齿文本
	myGraphics.SetTextRenderingHint(TextRenderingHintAntiAlias);
	myGraphics.DrawString(string3, wcslen(string3), &font, PointF(10, 90), &solidBrush);
	//绘制优化抗锯齿文本
	myGraphics.SetTextRenderingHint(TextRenderingHintAntiAliasGridFit);
	myGraphics.DrawString(string4, wcslen(string4), &font, PointF(10, 130), &solidBrush);
}


// CTextDemoView 诊断

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

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

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


// CTextDemoView 消息处理程序

⌨️ 快捷键说明

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