2

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

4

1 回答 1

0

这样做的一种方法:

使用 Windows API,从 HDC 获取 HWND。

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

然后子类化 QWidget 以访问受保护的成员转换。使用它,使用此成员创建 QWidget,如本解决方案中所述:如何创建一个以 hwnd 作为父级的 qwidget。在这个例子中,我调用了 QWidgetWrapper 的子类。

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

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

于 2012-04-29T23:38:47.427 回答