BMP ファイルの表示

VC++ で BMP ファイルを入力して表示する基本プログラムです。

前田稔(Maeda Minoru)の超初心者のプログラム入門

プロジェクトの設定

  1. 表示する BMP 画像を用意して、例えば c:\tmp のフォルダーに格納して下さい。
    原則的に BMP 画像であれば何でも良いのですが、縦横共に300ピクセル程度の24ビット形式が良いでしょう。
  2. 新規プロジェクト(Bmp)を作成して WM_PAINT の位置までスクロールして下さい。
    プロジェクトの作成は Windows プログラムを自動的に作成する を参照して下さい。
  3. WM_PAINT に画像を表示するコードを追加します。
        case WM_PAINT:
            hdc = BeginPaint(hWnd, &ps);
            // TODO: 描画コードをここに追加してください...
            HDC             hBmpDC;
            HBITMAP         hBmp;
            BITMAP          bm;
    
            hBmp = (HBITMAP)LoadImage(NULL,"c:\\tmp\\ayu.bmp",IMAGE_BITMAP,0,0,LR_LOADFROMFILE|LR_CREATEDIBSECTION);
            if (hBmp!=NULL)
            {   hBmpDC= CreateCompatibleDC(hdc);
                SelectObject(hBmpDC,hBmp);
                GetObject(hBmp,sizeof(bm),&bm);
                BitBlt(hdc,0,0,bm.bmWidth,bm.bmHeight,hBmpDC,0,0,SRCCOPY);
                BitBlt(hdc,400,300,200,100,hBmpDC,100,50,SRCCOPY);
                DeleteDC(hBmpDC);
                DeleteObject(hBmp);
            }
            EndPaint(hWnd, &ps);
            break;
        
  4. [デバッグ][デバッグなしで開始] を選択してビルドに続いて実行を行います。
    用意した BMP 画像が表示されたら完成です。
  5. Windows 10 でも W32 Image で画像を描画しています。

【演習】

BitBlt() のパラメータを次のように設定して描画してみて下さい。
パラメータの意味を理解いただけたでしょうか。 (^_^;)
  1. 最初の描画です。
    BitBlt(hdc,0,0,bm.bmWidth,bm.bmHeight,hBmpDC,0,0,SRCCOPY);
  2. 二番目のパラメータを 200 にして見ました。
    BitBlt(hdc,200,0,bm.bmWidth,bm.bmHeight,hBmpDC,0,0,SRCCOPY);
  3. 三番目のパラメータを 100 にして見ました。
    BitBlt(hdc,0,100,bm.bmWidth,bm.bmHeight,hBmpDC,0,0,SRCCOPY);
  4. 四番目のパラメータを 100 にして見ました。
    BitBlt(hdc,0,0,100,bm.bmHeight,hBmpDC,0,0,SRCCOPY);
  5. 四番目のパラメータを 100 に、七番目のパラメータを 100 にして見ました。
    BitBlt(hdc,0,0,100,bm.bmHeight,hBmpDC,100,0,SRCCOPY);
  6. それぞれのパラメータの値を変えて描画して見ました。
    BitBlt(hdc,400,300,200,100,hBmpDC,100,50,SRCCOPY);

超初心者のプログラム入門(Win32API C++)