StrechDIBitsを使用してラベルのhdcに生のビットマップ画像をペイントするアプリケーションを構築しています。
ptr = g->GetHdc();
dc = (HDC)ptr.ToInt32 ();
SetStretchBltMode (dc, COLORONCOLOR);
StretchDIBits (dc, 0, 0, (int) (LabelPictureShow->Width), (int) (LabelPictureShow->Height), 0, 0, width, height, data, bitmapInfo, DIB_RGB_COLORS, SRCCOPY);
g->ReleaseHdc (ptr);
このようにして、ビデオストリーム全体を、ストリームから次々と画像を描画します。これは完璧に機能します。フルスクリーンを実現するために、フォームとラベルを画面全体にサイズ変更する機能もあります。wchichはビデオの再生にも最適です。
しかし、ビデオを停止するか、1つの画像のみを送信して、完全な画面機能を呼び出すと、それは画像を塗り直しません、そしてそれは私の問題です。サイズ変更後に画像を再度ペイントするために、フォームとラベルの両方でペイントイベント、サイズ変更イベントを使用しようとしましたが、何も機能しません。フルスクリーンまたは通常のサイズに戻ると、画像が短時間点滅しますが、その後、コントロールの色で再描画されて消えます。StretchDIBitsを使用してペイントコードをどこにでも配置しようとしましたが、どちらも機能しません。どんな助けやアドバイスも本当にありがたいです。
編集:私にとって悲しいことは、たとえば、ラベルのクリックイベントにペイントコードを入れると、正常に機能することです...