从 HDC 句柄创建 QPaintDevice

2024-02-16

我有一个来自外部库的 Windows HDC 句柄,我想使用 QPainter 功能来绘图。 Qt 中有什么方法可以从 HDC 句柄创建 QPaintDevice 吗?


这样做的一种方法:

使用 Windows API,从 HDC 获取 HWND。

HWND handle = WindowFromDC(hdc);
assert(handle != NULL);

然后子类化QWidget以访问受保护的成员convert。使用此方法,使用此成员创建 QWidget,如本解决方案中所述:如何创建一个以 hwnd 作为父级的 qwidget https://stackoverflow.com/questions/293774/how-to-create-a-qwidget-with-a-hwnd-as-parent。在此示例中,我调用了 QWidgetWrapper 的子类。

QWidgetWrapper *w = new QWidgetWrapper();
w->create((Wld)main_window);

请注意,Wld 是 Qt 中“平台相关窗口标识符”的 typedef。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

从 HDC 句柄创建 QPaintDevice 的相关文章

随机推荐