2013-07-04 47 views
11

QPixmap :: toWinHBITMAP()が廃止されたので、QPixmap(またはQImage)からHBITMAPを取得する方法が見つかりません。QT5でQPixmapからHBITMAPを取得する(Windows)

グーグルでは、qt_pixmapToWinHBITMAP()という関数が必要だと思っていましたが、私の.proファイル内のどのモジュールを有効にするべきかを見つけることができません。それを使用するか、それとも別のものを使用します。

私はHBITMAPが必要な理由は、VFWを使用してビデオを作成することです。もちろん、私はQtだけを使ってやりたいと思っています。 QtMultimediaモジュールがありますが、私はそれがビデオをエクスポートしないことを伝えることができるので、私はWindows APIを直接使用することに固執していると思います。

ご協力いただければ幸いです。

+0

こんにちは、代替手段を見つけましたか?私はちょうどQt5にアップグレードして、私の 'fromWinHICON'と 'fromWinHBITMAP'呼び出しで同じ問題に直面しています。 – Dalamber

答えて

10

見つけました。私のコードは、現在、このようなものになります

私は必要なすべてが

http://qt.gitorious.org/qt/qtwinextras

QtWinExtras

た:

#define WIN32_LEAN_AND_MEAN 
#include <windows.h> 
#include <qt_windows.h> 
#include <QtWinExtras/QWinFunctions> 


... 
QPixmap pix(QSize(w,h)); 
... 
HBITMAP hbm = QWinExtras::toHBITMAP(pix); 
... 
::DeleteObject(hbm); 

を、私はこれらすべてのヘッダをインクルードする必要があるかどうかは知りませんが、それは動作します私のために。

4

QtWinExtrasは必要ありません。 QtWinExtrasのように、qt_pixmapToWinHBITMAP()を使用してください。

をし、それを使用します。

あなたが含まれてすぐ後にそれを宣言します。 たとえば、QRCリソースから取得する場合:

QPixmap pixmap(":/image.bmp"); 
HBITMAP hBitmap = qt_pixmapToWinHBITMAP(pixmap); 
関連する問題