如果你想在 CD2DGeometrySink 类中添加多个线段(折线),你可以实现一个 AddLines 方法。这个方法可以接受一系列的点,然后使用 Direct2D 的 ID2D1GeometrySink 接口的 AddLines 方法将这些点连接成折线。

以下是一个简单的示例:
class CD2DGeometrySink {
public:
    // 其他成员和方法...

    void AddLines(const std::vector<D2D1_POINT_2F>& points) {
        if (m_pSink != nullptr && points.size() > 1) {
            // 假设 m_pSink 是 ID2D1GeometrySink* 类型的成员变量
            m_pSink->BeginFigure(points[0], D2D1_FIGURE_BEGIN_FILLED);

            for (size_t i = 1; i < points.size(); ++i) {
                m_pSink->AddLine(points[i]);
            }

            m_pSink->EndFigure(D2D1_FIGURE_END_OPEN);
        }
    }

private:
    ID2D1GeometrySink* m_pSink;  // 用于描述几何图形路径的接口
};

在这个示例中,AddLines 方法接受一个 std::vector<D2D1_POINT_2F> 类型的参数,表示一系列连接的点。然后,它调用 ID2D1GeometrySink 接口的 BeginFigure 方法指定第一个点,然后使用 AddLine 方法连接剩余的点,最后使用 EndFigure 方法结束折线。

这只是一个基本的示例,具体的实现可能会因你的项目结构、需求和 Direct2D 版本而有所不同。如果你有特定的 MFC 版本或更多上下文,可以查阅相应版本的 MFC 文档或参考相关的编程资源,以获取准确的方法声明和使用方式。


转载请注明出处:http://www.zyzy.cn/article/detail/16239/MFC/CD2DGeometrySink