我有一個Windows HDC句柄來自外部庫,我想使用QPainter功能進行繪製。 Qt中有什麼方法可以從HDC句柄創建QPaintDevice?這樣做的從HDC句柄創建QPaintDevice
2
A
回答
0
方式一:
使用Windows API,您可以通過HDC的HWND。
HWND handle = WindowFromDC(hdc);
assert(handle != NULL);
然後子類QWidget獲得訪問受保護的成員轉換。使用此方法,使用此解決方案中所述的創建QWidget:How to create a qwidget with a hwnd as parent。在這個例子中,我調用了QWidgetWrapper的子類。
QWidgetWrapper *w = new QWidgetWrapper();
w->create((Wld)main_window);
注意WLD爲 「依賴於平臺的窗口標識符」 Qt中的一個typedef。
相關問題
- 1. 從本地句柄創建std ::線程?
- 2. Eclipse從字符串創建CompilationUnit句柄
- 3. 假文件句柄創建
- 4. 是否爲另一個進程有效的HDC句柄?
- 5. Control.Invoke錯誤:句柄尚未創建
- 6. Win32Exception - 錯誤創建窗口句柄?
- 7. 創建類屬性的句柄
- 8. 創建窗口句柄時出錯
- 9. 無法創建cudnn句柄:CUDNN_STATUS_INTERNAL_ERROR
- 10. 什麼時候創建窗口句柄
- 11. 錯誤創建窗口句柄
- 12. 獲取句柄以動態創建swfloader
- 13. 「創建窗口句柄時出錯」
- 14. 'System.OutOfMemoryException':創建窗口句柄時出錯
- 15. 從彩色hDC到單色hDC的BitBlt?
- 16. 從字符串創建Twitter句柄陣列
- 17. PJSIP項目:從pjsua allways創建的窗口句柄NULL
- 18. 從hDC創建圖形導致算術運算溢出
- 19. 如何從cfit創建函數句柄,並與其他函數句柄相乘並整合該術語?
- 20. 從uint64_t圖像手柄創建image2D
- 21. 從QFile獲取句柄
- 22. 從句柄中獲取ContextMenu?
- 23. 從進程得到句柄
- 24. 從MemoryMappedFile獲取Win32句柄
- 25. 從DataGridViewTextBoxCell獲取句柄IntPtr?
- 26. VB.NET調用可以到窗口句柄已創建不能在一個控件調用,但手柄創建
- 27. 關於HDC,手柄,指針和DC的困惑?
- 28. 強制創建控制柄
- 29. 從語句創建PreparedStatement?
- 30. 從HTML創建元素,但通過一個函數作爲句柄
據我所知,這是不可能的。 QWidget(從QPaintDevice繼承)有一個HDC的概念。可以通過QWidget :: getDC()獲得HDC,但是無法設置它。它內部存儲在QWidgetPrivate :: dc中;在QWidget的Pimpl類中,並且完全無法訪問。 – dagur