không chính xác chắc chắn vấn đề của bạn là gì: vẽ bitmap trên biểu mẫu hoặc bạn muốn biết cách làm việc với các định dạng hình ảnh khác nhau hoặc cả hai. Dưới đây là ví dụ về cách bạn có thể tải bitmap và vẽ nó trên biểu mẫu:
HBITMAP hBitmap = NULL;
LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
{
int wmId, wmEvent;
switch (message)
{
<...>
case WM_CREATE:
hBitmap = (HBITMAP)LoadImage(hInst, L"c:\\test.bmp", IMAGE_BITMAP, 0, 0, LR_LOADFROMFILE);
break;
case WM_PAINT:
PAINTSTRUCT ps;
HDC hdc;
BITMAP bitmap;
HDC hdcMem;
HGDIOBJ oldBitmap;
hdc = BeginPaint(hWnd, &ps);
hdcMem = CreateCompatibleDC(hdc);
oldBitmap = SelectObject(hdcMem, hBitmap);
GetObject(hBitmap, sizeof(bitmap), &bitmap);
BitBlt(hdc, 0, 0, bitmap.bmWidth, bitmap.bmHeight, hdcMem, 0, 0, SRCCOPY);
SelectObject(hdcMem, oldBitmap);
DeleteDC(hdcMem);
EndPaint(hWnd, &ps);
break;
case WM_DESTROY:
DeleteObject(hBitmap);
PostQuitMessage(0);
break;
default:
return DefWindowProc(hWnd, message, wParam, lParam);
}
return 0;
}
LoadImage tải biểu tượng, con trỏ, con trỏ động hoặc bitmap. Các chi tiết về here
Để làm việc với các định dạng hình ảnh khác nhau mà bạn có thể sử dụng Windows Imaging Component (xem IWICBitmapDecoder) hoặc mã từ đây Loading JPEG and GIF pictures hoặc công cụ của bên thứ 3 như FreeImage hoặc LeadTools
hy vọng điều này giúp, coi
Nguồn
2009-11-19 02:43:14
Đó là khi bạn nhấp vào dấu kiểm nhỏ bên cạnh câu trả lời bạn thích nhất;) – mpen
dấu cảm ơn, tôi đã làm điều đó với câu trả lời dưới đây. –