begin process at 2012 05 28 17:38:39
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive C/C++

 > 

Archives

 > 

API

 > 

bmp dans static


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

bmp dans static

lundi 27 décembre 2004 à 18:01:02 | bmp dans static

Arnaud16022

Membre Club
bonjour

voila je veux mettre un bmp dans un static.
dans le fichier rc ya:
SniperImg BITMAP "C:/sniper.bmp"

et dans le main ya (en simplifie)

#include <windows.h>

LRESULT CALLBACK WndProc (HWND, UINT, WPARAM, LPARAM) ;

int WINAPI WinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance,PSTR szCmdLine, int iCmdShow)
{
static TCHAR szAppName[] = TEXT ("Sniper's Launcher") ;
HWND hwnd ;MSG msg ;WNDCLASS wndclass ;
wndclass.style = CS_DBLCLKS;wndclass.lpfnWndProc = WndProc ;wndclass.cbClsExtra = 0 ; wndclass.cbWndExtra = 0 ;wndclass.hInstance = hInstance ;wndclass.hIcon = LoadIcon (NULL, IDI_APPLICATION) ;wndclass.hCursor = LoadCursor (NULL, IDC_ARROW) ;wndclass.hbrBackground = (HBRUSH) COLOR_BTNSHADOW;wndclass.lpszMenuName = NULL ;wndclass.lpszClassName = szAppName ;

if (!RegisterClass (&wndclass))
{MessageBox (NULL, TEXT ("Ce programme fonctionne exclusivement sous Windows NT!"),szAppName, MB_ICONERROR) ;return 0 ;}

hwnd = CreateWindow (szAppName, TEXT ("Sniper's Launcher"), WS_OVERLAPPEDWINDOW, CW_USEDEFAULT, CW_USEDEFAULT,460, 370, NULL, NULL, hInstance, NULL) ;
ShowWindow (hwnd, iCmdShow) ;
UpdateWindow (hwnd) ;

while (GetMessage (&msg, NULL, 0, 0))
{
TranslateMessage (&msg) ;
DispatchMessage (&msg) ;

}
return msg.wParam ;
}

LRESULT CALLBACK WndProc (HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
{

HINSTANCE hInstance ;

switch (message)
{
case WM_CREATE :
HDC hdc;
HBITMAP hBitmap;
hInstance = (HINSTANCE) GetWindowLong (hwnd, GWL_HINSTANCE) ;

static HWND imghWnd = CreateWindowEx(WS_EX_CLIENTEDGE, "STATIC", NULL, WS_VISIBLE|WS_CHILD|SS_BITMAP,
0, 0, 384, 128, hwnd, (HMENU)0, hInstance, NULL);


hBitmap = LoadBitmap (hInstance,"SniperImg") ;
SendMessage(imghWnd, BM_SETIMAGE ,IMAGE_BITMAP ,(long) hBitmap);

//ShowWindow(imghWnd, SW_SHOW);
return 0 ;

case WM_DESTROY :
PostQuitMessage (0) ;
return 0 ;

case WM_COMMAND:
break;
}
return DefWindowProc (hwnd, message, wParam, lParam) ;
}

et comme vous l'aurez subtilemet deviné, ca marche pas.
je précise que les dims du bmp ne st pas des puissances de 2, et qu'il est bien dans C:\ (meme si l'ese n'y est pas)
how could I do please?
huge thanks, merci bcp d'avance.

______________________
Omnia vincit labor improbus
lundi 27 décembre 2004 à 18:02:46 | Re : bmp dans static

Arnaud16022

Membre Club
ps, je sais que c'est pas correct de poster un codeaussi long...
la partie qui cloche c'est bien sur

hBitmap = LoadBitmap (hInstance,"SniperImg") ;
SendMessage(imghWnd, BM_SETIMAGE ,IMAGE_BITMAP ,(long) hBitmap);

______________________
Omnia vincit labor improbus
mardi 28 décembre 2004 à 04:01:43 | Re : bmp dans static

aardman

Membre Club
Salut,
Ben deja ce que tu pourrais faire, c'est tester la valeur de retour de LoadBitmap (NULL ou pas?), et appeler GetLastError() apres les appels de LoadBitmap() et SendMessage() pour savoir d'ou vient l'erreur.

Aussi LoadBitmap est obsolete je crois qu'il faut utiliser LoadImage.
mardi 28 décembre 2004 à 05:29:22 | Re : bmp dans static

Nebula

Membre Club
Oui, c'est bien LoadImage. J'en profite pour rappeler l'existence d'un truc bien pratique en DEBUG, les assertions ;-)
mardi 28 décembre 2004 à 23:10:59 | Re : bmp dans static

Arnaud16022

Membre Club
bon en fait j'ai fini par trouver. juste un p*****n de flag ... ;)

hBitmap = LoadBitmap (hInstance,"SniperImg") ;
SendMessage(imghWnd, STM_SETIMAGE ,IMAGE_BITMAP ,(long) hBitmap);
ShowWindow(imghWnd, SW_SHOW);

et non BM_SETIMAGE
si ca vous intéresse,BM_SETIMAGE vaut 0x0172 et STM_SETIMAGE 0x00F7 .... pas tres passionnant donc.
merci qd meme.

______________________
Omnia vincit labor improbus


Cette discussion est classée dans : static, hwnd, msg, hinstance, wndclass


Répondre à ce message

Sujets en rapport avec ce message

erreur(vc++6) [ par greg4 ] Linking...LIBCD.lib(crt0.obj) : error LNK2001: unresolved external symbol _mainDebug/fen.exe : fatal error LNK1120: 1 unresolved externalsError execut crer "dialog non modal" [ par comfm ] BonjourJe n'arrive pas à créer une boite de dialogue non modal, c'est à dire celle qui permet d'être tjs affichée et on peut cliquer derriere sans pro Colorier un static : HEeeeeeeelp !!! [ par sprintjeffC ] salut @ tousje me mets a la programmation windows en C/C++ (pas VC++ merci ... quitte à faire du microsoft je préfère VB ;-). Je démarrai pas mal et t Affichage avec API Windows [ par PunkDude424 ] Bon j'ai un problème avec l'affichage à l'aide de L'api win32Je suis débutant en la matière et j'ai le problème suivant.J'ai une application client se WIN32 Dev-cpp: Le bouton refuse d'afficher le bitmap [ par gekkko ] 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 Problème graphique avec C [ par le1scorpion1noir ] salut a tous je peux savoir c'est quoi le meilleur logiciel pour programmer en C puis y t il une différence entre le C et le C++ ? je débute et j ess Barre de titre [ par gregory6 ] GringoBonjour, je crée une fenetre ds un projet MFC, j'aimerai en enlever la barre de titre, j'ai essayé plusieurs style de fenetre sans succès. Que d Help for change a program in C++ for AVI file [ par mr_log ] please how to change this program for read all size for AVI file? Ce programme permet d'aficher un fichier AVI bien précis width= 48 and lenght=80, so WIN32 : Editbox non editable avec une boite de dialogue CHILD [ par Pistol_Pete ] BonjourVoila mon problème: J'ai créé une fenêtre et dans cette fenêtre j'ai une boite de dialogue avec le style WS_CHILD. Tous mes contrôles de cette


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

Photothèque

A découvrir



 
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 : 0,608 sec (4)

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