Oui, je l'ai fait, justsment :
J'ai d'abords rempli le usercontrol avec une seule couleur pour que appliqué cette couleur comme maskcolor, j'ai dessiné ensuite le masque de l'icone parametre DI_MASK puis j'ai appliqué l'image du usercontrol a maskpicture :
Ext_hIcon = ExtractAssociatedIcon(App.hInstance, Icon_FilePath, 0) 'ByVal Icon_Index) DrawIconEx UserControl.hDC, Int((m_LabelWidth - m_IconWidth) / 2), 0, Ext_hIcon, m_IconWidth, m_IconWidth, 0, 0, DI_MASK DrawTextEx UserControl.hDC, m_Caption, UserControl.ScaleX(m_LabelWidth, vbPixels, vbCharacters), lbRect, DT_CENTER, 0& UserControl.MaskPicture = UserControl.Image UserControl.MaskColor = UserControl.BackColor DrawIconEx UserControl.hDC, Int((m_LabelWidth - m_IconWidth) / 2), 0, Ext_hIcon, m_IconWidth, m_IconWidth, 0, 0, DI_IMAGE DestroyIcon Ext_hIcon
J'ai ensuite dessiné l'icone avec DI_IMAGE comme parametre.
Finalement, je me retrouve avec une icone qui est salement détourée puisque le masque est trop grand par rapport a l'image elle-meme puisque l'image contient de la transparence partielle (testé avec l'icone de notepad.exe).
Cordialement.
|