参考资料:http://msdn.microsoft.com/zh-cn/library/windows/apps/dd370994
个人总结:
就是将一个窗口句柄和一个D2D对象关联起来,然后在OnPaint里面操作这个对象达到绘制图形的目的大小。
一般使用DirectWrite绘图需要下面一些函数:
CreateDeviceIndependentResources 创建与设备无关的资源,以便这些资源能够在任何位置重新使用。
DiscardDeviceIndependentResources 在不再需要与设备无关的资源时释放这些资源。
CreateDeviceResources 创建与特定设备相关的资源,例如,画笔和呈现器目标。
DiscardDeviceResources 在不再需要与设备相关的资源时释放这些资源。
DrawD2DContent 使用 Direct2D 呈现到屏幕。
DrawText 使用 Direct2D 绘制文本字符串。
OnResize 窗口大小改变时,重新调整 Direct2D 呈现器目标的大小。
知识记录:呈现器目标是一个 Direct2D 对象,用于创建绘制资源并向呈现设备呈现绘制命令。
ID2D1HwndRenderTarget 是呈现到 HWND 的呈现器目标。
[Q:除了ID2D1HwndRenderTarget还有没有呈现到其他目标的呈现器呢?
答:通过跟踪发现,还有很多呈现器,比如可以呈现到DC,呈现到DxgiSurface,还有WicBitmapRender等等。]
记录:
1.绘制的时候就用第二部创建的设备相关资源来绘图,一般而言设备相关资源如果不是很占资源就可以在绘图
后删除,待下次绘图时重新创建。
2. 需要注意的是,析构时需要删除所有资源(设备相关&设备无关);但在绘制结束后仅仅需要删除设备相关
资源。
3. IDWriteTextFormat 接口描述用于设置文本格式的字体系列的名称、大小、粗细、样式、拉伸以及区域设置
信息。IDWriteTextFormat 还定义一些方法,用于设置和获取下列属性:
•行距。
•相对于布局框的左边缘和右边缘的文本对齐方式。
•相对于布局框的顶部和底部的段落对齐方式。
•阅读方向。
•溢出布局框的文本的文本剪裁粒度。
•增量制表位。
•段落排列方向。
4. IDWriteTextLayout -- 接口可以将字体大小、粗细和下划线等格式应用到要显示的文本的子字符串。
IDWriteTextLayout 接口提供其他格式设置功能,如向选中的文本部分应用不同的格式。
5. IDWriteTypography -- 接口用于向文本布局添加可选的 OpenType 版式功能,例如,花体和其他样式文本
集。可通过调用 IDWriteTypography 接口的 AddFontFeature 方法将版式功能添加到文本布局中的特定文本范
围。此方法接收 DWRITE_FONT_FEATURE 结构作为参数,该结构包含一个 DWRITE_FONT_FEATURE_TAG 枚举常量
和一个 UINT32 执行参数。可以在 microsoft.com 上的 OpenType 布局标记注册表(可能为英文网页)找到注
册的 OpenType 功能的列表。如需等效的 DirectWrite 枚举常量,请参见 DWRITE_FONT_FEATURE_TAG。
6.-- 通过声明 DWRITE_TEXT_RANGE 和调用 IDWriteTextLayout::SetFontSize 方法,将“DirectWrite”的子
字符串“Di”的字体大小设置为 100。
-- 通过调用 IDWriteTextLayout::SetUnderline 方法为子字符串“DirectWrite”加下划线。
-- 通过调用 IDWriteTextLayout::SetFontWeight 方法,将子字符串“DirectWrite”的字体粗细设置为粗体
。