是否像在 MFC 中那样在 nana c++ 中对 canvas 进行涂鸦提供图形支持?

Is there graphical support for scribbling on a canvas in the nana c++ as in MFC?

我有一个用 VC6 的 MFC 编写的旧图形应用程序,我正在尝试将其迁移到更符合标准的 C++ 框架。我查看了 Visual C++ 附带的 nana 项目 here, trying to find a basic example for scribbling on a canvas-like widget similar to the old scribble MDI drawing example 的文档。

我读到 nana 是一个很有前途的新的 c++ GUI 平台,我想知道它是否适合一般的 GUI 编程。然而,查看 nana 文档,只有按钮、列表框等的示例。我找不到任何关于图形功能的提及,例如在 canvas(或内存位图)上绘图,这些功能在其他 GUI 库(如 MFC 或 wxWidgets)中很常见。

有谁知道 nana 项目是否可以支持图形操作,例如 VC++ scribble 示例中的图形操作?更具体地说,MS visual studio 的示例文件夹中的涂鸦示例演示了徒手绘制曲线以响应鼠标事件、存储曲线并在视口进行缩放和平移时刷新客户区(即处理逻辑 v.s.image/pixel坐标系)。这些是我一直在寻找的图形 API 支持。

谢谢。

我在 MS 找不到示例,我不确定您需要什么。您可以尝试使用此链接:

在文档中:drawing wrapper or hier,设置绘图函数。

在 doxy-docs:drawing

可以使用以下方法构造绘图函数:graphics

这样:

#include <nana/gui/wvl.hpp>

int main()
{
    using namespace nana;

    form fm;
    drawing dw(fm);
    dw.draw([](paint::graphics& graph)
    {
        graph.rectangle(rectangle{5, 5, 50, 50}, true, colors::red );
        graph.line(point(5, 5), point(55, 55), colors::white);
    });

    dw.update();
    fm.show();
    ::nana::exec();
}

希望对你有帮助