Qt使用GDI绘图关键在于获取HDC,对于Qt5来说,以前有两种方法。
1、使用gui-private
pro或pri文件中增加
QT += gui-private
代码:
#include <qpa/qplatformnativeinterface.h>
QPlatformNativeInterface *fooPlatformNativeInterface= QGuiApplication::platformNativeInterface();
QBackingStore *fooBackingStore = this->topLevelWidget()->backingStore();
HDC fooNRFWGetDC = static_cast<HDC>(fooPlatformNativeInterface->nativeResourceForBackingStore(QByteArrayLiteral("getDC"), fooBackingStore));
这个方法不需要releaseDC
此方法使用了Qt官方不推荐使用的 gui-private,并且在整个窗口绘图,没有限制。
2、强行使用GetDC
pro或pri文件中增加
LIBS += -lgdi32 -luser32
代码
#include <windows.h>
HW