Difference entre HBITMAP et un mask

youpiyoyo Messages postés 539 Date d'inscription vendredi 6 juin 2003 Statut Membre Dernière intervention 14 juillet 2010 - 28 juin 2004 à 16:34
youpiyoyo Messages postés 539 Date d'inscription vendredi 6 juin 2003 Statut Membre Dernière intervention 14 juillet 2010 - 29 juin 2004 à 19:45
voila j'ai transformer une Hicon en hbitmap, (avec de l'aide du forum)

avec ca

ICONINFO iconinfo={0};
BOOL ret = GetIconInfo(icon,&iconinfo);
HBITMAP iconbitmap = (iconinfo.hbmColor);

le truc c ke tous ce ki est autour de l'icone est noire.

j'aimerai faire la difference entre le mask ki lui delimite juste l'ico (qui est obtenu avec iconinfo.hbmMask) avec le hbitmap

(peut etre un XOR, un AND ,ou...)

Il faudrai kelek'1 ki soit callé en GDI....

merci de votre réponse

3 réponses

cs_JCDjcd Messages postés 1138 Date d'inscription mardi 10 juin 2003 Statut Membre Dernière intervention 25 janvier 2009 4
28 juin 2004 à 20:15
tu peux faire les operations XOR, AND , ect .... avec la fonction BitBlt, il faut prealebement avoir selectionne les bitmaps dans des HDC
0
youpiyoyo Messages postés 539 Date d'inscription vendredi 6 juin 2003 Statut Membre Dernière intervention 14 juillet 2010
29 juin 2004 à 17:57
ces ce ke je m'etait di mais je n'y suis po arriver donc un exemple en bout de code serait bien si tu peu

je te remercie d'avance

youpi
0
youpiyoyo Messages postés 539 Date d'inscription vendredi 6 juin 2003 Statut Membre Dernière intervention 14 juillet 2010
29 juin 2004 à 19:45
voila j'y suis arriver voici mon code

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);

merci JCDjcd pour ta reponse
0