Lập trình C++ xuất file *.bmp ra màn hình

Published by admin on

Để xuất file ảnh *.bmp ra cửa sổ màn hình ứng dụng, bạn có thể dùng các hàm API Windows khác nhau, trong đó 2 hàm chính yếu là LoadImage() để nạp file ảnh vào bộ nhớ và hàm BitBlt (hay StretchBlt) để hiển thị ảnh lên cửa sổ màn hình. Sau đây là đoạn code VC++ điển hình để hiển thị file ảnh c:test.bmp lên Form ứng dụng hiện hành:

 //nạp file ảnh vào đối tượng Bitmap
 HBITMAP hbm = (HBITMAP)LoadImage( NULL, “c:\test.bmp”, IMAGE_BITMAP, 0, 0, LR_CREATEDIBSECTION | LR_DEFAULTSIZE | LR_LOADFROMFILE );
 //kiểm tra, nếu thất bại thì dừng công việc
 if (hbm == NULL) return;
 //xác định Device context của form
 HDC hdc = this->GetDC()->m_hDC;
 //tạo 1 Device context mới tương thích với form
 HDC hdcTemp = CreateCompatibleDC(hdc);
 //chứa đối tượng bitmap vào DC mới
 SelectObject(hdcTemp, hbm);
 //xác định kích thước của bitmap.
 BITMAP bm;
 GetObject(hbm, sizeof(BITMAP), &bm);
 //hiển thị bitmap lên vị trí (50,50) của form.
 BitBlt(hdc, 50, 50, bm.bmWidth + 50, bm.bmHeight + 50, hdcTemp, 0, 0, SRCCOPY);
 //giải phóng DC của form
 ::ReleaseDC(m_hWnd,hdc);