标签:rar 大小 c++ 输出 select div end black center
介绍如何将基本 Direct2D (D2D) 对象添加到 Visual C++ Microsoft 基础类库 (MFC) 项目中,然后将该项目构建到在渐变背景上输出“Hello, world”的应用程序中。
此演练演示如何完成以下这些任务:
若要完成本演练,需要 Visual Studio。
创建一个纯色画笔和一个线性渐变画笔
CD2DTextFormat* m_pTextFormat;
CD2DSolidColorBrush* m_pBlackBrush;
CD2DLinearGradientBrush* m_pLinearGradientBrush;
保存文件并将其关闭。
CMFCD2DWalkthroughView
类的构造函数中,添加以下代码。
// Enable D2D support for this window:
EnableD2DSupport();
// Initialize D2D resources:
m_pBlackBrush = new CD2DSolidColorBrush(GetRenderTarget(), D2D1::ColorF(D2D1::ColorF::Black));
m_pTextFormat = new CD2DTextFormat(GetRenderTarget(), _T("Verdana"), 50);
m_pTextFormat->Get()->SetTextAlignment(DWRITE_TEXT_ALIGNMENT_CENTER);
m_pTextFormat->Get()->SetParagraphAlignment(DWRITE_PARAGRAPH_ALIGNMENT_CENTER);
D2D1_GRADIENT_STOP gradientStops[2];
gradientStops[0].color = D2D1::ColorF(D2D1::ColorF::White);
gradientStops[0].position = 0.f;
gradientStops[1].color = D2D1::ColorF(D2D1::ColorF::Indigo);
gradientStops[1].position = 1.f;
m_pLinearGradientBrush = new CD2DLinearGradientBrush(GetRenderTarget(),
gradientStops, ARRAYSIZE(gradientStops),
D2D1::LinearGradientBrushProperties(D2D1::Point2F(0, 0), D2D1::Point2F(0, 0)));
保存文件并将其关闭。
在“项目”菜单上单击“类向导”。
在“MFC 类向导”中的“类名”下,选择 CMFCD2DWalkthroughView
。
在“消息”选项卡上的“消息”框中,选择 WM_SIZE
,然后单击“添加处理程序”。 此操作将 OnSize
消息处理程序添加到CMFCD2DWalkthroughView
类。
在“现有处理程序”框中,选择 OnSize
。 单击“编辑代码”以显示 CMFCD2DWalkthroughView::OnSize
方法。 在此方法的末尾,添加以下代码。
m_pLinearGradientBrush->SetEndPoint(CPoint(cx, cy));
保存文件并将其关闭。
在“项目”菜单上单击“类向导”。
在“MFC 类向导”中的“类名”下,选择 CMFCD2DWalkthroughView
。
在“消息”选项卡上,单击“添加自定义消息”。
在“添加自定义消息”对话框的“自定义 Windows 消息”框中,键入 AFX_WM_DRAW2D
。 在“消息处理程序名称”框中,键入OnDraw2D
。 选择“已注册的消息”选项,然后单击“确定”。 此操作将 AFX_WM_DRAW2D
消息的消息处理程序添加到CMFCD2DWalkthroughView
类。
在“现有处理程序”框中,选择 OnDraw2D
。 单击“编辑代码”以显示 CMFCD2DWalkthroughView::OnDraw2D
方法。 对CMFCD2DWalkthroughView::OnDrawD2D
方法使用以下代码。
afx_msg LRESULT CMFCD2DWalkthroughView::OnDraw2D(WPARAM wParam, LPARAM lParam)
{
CHwndRenderTarget* pRenderTarget = (CHwndRenderTarget*)lParam;
ASSERT_VALID(pRenderTarget);
CRect rect;
GetClientRect(rect);
pRenderTarget->FillRectangle(rect, m_pLinearGradientBrush);
pRenderTarget->DrawText(_T("Hello, World!"), rect, m_pBlackBrush, m_pTextFormat);
return TRUE;
}
保存文件并将其关闭。
参考链接:https://msdn.microsoft.com/zh-cn/library/gg482848.aspx
Direct2D开发:向 MFC 项目添加 Direct2D 对象
标签:rar 大小 c++ 输出 select div end black center
原文地址:http://www.cnblogs.com/ye-ming/p/6182349.html