Bonjour!
Je n'arrive pas à faire afficher un bitmap sur un bouton CreateWindow.
Le bitmap se charge pourtant bien puisque le .EXE grossit.
La compilation se passe sans erreurs et l'executable s'execute!
Une semaine que j'essaie sans résultat.
Qu'est-ce qui cloche dans mon code (ci-dessous)?
#Merci d'avance <gekkko>
#include <windows.h>
#include "bitmap.h"
HWND hwndMain;
HANDLE bmp1;
HINSTANCE hInstance = NULL;
LRESULT CALLBACK MainWndProc(HWND hwnd,UINT msg,WPARAM wParam,LPARAM lParam)
{
static HWND hwndBtn1 = 0;
static HWND hwndBtn2 = 0;
switch (msg)
{
case WM_CREATE:
{
bmp1 = LoadBitmap(hInstance, "BITMAP1");
hwndBtn1 = CreateWindow ("button", "bmp1",
WS_CHILD | WS_VISIBLE | BS_PUSHBUTTON | BS_BITMAP,
50, 25, 120, 120, hwnd, (HMENU) 1,
((LPCREATESTRUCT) lParam)->hInstance, NULL);
hwndBtn2 = CreateWindow ("button","Close",
WS_CHILD | WS_VISIBLE | BS_PUSHBUTTON,
50, 170, 120, 25, hwnd, (HMENU) 2,
((LPCREATESTRUCT) lParam)->hInstance, NULL);
return 0;
break;
}
case WM_COMMAND:
{
if (LOWORD(wParam) == 2 &&
HIWORD(wParam) == BN_CLICKED &&
(HWND) lParam == hwndBtn2)
{
DestroyWindow (hwnd);
}
return 0;
break;
}
case WM_DESTROY:
{
PostQuitMessage(0);
break;
}
default:
return DefWindowProc(hwnd,msg,wParam,lParam);
}
return 0;
}
int WINAPI
WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, INT nCmdShow)
{
MSG msg;
WNDCLASSEX wcx;
ZeroMemory(&wcx,sizeof(WNDCLASSEX));
wcx.cbSize = sizeof(WNDCLASSEX);
wcx.style = CS_HREDRAW |CS_VREDRAW |CS_DBLCLKS ;
wcx.lpfnWndProc = (WNDPROC)MainWndProc;
wcx.cbClsExtra = 0;
wcx.cbWndExtra = 0;
wcx.hInstance = hInstance;
wcx.hIcon = NULL;
wcx.hCursor = LoadCursor(NULL, IDC_ARROW);
wcx.hbrBackground = (HBRUSH)(COLOR_WINDOW+6);
wcx.lpszMenuName = NULL;
wcx.lpszClassName = "WIN32";
wcx.hIconSm = NULL;
if (!RegisterClassEx(&wcx))
return 0;
hwndMain = CreateWindowEx(0,
"WIN32",
"Win32 Bitmap sur un bouton",
WS_OVERLAPPEDWINDOW,
CW_USEDEFAULT,CW_USEDEFAULT,
240,240,
HWND_DESKTOP,
NULL,
hInstance,
NULL);
if (!hwndMain)
return 0;
ShowWindow(hwndMain,SW_SHOW);
while (GetMessage(&msg,NULL,0,0))
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}
return msg.wParam;
}
// le fichier bitmap.rc:
#include "bitmap.h"
BITMAP1 BITMAP "mafoto.bmp"
// le fichier bitmap.h:
#define BITMAP1 101