Win32 API Image

Windows Program(Win32 API) で画像を描画します。

前田稔の超初心者のプログラム入門

プログラムの説明

  1. 昔ながらの Windows Program(Win32 API) で画像を描画します。
    ベースとなるプログラムは Windows Program を作成する です。
  2. ベースプログラムに次の修正を加えて WinImage.cpp の名前で C:\DATA\Cpp\BAT\ に格納して下さい。
    ウインドウのサイズを広げます。
        g_hWnd= CreateWindow(NAME,TITLE,WS_OVERLAPPEDWINDOW,
                CW_USEDEFAULT,CW_USEDEFAULT,600,400,
                NULL,NULL,hInst,NULL);
    
    WM_PAINT: で画像を描画します。
    LRESULT  CALLBACK  WndProc(HWND hWnd,UINT msg,WPARAM wParam,LPARAM lParam)
    {   PAINTSTRUCT ps;
        HDC         hdc;
        HDC         hBmpDC;
        HBITMAP     hBmp;
        BITMAP      bm;
    
        switch(msg)
        {   case WM_PAINT:
                hdc = BeginPaint(hWnd, &ps);
                hBmp = (HBITMAP)LoadImage(NULL,"c:\\data\\test\\ffx2s.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);
                    DeleteDC(hBmpDC);
                    DeleteObject(hBmp);
                }
                EndPaint(hWnd, &ps);
                break;
            case WM_DESTROY:
                PostQuitMessage(0);
                return 0L;
        }
        //デフォルトの処理
        return  DefWindowProc(hWnd,msg,wParam,lParam);
    }
    
  3. スタートメニューから[すべてのプログラム][Visual C++ 2005 Express Edition][Visual Studio Tools] [Visual Studio 2005 コマンド プロンプト] から起動します。
  4. 次のコマンドをタイプして下さい。
    ウインドウに画像が描画されます。
    C:\Users\maeda>CD C:\DATA\Cpp\BAT
    C:\DATA\Cpp\BAT>CL WinImage.cpp
    C:\DATA\Cpp\BAT>WinImage.exe
    
  5. "c:\data\test" に事前に画像(ffx2s.bmp)を格納しておいて下さい。
    プログラムを実行すると ffx2s.bmp の画像が描画されます。

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