是否像在 MFC 中那样在 nana c++ 中的画布上涂鸦的图形支持?
Posted
技术标签:
【中文标题】是否像在 MFC 中那样在 nana c++ 中的画布上涂鸦的图形支持?【英文标题】:Is there graphical support for scribbling on a canvas in the nana c++ as in MFC? 【发布时间】:2015-03-18 22:06:10 【问题描述】:我有一个用 VC6 的 MFC 编写的旧图形应用程序,我正在尝试迁移到更符合标准的 C++ 框架。我查看了 nana 项目 here 的文档,试图找到一个基本示例,用于在类似于 Visual C++ 附带的旧 scribble MDI drawing example 的类似画布的小部件上涂鸦。
我读到 nana 是一个新的有前途的 c++ GUI 平台,我想知道它是否适合一般的 GUI 编程。然而,查看 nana 文档,只有按钮、列表框等示例。我找不到任何关于图形功能的提及,例如在画布(或内存中的位图)上绘图,这些功能在 MFC 或 wxWidgets 等其他 GUI 库中很常见。
有谁知道 nana 项目是否可以支持图形操作,例如 VC++ scribble
示例的底层操作?更具体地说,MS Visual Studio 的示例文件夹中的涂鸦示例演示了徒手绘制曲线以响应鼠标事件、存储曲线并在视口进行缩放和平移时刷新客户区域(即处理逻辑与图像/像素坐标系)。这些是我一直在寻找的图形 API 支持。
谢谢。
【问题讨论】:
我的问题是想问在特定的c++库中是否有特定的函数(在canvas上绘图),这个很常见也很重要。我展示了我到目前为止搜索的内容。我不认为这只是要求提供一些知名功能的教程或请求库。 【参考方案1】:我在 MS 上找不到示例,我不确定您需要什么。你可以试试这个链接:
在文档:drawing wrapper 或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(rectangle5, 5, 50, 50, true, colors::red );
graph.line(point(5, 5), point(55, 55), colors::white);
);
dw.update();
fm.show();
::nana::exec();
希望对你有帮助
【讨论】:
+1。谢谢。这是沿着我正在寻找的方向。 MS Visual Studio 在其示例文件夹中有一个涂鸦示例。它展示了如何响应鼠标事件而徒手绘制曲线、存储曲线以及在视口进行缩放和平移时刷新客户区(即处理逻辑坐标系与像素坐标系)。这些是我一直在寻找的 API。 paint::graphics 只是提供了有限的绘图功能,但是通过使用 GDI+,您将获得丰富的绘图功能,请参阅FAQ以上是关于是否像在 MFC 中那样在 nana c++ 中的画布上涂鸦的图形支持?的主要内容,如果未能解决你的问题,请参考以下文章
C# 或 C++ ;可以像在 CE 中那样修改内存吗? [关闭]