D2D绘制文本

#include <windows.h>
#include <d2d1.h>
#include <d2d1helper.h>
#include <dwrite.h>
#pragma comment(lib, "dwrite.lib")
#pragma comment(lib, "d2d1.lib")

void CMFCApplication2Dlg::OnBnClickedButton3()
{
	ID2D1Factory * g_factory;
	ID2D1HwndRenderTarget * g_render_target;
	ID2D1SolidColorBrush  * g_brush;

	IDWriteFactory * g_write_factory;
	IDWriteTextFormat * g_text_format;
	D2D1CreateFactory(D2D1_FACTORY_TYPE_SINGLE_THREADED, &g_factory);

	RECT rc;
	::GetClientRect(m_hWnd, &rc);

	g_factory->CreateHwndRenderTarget(
		D2D1::RenderTargetProperties(),
		D2D1::HwndRenderTargetProperties(m_hWnd, D2D1::SizeU(rc.right - rc.left, rc.bottom - rc.top)),
		&g_render_target);

	g_render_target->CreateSolidColorBrush(D2D1::ColorF(0xf0f0f0), &g_brush);

	// Init Font
	DWriteCreateFactory(DWRITE_FACTORY_TYPE_SHARED, __uuidof(g_write_factory), reinterpret_cast<IUnknown **>(&g_write_factory));
	g_write_factory->CreateTextFormat(L"Tahoma", NULL, DWRITE_FONT_WEIGHT_NORMAL,
		DWRITE_FONT_STYLE_NORMAL, DWRITE_FONT_STRETCH_NORMAL, 11, L"", &g_text_format);


	if (!g_render_target)
		return;

	g_render_target->BeginDraw();

	// Clear Background
	g_render_target->Clear(D2D1::ColorF(0x535353));

	// Draw Text 

	const wchar_t * text = L"背景 GIJQR Direct2D Text Sample";
	D2D1_SIZE_F size = g_render_target->GetSize();

	g_render_target->DrawText(text, wcslen(text),
		g_text_format,
		D2D1::RectF(0, 0, size.width, size.height),
		g_brush);

	g_render_target->EndDraw();


}

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值