掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
ピクチャコントロールにビットマップを表示するには? (ID:54482)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
VC初心者のけーぼうと申します。 画像データ(_buffer変数)を、CBitmapに変換し、ピクチャコントロールに表示しようとしています。 HPで調べて、以下のボタンクリックイベントのハンドラにコードを書いたのですが、ピクチャコントロールには何の変化もおきません。 何が問題なのか悩んでいます。 bmp = new CBitmap; bmp->CreateBitmap(SCREEN_WIDTH, SCREEN_HEIGHT, 1, 4, _buffer); CWnd* wnd = GetDlgItem(IDC_PICTURE); CDC DC; CDC* pDC = wnd->GetDC( ); DC.CreateCompatibleDC(pDC); CBitmap* pOld; pOld = DC.SelectObject(bmp); pDC->BitBlt(0, 0, SCREEN_WIDTH, SCREEN_HEIGHT, &DC, 0,0, SRCCOPY); DC.SelectObject( pOld ); wnd->ReleaseDC( pDC ); ちなみに、CreateCompatibleDC, BitBltは、正常終了値(非ゼロ)を返しています。 画像データ(_buffer変数)は、以下のコードで正しくビットマップファイルに 変換されます。 BITMAPFILEHEADER fh; BITMAPCOREHEADER ch; FILE * fp; fh.bfType = *(WORD*)"BM"; fh.bfReserved1 = 0; fh.bfReserved2 = 0; fh.bfOffBits = (sizeof(fh) + sizeof(ch)); fh.bfSize = fh.bfOffBits + sizeof(_buffer); ch.bcBitCount = 32; ch.bcWidth = SCREEN_WIDTH; ch.bcHeight = SCREEN_HEIGHT; ch.bcPlanes = 1; ch.bcSize = sizeof(ch); fp = fopen(filePath, "wb"); fwrite(&fh, 1, sizeof(fh), fp); fwrite(&ch, 1, sizeof(ch), fp); fwrite(buffer, 1, SCREEN_WIDTH * SCREEN_HEIGHT * 4, fp); fclose( fp );
←解決時は質問者本人がここをチェックしてください。
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.