Utiliser MAKEINTRESOURCE dans app Win32 sans MFC [C++] - Programmation
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 ( ).
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);
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 )
En quittant
DeleteObject(handBitMap);
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.