begin process at 2010 02 10 15:02:09
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Graphique

 > IMAGE DE FOND (BMP) DANS UNE FORM [DEVC++]

IMAGE DE FOND (BMP) DANS UNE FORM [DEVC++]


 Information sur la source

 Description

Bonjour, je me permet de mettre cette source car j'ai cherché longtemps avant de  trouver (Merci BruNews).
Cette source s'adresse au débutant comme moi qui cherche a mettre une image dans leur form.
Le code va chercher le fichier dans une ressource qui est incorporé dans l'executable.
Le compilateur utilisé est DevC++ 4.01.


Source

  • 1/ Dans Edit Ressources File:
  • Image1 BITMAP "D:/Programme/Cpp/KDo[W32]/os1.bmp"
  • 2/ Dans votre code:
  • 2-1/ La bibliotheque :
  • #include <windows.h>
  • 2-2/ Déclarer vos variables:
  • PAINTSTRUCT ps;
  • RECT rect;
  • HGLOBAL hgbl;
  • HDC hdc, hdc2;
  • HINSTANCE hinst;
  • HBITMAP hbmp;
  • 2-3/ Affichage de l'image:
  • [...]
  • LRESULT CALLBACK WindowProcedure(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
  • {
  • switch (message)
  • {
  • case WM_PAINT:
  • hbmp=(HBITMAP)LoadImage(hinst,"Image1", IMAGE_BITMAP, 0, 0, LR_CREATEDIBSECTION); // va chercher l'image
  • hdc = BeginPaint( hwnd, &ps );
  • GetClientRect(hwnd,&rect);
  • hdc2 = CreateCompatibleDC(hdc);
  • SelectObject(hdc2, hbmp);
  • StretchBlt(hdc,0,0,260,270,hdc2,0,0,260,270, SRCCOPY); // incorpore l'image dans la form
  • DeleteDC(hdc2);
  • EndPaint( hwnd, &ps );
  • break;
  • [...]
  • }
1/ Dans Edit Ressources File:
Image1 BITMAP "D:/Programme/Cpp/KDo[W32]/os1.bmp"

2/ Dans votre code:

	2-1/ La bibliotheque :
#include <windows.h>
	
	2-2/ Déclarer vos variables:
PAINTSTRUCT ps;
RECT rect;
HGLOBAL hgbl;
HDC hdc, hdc2;
HINSTANCE hinst;
HBITMAP hbmp;

	2-3/ Affichage de l'image:
[...]
LRESULT CALLBACK WindowProcedure(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
{
switch (message)                  
{
case WM_PAINT:
hbmp=(HBITMAP)LoadImage(hinst,"Image1", IMAGE_BITMAP, 0, 0, LR_CREATEDIBSECTION); // va chercher l'image 
hdc = BeginPaint( hwnd, &ps );
GetClientRect(hwnd,&rect);
hdc2 = CreateCompatibleDC(hdc);
SelectObject(hdc2, hbmp);  
StretchBlt(hdc,0,0,260,270,hdc2,0,0,260,270, SRCCOPY); // incorpore l'image dans la form
DeleteDC(hdc2);
EndPaint( hwnd, &ps );
break;                          
[...]
}

 Conclusion

La il est trop tard (00h44) je documenterais la source plus tard.
Je sais que ce code est pas formidable mais si il aide au moin un debutant comme moi .... ca sera deja ca.

"Le secret du sage est de briller dans l'ombre"


 Sources de la même categorie

Source avec Zip Source avec une capture VIEWER COMPLET POUR LE TRAITEMENT DE L'IMAGE : IMANALYSE par Pistol_Pete
Source avec Zip DECOUPAGE DE SPRITES par Jackyzgood
Source avec Zip Source avec une capture SIMULATION DE LA DIFFUSION THERMIQUE par ncoder
Source avec Zip Source avec une capture Source .NET (Dotnet) TRANSFORMÉ DE FOURIER RAPIDE EN TRAITEMENT D'IMAGE par reyken
Source avec Zip Source avec une capture 2D GAME DIRECT X 9 par nanonavich

Commentaires et avis

Commentaire de Nikoscian le 02/10/2003 19:08:14

Si,si il est pas mal. Mais j'ai trouvé sur un tutoriel API (je n'arrive plus à me rappeler du site) une fonction encore plus simple qui affiche le bitmap (directement à partir d'un fichier) dans la fenêtre passée en paramètre:
void PrintBmp(HWND hWnd, char *filename)
{
  HBITMAP hBmp;
  HDC hDC;
  hBmp=(HBITMAP)LoadImage(NULL,filename,IMAGE_BITMAP,0,0,LR_LOADFROMFILE);
  hDC=GetDC(hWnd);
  DrawState(hDC,NULL,NULL,(LPARAM)hBmp,0,0,0,0,0,DST_BITMAP);
  DeleteObject(hBmp);
  ReleaseDC(hWnd,hDC);
}
On peut éventuellement la modifier pour lui faire charger un bitmap depuis une .DLL où un .EXE mais il faudra charger le module spécifié avec LoadLibrary puis trouver la ressource avec FindResource

Commentaire de victorcoasne le 09/07/2004 14:46:08

C'est http://bob.developpez.com/tutapiwin/

Commentaire de sebastienmz le 30/12/2006 14:44:25

jessaye de faire marcher ton code mais ça marche pas sous dev-cpp

Commentaire de BruNews le 30/12/2006 16:33:06 administrateur CS

LoadImage() est à faire hors de WM_PAINT pour ne pas utiliser trop la cpu.
Il manque ici le DeleteObject sinon saturation de la mémoire.

 Ajouter un commentaire




Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 1,045 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales