API Meilleure résolution Optimisé pour |
Membre de Click-FR®, Réseau francophone Paie-Par-Click CreateIconDate de parution : 24/11/2002 - Cette fiche API a été lue 1355 fois Description CreateIcon crée une icône qui a la taille, les couleurs et le motif désirés. Si la fonction réussit, la valeur de retour est le handle de l’icône sinon la valeur est à zéro (appeler GetLastError pour un code erreur étendu. Syntaxe
hInstance [e] Identifie l’instance du module créant l’icône. nWidth [e] Spécifie la largeur en pixel de l’icône. nHeight [e] Spécifie la hauteur en pixel de l’icône. cPlanes [e] Spécifie le nombre de plans dans le masque OUX (OU eXclusif). cBitsPixel [e] Spécifie le nombre de bits par pixel dans le masque OUX. lpbANDbits [e] Pointe sur un tableau d’entiers courts qui contient les valeurs du masque ET. lpbXORbits [e] Pointe sur un tableau d’entiers courts qui contient les valeurs du masque OUX. Compatibilité
Remarque Aucune Exemple 1 // Création d'une icône représentant le symbole yang // Les masques en bit viennent de la documentation sur les API // de Microsoft et ses fonctions d'icône // Le code est à mettre à leur crédit hIcon est un entier long hWnd est un entier long WM_SETICON est un entier = 0x80 Etmasque, OUXmasque sont des chaînes ETbits est un tableau de 128 entiers courts OUXbits est un tableau de 128 entiers courts hexa est une chaîne c est un entier dec est un entier court hInstance est un entier long retval est un entier long hInstance = Instance() hWnd = Handle() // Chargement des masques bitmaps ETmasque = "FFFFFFFF" + ... // ligne 1 "FFFFC3FF" + ... // ligne 2 "FFFF00FF" + ... // ligne 3 "FFFE007F" + ... // ligne 4 "FFFC001F" + ... // ligne 5 "FFF8000F" + ... // ligne 6 "FFF8000F" + ... // ligne 7 "FFF00007" + ... // ligne 8 "FFF00003" + ... // ligne 9 "FFE00003" + ... // ligne 10 "FFE00001" + ... // ligne 11 "FFE00001" + ... // ligne 12 "FFF00001" + ... // ligne 13 "FFF00000" + ... // ligne 14 "FFF80000" + ... // ligne 15 "FFFC0000" + ... // ligne 16 "FFFF0000" + ... // ligne 17 "FFFF8000" + ... // ligne 18 "FFFFE000" + ... // ligne 19 "FFFFE001" + ... // ligne 20 "FFFFF001" + ... // ligne 21 "FFFFF001" + ... // ligne 22 "FFFFF003" + ... // ligne 23 "FFFFE003" + ... // ligne 24 "FFFFE007" + ... // ligne 25 "FFFFC00F" + ... // ligne 26 "FFFFC00F" + ... // ligne 27 "FFFF801F" + ... // ligne 28 "FFFF007F" + ... // ligne 29 "FFFC00FF" + ... // ligne 30 "FFF803FF" + ... // ligne 31 "FFFC3FFF" // ligne 32 // Du code offert par Beaussier en ligne ! OUXmasque = "00000000" + ... // ligne 1 "00000000" + ... // ligne 2 "00000000" + ... // ligne 3 "00000000" + ... // ligne 4 "00000000" + ... // ligne 5 "00000000" + ... // ligne 6 "00000000" + ... // ligne 7 "00003800" + ... // ligne 8 "00007C00" + ... // ligne 9 "00007C00" + ... // ligne 10 "00007C00" + ... // ligne 11 "00003800" + ... // ligne 12 "00000000" + ... // ligne 13 "00000000" + ... // ligne 14 "00000000" + ... // ligne 15 "00000000" + ... // ligne 16 "00000000" + ... // ligne 17 "00000000" + ... // ligne 18 "00000000" + ... // ligne 19 "00000000" + ... // ligne 20 "00000000" + ... // ligne 21 "00000000" + ... // ligne 22 "00000000" + ... // ligne 23 "00000000" + ... // ligne 24 "00000000" + ... // ligne 25 "00000000" + ... // ligne 26 "00000000" + ... // ligne 27 "00000000" + ... // ligne 28 "00000000" + ... // ligne 29 "00000000" + ... // ligne 30 "00000000" + ... // ligne 31 "00000000" // ligne 32 // Maintenant, on utilise une boucle pour convertir l'hexa en // décimal et on charge ces valeurs dans chaque tableau // C'est ennuyeux mais il n'y a aucun autre moyen // Windev ne fournissant pas de moyen idéal de mettre toutes // ces informations dans un tableau :o( Pour c = 1 à 128 hexa = Milieu(ETmasque, c*2-1, 2) Selon (Gauche(hexa,1)) Cas "A": dec = 10 Cas "B": dec = 11 Cas "C": dec = 12 Cas "D": dec = 13 Cas "E": dec = 14 Cas "F": dec = 15 Autre Cas: dec = Val(Gauche(hexa,1)) Fin dec = dec*15+dec Selon (Droite(hexa,1)) Cas "A": dec += 10 Cas "B": dec += 11 Cas "C": dec += 12 Cas "D": dec += 13 Cas "E": dec += 14 Cas "F": dec += 15 Autre Cas: dec += Val(Droite(hexa,1)) Fin ETbits[c] = dec hexa = Milieu(OUXmasque, c*2-1, 2) Selon (Gauche(hexa,1)) Cas "A": dec = 10 Cas "B": dec = 11 Cas "C": dec = 12 Cas "D": dec = 13 Cas "E": dec = 14 Cas "F": dec = 15 Autre Cas: dec = Val(Gauche(hexa,1)) Fin dec = dec*15+dec Selon (Droite(hexa,1)) Cas "A": dec += 10 Cas "B": dec += 11 Cas "C": dec += 12 Cas "D": dec += 13 Cas "E": dec += 14 Cas "F": dec += 15 Autre Cas: dec += Val(Droite(hexa,1)) Fin OUXbits[c] = dec Fin hIcon = AppelDLL32("user32", "CreateIcon", ... hInstance, 32, 32, 1, 1, &ETbits[1], &OUXbits[1]) Si hIcon Alors // Changement de l'icône 16x16 pour la fenêtre SendMessage(hWnd, WM_SETICON, 0, hIcon) // et en 32x32 pour le contrôle Alt+Tab SendMessage(hWnd, WM_SETICON, 1, hIcon) Sinon Erreur("Aucune icône chargée") Fin
Rappel : Le code fourni est compatible Windev
v.4 et 5. Pour les versions supérieures, vous devez modifier le type des
variables numériques.
Par exemple : entier long devient entier. |