c++ - 从 HDC 句柄创建 QPaintDevice

标签 c++ qt gdi

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

最佳答案

一种方法:

使用 Windows API,从 HDC 获取 HWND。

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

然后子类化 QWidget 以访问 protected 成员 convert。使用它,按照此解决方案中所述使用此成员创建 QWidget:How to create a qwidget with a hwnd as parent .在这个例子中,我调用了 QWidgetWrapper 的子类。

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

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

关于c++ - 从 HDC 句柄创建 QPaintDevice,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10373429/

相关文章:

c++ - 如果不同的线程正在调用另一个不同线程的相同信号,Qt 中是否需要互斥锁?

c++ - 在函数中使用 QVector 的子集

c++ - Windows GDI 上下文 - 显示位图

c++ - Libtool 不安装子项目

python - PySide - 获取表中所有可见行的列表

c++ - 在单个屏幕上绘制场景的多个 View

c++ - 创建图元文件时奇怪的函数失败

c# - GDI+ DrawImage 在 C++ (Win32) 中比在 C# (WinForms) 中慢得多

c++ - C++中的抽象类声明

c++ - OpenCV Mat to ffmpeg AVPicture 转换内存泄漏