Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Bem, queria mecher com imagens no programa que estou fazendo, não editar ou gravar, apenas usá-las. Já consegui colocar uma imagem no fundo da tela com esse código:
LRESULT CALLBACK MainWndProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam) {
switch(msg) {
//...
case WM_PAINT: {
HBITMAP bknd;
BITMAP bm;
PAINTSTRUCT ps;
bknd = LoadBitmap(hInstance, MAKEINTRESOURCE(IDI_BKGND));
HDC hdc = BeginPaint(hwnd, &ps);
HDC hdcMem = CreateCompatibleDC(hdc);
HBITMAP hbmOld = (HBITMAP)SelectObject(hdcMem, bknd);
GetObject(bknd, sizeof(bm), &bm);
BitBlt(hdc, 0, 0, bm.bmWidth, bm.bmHeight, hdcMem, 0, 0, SRCCOPY);
SelectObject(hdcMem, hbmOld);
DeleteDC(hdcMem);
EndPaint(hwnd, &ps);
}
break;
//...
return 0;HWND hInstBtmImg = CreateWindow(TEXT("button"), TEXT(""),
WS_VISIBLE | WS_CHILD | BS_PUSHBUTTON | BS_BITMAP,
300, 200, 96, 21, hwnd, (HMENU) IDB_IMAGEM, hInst /*NULL*/, NULL);
HBITMAP hBmp = LoadBitmap(hInst, MAKEINTRESOURCE(IDI_IMAGEM));
SendMessage(hInstBtmImg, BM_SETIMAGE, IDI_IMAGEM, (LPARAM)hBmp);Mas não funciona, e o botão fica em branco (um botão vazio e cinza).
Se eu tento carregar uma imagem em formato diferente de .bmp (tentei com .jpg) dá erro ainda na compilação, por isso eu nem tentei com GIFs e PNGs.
Carregando comentários...