vc++使用GDI创建字体输出

Posted 博客园新新新新人

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了vc++使用GDI创建字体输出相关的知识,希望对你有一定的参考价值。

	CString strOut[4];			//字义输出的文字
	strOut[0] = "1.使用函数 CreatePointFont()创建宋体字";
	strOut[1] = "2.使用函数 CreateFontIndirect()创建倾斜、带下划线的黑体字";
	strOut[2] = "3.使用函数 CreateFont()创建带删除线的大号字体";
	strOut[3] = "4.使用库存字体对象创建 ANSI标准的等宽字体";
	//创建两个字体对象
	CFont *OldFont, NewFont;
	LOGFONT MyFont = {
			30,
			10,
			0,
			0,
			0,
			1,
			1,
			0,
			ANSI_CHARSET,
			OUT_DEFAULT_PRECIS,
			CLIP_DEFAULT_PRECIS,
			DEFAULT_QUALITY,
			DEFAULT_PITCH,
			"黑体"
			};
	pDC->TextOut(0, 10, "创建字体的几种方法: ");
	//显示几种不同效果的字体
	for(int i = 0;i < 4;i++)
	{
		switch(i)
		{
		case 0:
			//使用函数 CreatePointFont()创建字体
			NewFont.CreatePointFont(200, "宋体", NULL);
			break;
		case 1:
			//使用函数 CreateFontIndirect()创建字体
			NewFont.CreateFontIndirect(&MyFont);
			break;
		case 2:
			NewFont.CreateFont(30, 10, 0, 0, FW_HEAVY, FALSE, FALSE, TRUE,
								ANSI_CHARSET, OUT_DEFAULT_PRECIS, CLIP_DEFAULT_PRECIS,
								DEFAULT_QUALITY, DEFAULT_PITCH | FF_DONTCARE, "大号字");
			break;
		case 3:
			//使用库存字体对象创建字体
			pDC->SelectStockObject(ANSI_FIXED_FONT);
			break;
		default:
			break;
		}
		OldFont = pDC->SelectObject(&NewFont);
		pDC->TextOut(0, 60 * (i+1), strOut[i]);
		pDC->SelectObject(OldFont);
		NewFont.DeleteObject();
	}

技术分享

以上是关于vc++使用GDI创建字体输出的主要内容,如果未能解决你的问题,请参考以下文章

MFC中GDI之CFont(字体)

用VC++ 怎样把图像输出保存成jepg或bmp图像

GDI+ - 为啥 MeasureString 函数使用 Courier 字体失败?

vc++这个函数啥意思?

GDI - 我可以在 DrawText 中使用新的 Windows 10 Segoe UI Emoji 彩色字体吗?

如何使用准确的 GDI 字体大小?