Bitmap

Chapi72 Messages postés 15 Date d'inscription mardi 23 novembre 2004 Statut Membre Dernière intervention 25 mai 2005 - 25 nov. 2004 à 16:31
ymca2003 Messages postés 2070 Date d'inscription mardi 22 avril 2003 Statut Membre Derniè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);

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

2 réponses

BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
25 nov. 2004 à 16:49
on affiche dans WM_PAINT, plein d'exemples dans mes sources et d'autres.

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

http://www.cppfrance.com/code.aspx?id=23540
http://www.cppfrance.com/code.aspx?id=22723
http://www.cppfrance.com/code.aspx?id=23921
0
Rejoignez-nous