3

Qt オブジェクトを QImage に描画し、そのイメージを HDC または CDC に描画できます。これにより、アプリケーションのパフォーマンスが低下する可能性があります。Qt オブジェクトを Win32 HDC または MFC CDC に直接描画できれば素晴らしいと思います。クリア用の QWin32Image などのクラスがあると思いますが、次のように使用できます。

QWin32Image image(hdc, 100, 100, Format_ARGB32_Premultiplied);
QPainter painter(&image);
painter.drawText(....);

私の考えでは可能ですか?または、それを行うより良い方法はありますか?

4

1 に答える 1

4

簡単な答え-いいえ。QtのAFAIKは、アプリケーションコードレベルでプラットフォームに依存しないようにUI全体を抽象化します。Qtは、すべてのウィジェットを独自のバッファーにペイントしてから、画面にペイントします。

長い答え-資格ありはい。

Qtは、QtオブジェクトがHDCおよびMFCオブジェクトと対話できるようにするWin/MFC統合ライブラリを提供します。このライブラリはうまく機能します。しかし、それがどのように機能するかを理解するまで、それを使用することはやや混乱することに気づきました。

このライブラリの機能により、QWindowsをMFCウィンドウに表示したり、MFCウィンドウをQtフレームに表示したりできます。これを念頭に置いている限り、それを機能させることができます。

または、QImage.scanLine(0)は、Windows関数の1つを使用して画面に直接書き込むために使用できる生のビットマップ全体を指します。関数名はスキャンラインですが、このように使用すると、生のピクセルバッファーの開始を指します。

于 2010-05-29T12:56:27.453 に答える