Chapi72
Messages postés15Date d'inscriptionmardi 23 novembre 2004StatutMembreDernière intervention25 mai 2005
-
25 nov. 2004 à 16:31
ymca2003
Messages postés2070Date d'inscriptionmardi 22 avril 2003StatutMembreDernière intervention 3 juillet 2006
-
25 nov. 2004 à 16:51
Bonjour,
je développe sous devC++ et je voudrais simplement afficher un BITMAP dans une fenêtre.
Voici ce que j'ai fait et évidemment ça ne marche pas!
Merci d'avance.
Dans le main :
// Création de la fenêtre
hwnd = CreateWindowEx(0, szClassName,
"Projet", // Titre
WS_OVERLAPPEDWINDOW, // Fenêtre par défaut
GetSystemMetrics(SM_CXSCREEN)/4, // left
GetSystemMetrics(SM_CYSCREEN)/4, // top
GetSystemMetrics(SM_CXSCREEN)/2, // width
GetSystemMetrics(SM_CYSCREEN)/2, // height
HWND_DESKTOP, NULL, hThisInstance, NULL );
// Montre la fenêtre
ShowWindow(hwnd, nFunsterStil);
// Affiche le menu
HMENU menu = LoadMenu(hThisInstance, MAKEINTRESOURCE(ID_MENU));
SetMenu(hwnd, menu);
// Affichage d'un BITMAP
hbitmap = LoadBitmap(hThisInstance,"cd");
SendMessage(hwnd,BM_SETIMAGE,IMAGE_BITMAP,(long) hbitmap);
ymca2003
Messages postés2070Date d'inscriptionmardi 22 avril 2003StatutMembreDernière intervention 3 juillet 20067 25 nov. 2004 à 16:51
Regarde dans mes sources, il y a plusieurs exemples de gestion et d'affichage de bitamps dans des fenêtres.
dans les grandes lignes :
- dans la WndProc, traiter le message WM_PAINT
- récupérer le DC de la fenêtre (BeginPaint)
- créer un Dc en mémoire et y mettre le HBITMAP (CreateCompatibleDC, SelectObject)
- dessiner à l'écran (BitBlt)
- libérer les ressources (DeleteDc, EndPaint).