[C++] Utiliser MAKEINTRESOURCE dans app Win32 sans MFC

Utiliser MAKEINTRESOURCE dans app Win32 sans MFC [C++] - Programmation

Marsh Posté le 04-01-2002 à 14:33:56    

Je crée un bitmap dans les ressources.
J'ai une fonction du genre function("bitmap.bmp" );
je met donc function(MAKEINTRESOURCE(IDB_BITMAP1)); seulement erreur:
IDB_BITMAP1 undeclared identifier, alors qu'il s'appelle bien comme ça !
Faut-il inclure quelquechose de spécial ? Le .rc est bien entendu dans le projet.

Reply

Marsh Posté le 04-01-2002 à 14:33:56   

Reply

Marsh Posté le 04-01-2002 à 15:53:01    

J'ai utilisé cette fonction (copier/coller) pour charger une bitmap dont l'identificateur est 1111 dans le fichier .RC selon
 
1111 Bitmap graying.bmp (<= nom du BMP)
 
En C (16 bits et 32 aussi), j'utilise
    HRSRC   resource;
    resource = FindResource(hInst, MAKEINTRESOURCE(1111), RT_BITMAP);
    if (resource != NULL)
    {
      LOGBRUSH  br;
      br.lbStyle = BS_DIBPATTERN;
      br.lbColor = 0;
      br.lbHatch = (int)LoadResource(hInst, resource);
      LockResource((HANDLE)br.lbHatch);
      DialogBrush = CreateBrushIndirect(&br);
#ifndef __FLAT__
      UnlockResource((HANDLE)br.lbHatch);
#endif
      FreeResource((HANDLE)br.lbHatch);
    }
 
Le but final était de griser le fond d'une boîte de dialogue hookée (Ouvrir fichier) avec cette bitmap pour faire joli. J'avais trouvé l'exemple ailleurs (:D  :D).
 
en global, on a  
HBRUSH  DialogBrush; /* background brush for dialogs */
 
et quand le programme quitte, on libère la mémoire par
if (GrayBrush) DeleteObject(GrayBrush);

Reply

Marsh Posté le 04-01-2002 à 16:06:11    

ok merci je vais voir ça

Reply

Marsh Posté le 04-01-2002 à 16:38:02    

Coquille inside :
lire
if (DialogBrush) DeleteObject(DialogBrush);  
 
au lieu de  
if (GrayBrush) DeleteObject(GrayBrush);
 
Ca c'était pour une brush (c'est ce qui m'est revenu en premier).
 
Pour les images de mes boutons :
HBITMAP     handBitMap; en global
 
    handBitMap = LoadBitmap(hInst, MAKEINTRESOURCE(BlocGra));
 
Dans le .RC
BlocGra BITMAP PRELOAD BOUTONS5.BMP
 
et dans le fichier .H
#define BlocGra            1201  (<= arbitraire  :D)
 
En quittant  
DeleteObject(handBitMap);

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed