Accueil > Forum > > > > passer de HICON en HBITMAP, pour menu
passer de HICON en HBITMAP, pour menu
vendredi 25 juin 2004 à 12:47:46 |
passer de HICON en HBITMAP, pour menu

youpiyoyo
|
j'aurai besoin de passer un HICON en HBITMAP, pour pouvoir afficher une icone dans un menu j'ai testé avec copyimage sans succes..... voici le bout de code j'ai d'abord testé ca avec un cast sans succes HBITMAP h_Bit = (HBITMAP) LoadImage ( (HINSTANCE)hInstance, // handle of the instance that contains the image (LPCTSTR)MAKEINTRESOURCE(IDI_ICO_MAIN), // name or identifier of image (UINT)IMAGE_ICON, // type of image (int)GetSystemMetrics(SM_CXMENUCHECK), // desired width (int)GetSystemMetrics(SM_CYMENUCHECK), // desired height (UINT)LR_SHARED // load flags );h_bit n'est po NULL mais fonctionnent po pour un SetMenuItemBitmaps(hMenuPopup,ID_POPUP_ABOUT,MF_BYCOMMAND,h_Bit,h_Bit); donc... ensuite j'ai testé ca HBITMAP h_Bit = (HBITMAP) CopyImage(LoadImage ( (HINSTANCE)hInstance, // handle of the instance that contains the image (LPCTSTR)MAKEINTRESOURCE(IDI_ICO_MAIN), // name or identifier of image (UINT)IMAGE_ICON, // type of image (int)GetSystemMetrics(SM_CXMENUCHECK), // desired width (int)GetSystemMetrics(SM_CYMENUCHECK), // desired height (UINT)LR_SHARED // load flags ),IMAGE_BITMAP,(int)13,(int)13,0);veut pas convertir un IMAGE_ICON en IMAGE_BITMAP, avec getlasterror, il me renvoi 6.... please HELP me!!!! 
|
|
vendredi 25 juin 2004 à 19:10:40 |
Re : passer de HICON en HBITMAP, pour menu

ShareVB
|
salut
tu peux utiliser GetIconInfo :
HICON icon = LoadIcon(hInstance,MAKEINTRESOURCE(IDI_ICO_MAIN)); ICONINFO iconinfo={0}; BOOL ret = GetIconInfo(icon,&iconinfo); HBITMAP iconbitmap = iconinfo.hbmColor; SetMenuItemBitmaps(hMenuPopup,ID_POPUP_ABOUT,MF_BYCOMMAND,iconbitmap ,iconbitmap);
au cas ou le resultat ne serait pas satisfaisant, il est aussi simple de convertir ton icone en bitmap et de la mettre en ressource directement...
voilà
ShareVB
|
|
lundi 28 juin 2004 à 11:23:44 |
Re : passer de HICON en HBITMAP, pour menu

youpiyoyo
|
genial tu me sauve la vie, je te remercie.........
en revanche juste une derniere petite chose, a mon avis pour faire un truc bien il fodrai faire un AND ou XOR sur le mask et l'ico car
ca marche mais l'icon passer en bitmap est afficher noir tout autour du bitmap
comment pourait ton faire pour juste garder l'ico un AND entre iconinfo.hbmColor et iconinfo.hbmMask
merci de ta réponse
|
|
mardi 29 juin 2004 à 17:41:38 |
Re : passer de HICON en HBITMAP, pour menu

ShareVB
|
salut
alors la il faut utiliser : - GetObject pour obtenir des infos sur la bitmap et le masque (structure BITMAP) - GetBitmapBits pour obtenir les données de la bitmap et du masque (cbBuffer=bmWidth * bmHeight * bmWidthBytes) - tu fais un AND ou XOR entre les deux buffers et tu mets le résultat dans le buffer de la bitmap - SetBitmapBits pour enregistrer les données dans le bitmap (cbBuffer=bmWidth * bmHeight * bmWidthBytes) avec le buffer du bitmap
sans garantie... (sinon le mieux c encore de mettre tes icones en bitmap dans les ressources... moins de traitement)
sinon tous les handles que tu crées LoadIcon doivent être supprimer quand tu n'en as plus besoin...
voilà
ShareVB
|
|
mardi 29 juin 2004 à 18:03:32 |
Re : passer de HICON en HBITMAP, pour menu

youpiyoyo
|
t sur ke je doit faire ca car j'ai deja le mask bitmap et le bitmap....
iconinfo.hbmColor et le mask: iconinfo.hbmMask, donc le AND ou le XOR doit se faire mais je sais po comment je pense avec bitblit, mais je n'y suis po arriver ca marche po...
kan a mettre les ico en ressource est-ce k'il peut les mettre de façon permanente??? si oui cela m'interesse tres fortement de savoir komment....
si c possible je m'aventurerai a creer une DLL ki stocks les icos ou les bitmaps....
encore une fois je te remercie
je vais tester et si je trouve je te fais signe....
|
|
mardi 29 juin 2004 à 19:44:13 |
Re : passer de HICON en HBITMAP, pour menu

youpiyoyo
|
voila j'y suis arriver j'ai fais ca..:
HICON icon = LoadIcon(hInstance,MAKEINTRESOURCE(IDI_ICO_MAIN)); ICONINFO iconinfo={0}; BOOL ret = GetIconInfo(icon,&iconinfo); HBITMAP iconbitmap = iconinfo.hbmColor, iconbitmapmask=iconinfo.hbmMask;
BITMAP bmpInfo; GetObject(iconbitmap,sizeof(BITMAP),&bmpInfo);
HDC hDC=GetDC(hWnd); HDC hdc_iconbitmap=CreateCompatibleDC(hDC); HDC hdc_iconbitmapmask=CreateCompatibleDC(hDC); ReleaseDC(hWnd, hDC);
HBITMAP oldbmphdc=(HBITMAP) SelectObject(hdc_iconbitmap, iconbitmap); HBITMAP oldbmphdcmask=(HBITMAP) SelectObject(hdc_iconbitmapmask, iconbitmapmask);
BitBlt(hdc_iconbitmap,0,0,bmpInfo.bmWidth,bmpInfo.bmHeight,hdc_iconbitmapmask,0,0,SRCINVERT);
HBITMAP h_Bit = (HBITMAP) CopyImage(iconbitmap,IMAGE_BITMAP,(int)GetSystemMetrics(SM_CXMENUCHECK),(int)GetSystemMetrics(SM_CYMENUCHECK),0);
SetMenuItemBitmaps(hMenuPopup,ID_POPUP_ABOUT,MF_BYCOMMAND,h_Bit ,h_Bit);
je te remercie pour tous car sans toi j'y serais po arriver.....
|
|
Cette discussion est classée dans : int, image, of, bit, hbitmap
Répondre à ce message
Sujets en rapport avec ce message
passer d'un widget a une autre structure [ par khaledtaib ]
bonjourj' ai un petit programme de traitement d'image en language C, que je veux lui creer une interface graphique en GTK+.ce programme doit afficher
pb de retour( du tableau) de ma fonction [ par airwann ]
bonjour,j ai un problème comment dois je modifier l'entête de ma fonction pour recupérer le tableau de structure 3 d alloué dynamiquementmerci d avanc
transformer un tableau 2d en image bitmap [ par gyzmo1 ]
Bonjour a tous, voilà mon problème, je suis en train de mettre en place une méthode de comparaison de signature manuscrites. Cette méthode s applique
need help_API - debutant. [ par JimyRyan ]
j'ai cree un progamme qui affiche une image (stoquee dans un fichier .bmp), et une phrase (lu a partir d'un fichier TXT), j'ai deux problemes : une fo
Afficher une image avec gtkmm [ par naika585 ]
Bijour tt l'monde !Je developpe une interface avec gtkmm.Mon pb est le suivant : je veux afficher une image avec gtkmm, mais sans passer par le nom du
Decouper un gos bmp en plusieur petit (par rapport au handle) ???? [ par SnOOpss ]
Bonjour tout le monde !!Voila en fait pr un RPG mon moteur 2d utilise le procedure suivantefichierbmp[0] = LoadABitmap("wall.bmp");avec HBITMAP LoadAB
Afficher une image dans une fenetre [ par TheMalrok ]
LOj'utilise Devc++ et je souhaite afficher dans une fenetre win32 une image. J'ai un truc du styleHBITMAP hBitmap;HINSTANCE hInstance = (HINSTANCE)Get
HBITMAP + resize [ par Manson ]
Salut a tous,voila, je voudrais faire une fonction, si elle n'existe pas deja,a laquelle je passe un HBITMAP, une largeur et une hauteur, et elle me r
probleme avec allegro en C [ par boponfire ]
je cite l'aide d'allegro : "int d_icon_proc(int msg, DIALOG *d, int c); C'est un boutton image, la couleur fg est utlisee pour les lignes dessinees lo
probleme SKD [ par Arnaud16022 ]
helloje suis sur VC6 et je voudrais charger des modeles md2 sous openGL. que faire? Évidemment un petit tour chez Digiben!! (bon je sais qu'il existe
Livres en rapport
|
Derniers Blogs
POUR RAPPEL ! LES SPéCIFICATIONS DES PROTOCOLES OFFICE ET SHAREPOINT SONT DISPONIBLES SUR MSDNPOUR RAPPEL ! LES SPéCIFICATIONS DES PROTOCOLES OFFICE ET SHAREPOINT SONT DISPONIBLES SUR MSDN par neodante
Quelle est le point commun entre : Microsoft il y a 10 ans et Apple aujourd'hui ? Réponse: avoir une politique de protocoles propriétaires et fermés :) Car pour rappel (si si je vous assure c'est important de le rappeler), la majorité des spécifications e...
Cliquez pour lire la suite de l'article par neodante JOYEUX ANNIVERSAIRE NIXJOYEUX ANNIVERSAIRE NIX par ebartsoft
Souhaitons un bon et joyeux anniversaire à notre hôte à tous, Nix.
Je ne le répéterais jamais assez mais sans lui rien ne serait possible. Il défit en permanence les lois de la gravité et comme il le dit si bien, si tu lui fais confiance ça devra...
Cliquez pour lire la suite de l'article par ebartsoft IMAGINE CUP 2012, MAKE A SIGN EN FINALEIMAGINE CUP 2012, MAKE A SIGN EN FINALE par junarnoalg
Voilà qui est fait, la nouvelle est officielle ! L'équipe belge "Make a Sign" va au pays des kangourous défendre son projet dans la catégorie Software Design. http://www.imaginecup.com/CompetitionsContent/Competition/WorldwideFinalists.aspx V...
Cliquez pour lire la suite de l'article par junarnoalg KINECT 1.5 IS OUT !KINECT 1.5 IS OUT ! par Vko
La version 1.5 du Kinect For Microsoft vient tout juste de sortir ! Plein de nouveautés: Tracking de squelette en Near Mode Détection en position assise Détection faciale avec un SDK dédié Documentation et des guideline (enfin) Un out...
Cliquez pour lire la suite de l'article par Vko LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) par richardc
Mise à jour des Web API du 14 Mai
Réservez dès maintenant votre journée du 20 juin pour le Windows Azure Dev Camp 2012 à Paris
Mise à jour de Team Foundation Service
MechCommander 2 sur Windows 8
Entity Framework 5 Release Candidate e...
Cliquez pour lire la suite de l'article par richardc
Logiciels
sDEVIS-FACTURES vlPRO (8.1.0.3)SDEVIS-FACTURES VLPRO (8.1.0.3)sDEVIS-FACTURES vlPRO a été mis au point pour les particuliers, créateurs, entrepreneurs, artisa... Cliquez pour télécharger sDEVIS-FACTURES vlPRO 974 Application Server (12.2.4.6)974 APPLICATION SERVER (12.2.4.6)Développez de puissantes applications dans un environnement de 'cloud computing', clusterisé, séc... Cliquez pour télécharger 974 Application Server vPicture (1.4.2.1)VPICTURE (1.4.2.1)Avec vPicture, hébergez vos images facilement et rapidement.
vPicture est un utilitaire simple, ... Cliquez pour télécharger vPicture Easy-Planning (2.2.1.6)EASY-PLANNING (2.2.1.6)Easy-Planning permet de créer des plannings sous la représentation de diagrammes et est adapté au... Cliquez pour télécharger Easy-Planning COM-BACKUP (2.0)COM-BACKUP (2.0)
COM-BACKUP est un logiciel de sauvegarde qui permet de planifier les sauvegardes de vos dossiers ...
Cliquez pour télécharger COM-BACKUP
|