gpt4 book ai didi

c++ - 让 Cairo 图形与 MFC 一起工作的小例子?

转载 作者:塔克拉玛干 更新时间:2023-11-03 07:37:25 25 4
gpt4 key购买 nike

我有一些遗留的 MFC 应用程序,我想使用 Cairo 绘图引擎添加一些图表和图形。

我正在寻找一个小例子来说明如何让它发挥作用。基本上,一旦我创建了 PNG 或 GIF 文件,我如何让它显示在 MFC CView 窗口中?

我的 google-fu 没有找到任何好的线索。

最佳答案

来 self 的演示示例,

// cairo_surface_t *surface;
// cairo_t *cr;

// surface = call_win32_surface_create_with_dib_T(CAIRO_FORMAT_ARGB32, 240, 80);
// cr = call_create_T (surface);

// call_surface_write_to_png_T (surface, "hello.png");


HDC src = call_win32_surface_get_dc_T(surface); // <--------
BitBlt(dest, 0, 0, 240, 80, src, 0,0, SRCCOPY); // <--------

假设您已经有一个表面,您可以使用类似于上面示例的东西。
dest 是要渲染的窗口的 HDC 句柄开罗表面。

更新: CView::OnDraw()

您应该为您的 CView(继承的?)类实现 OnDraw() 方法。
可以使用pDC指针绘制开罗面,即:

pDC->BitBlt(0, 0, 240, 80, src, 0,0, SRCCOPY); // "HDC src" is mentioned above

关于c++ - 让 Cairo 图形与 MFC 一起工作的小例子?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1328156/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com