Bitmap

Signaler
Messages postés
15
Date d'inscription
mardi 23 novembre 2004
Statut
Membre
Dernière intervention
25 mai 2005
-
Messages postés
2070
Date d'inscription
mardi 22 avril 2003
Statut
Membre
Dernière intervention
3 juillet 2006
-
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);

Dans le .rc :
CD BITMAP DISCARDABLE "c:img.bmp"

2 réponses

Messages postés
21042
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
27
on affiche dans WM_PAINT, plein d'exemples dans mes sources et d'autres.

ciao...
BruNews, MVP VC++
Messages postés
2070
Date d'inscription
mardi 22 avril 2003
Statut
Membre
Dernière intervention
3 juillet 2006
8
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).

http://www.cppfrance.com/code.aspx?id=23540
http://www.cppfrance.com/code.aspx?id=22723
http://www.cppfrance.com/code.aspx?id=23921