S'identifier

API
Documentation
Ressources
Trucs & astuces
Libre
Gabarits
Services

Membres
Participer
Visiter

Contact

Meilleure résolution
mode 800 x 600

Optimisé pour
IE v.5
Netscape v.6
mais surtout pour
Mozilla v.1
minimum

 


Membre de Click-FR®, Réseau francophone Paie-Par-Click

LoadImage

Date de parution : 01/02/2000 - Cette fiche API a été lue 2746 fois

Description

LoadImage charge l'image d'une icône, d'un curseur ou d'un bitmap. Si la fonction réussit, la valeur de retour est un handle pour la nouvelle image chargée. Sinon, la valeur Null est retournée.

Syntaxe

AppelDLL32("user32", "LoadImageA", hInst, &lpsz, un1, n1, n2, un2)

hinst

Identifie une instance de module qui contient l'image à charger. Pour charger une image OEM, mettre ce paramètre à zéro.

lpszName

Identifie l'image à charger.
Si le paramètre hinst n'est pas à Null et que fuLoad n'inclut pas LR_LOADFROMFILE, lpszName est un pointeur sur une chaîne à terminateur nul qui contient le nom de la ressource image dans le module hinst.
Si hinst est à Null et LR_LOADFROMFILE n'est pas spécifié, le mot de poids faible de ce paramètre sera l'identifiant de l'image OEM à charger. Les identifiants d'image OEM sont définis dans le fichier WINUSER.H et ont les préfixes suivants :

Préfixe

Signification

OBM_

OEM bitmaps

OIC_

OEM icônes

OCR_

OEM curseurs

Windows 95 : si le paramètre fuLoad inclut la valeur LR_LOADFROMFILE, lpszName est le nom du fichier qui contient l'image.
Windows NT : LR_LOADFROMFILE n'est pas supporté.

uType

Précise le type d'image à être chargée. Ce paramètre peut être une des valeurs suivantes :

Valeur

Signification

IMAGE_BITMAP

Charge une image bitmap.

IMAGE_CURSOR

Charge un curseur.

IMAGE_ICON

Charge une icône.

cxDesired

Précise la largeur désirée en pixels de l'icône ou du curseur. Si ce paramètre est à zéro et fuLoad n'inclut pas LR_LOADREALSIZE, la fonction utilise les valeurs SM_CXICON ou SM_CXCURSOR du système métrique pour paramétrer la largeur.

cyDesired

Précise la hauteur désirée en pixels de l'icône ou du curseur. Si ce paramètre est à zéro et fuLoad n'inclut pas LR_LOADREALSIZE, la fonction utilise les valeurs SM_CYICON ou SM_CYCURSOR du système métrique pour paramétrer la hauteur.

fuLoad

Précise une combinaison des valeurs suivantes :

Valeur

Signification

LR_DEFAULTCOLOR

Ce sémaphore par défaut ne fait rien. Cela signifie juste qu'il n'est "pas LR_MONOCHROME".

LR_LOADREALSIZE

Charge une image sans étirement.

LR_CREATEDIBSECTION

Windows 95 only: When the uType parameter specifies IMAGE_BITMAP, causes the function to return a DIB section bitmap rather than a compatible bitmap. This flag is useful for loading a bitmap without mapping it to the colors of the display device.

LR_DEFAULTSIZE

Windows 95 only: Uses the width or height specified by the system metric values for cursors and icons, if the cxDesired or cyDesired values are set to zero. If this flag is not specified and cxDesired and cyDesired are set to zero, the function sets the size to that specified in the resource. If the resource contains multiple images, the function sets the size to that of the first image.

LR_LOADFROMFILE

Windows 95 seulement : charge l'image depuis le fichier spécifié par le paramètre lpszName. S'il n'est pas spécifié, lpszName est le nom de la ressource.

LR_LOADMAP3DCOLORS

Windows 95 seulement : recherche la table des couleurs pour l'image et remplace l'ombrage de gris par la couleur 3D correspondante :

Couleur

A remplacer avec

Gris sombre, RGB(128,128,128)

COLOR_3DSHADOW

Gris, RGB(192,192,192)

COLOR_3DFACE

Gris clair, RGB(223,223,223)

COLOR_3DLIGHT

LR_LOADTRANSPARENT

Windows 95 seulement : retrouve la couleur du premier pixel dans l'image et remplace l'entrée correspondant dans la table des couleurs avec la couleur de fenêtre par défaut (COLOR_WINDOW). Tous les pixels dans l'image qui utilisent cette entrée prennent cette couleur. Cette valeur s'applique seulement sur les images qui utilisent la table.

LR_MONOCHROME

Windows 95 seulement : charge l'image en noir et blanc.

LR_SHARED

Windows 95 seulement : partage le handle de l'image chargé en multiples fois. Si LR_SHARED n'est pas mis, un second appel de LoadImage pour la même ressource sera effectué et un handle différent sera retourné. N'utilisez pas LR_SHARED pour des images qui n'ont pas detaille standard, cela pourrait changer après chargement.

Compatibilité

Win9x, WinNT, Win2000

Remarque

Exemple 1

// Mettre son programme en icône dans la barre de tâches des programmes
// résidents (systray)
// Il faut créer 2 procédures internes dans la fenêtre mère :
// GereIcone() et TraiteIcone()
// Seule GereIcone() est appelée dans le traitement d'ouverture,
// de fermeture de la fenêtre.
// La première procédure GereIcone permet de gérer l'icône au départ dans
// la barre de tâches : Ajout, modification ou suppression.
// La seconde procédure TraiteIcone permet de déclencher un traitement
// sur un des événements de l'icône :
// Clic gauche ou droit, double-clic, bouton enfoncé ou bouton relâché.

//####################################################################

PROCEDURE GereIcone(NomIcone, Mode ,Bulle)

// NomIcone = Nom du .ICO à utiliser
// Mode = Action à réaliser
// 1 - Ajouter = Faire apparaître l'icône
// 2 - Modifier = Changer d'icône
// 3 - Supprimer = Faire disparaître l'icône
// NB : En Ajout ou Modification, on peut choisir la bulle
// d'aide de l'icône
// Ce code vous est offert par Beaussier en ligne

hIcon est un entier long
lpIconName est une chaîne asciiz sur 255
Res est un entier long
Cmd est un entier long
NumEvenement est un entier long = 0x8000 + 100
lpIconName = NomIcone
lpData est un NOTIFYICONDATA

// préparation de l'icône à afficher

SELON Mode

CAS "Ajouter" // Ajout de l'icône
// chargement de l'icône et récupération de son handle
hIcon = AppelDLL32("user32", "LoadImageA", Instance(), &lpIconName,1,16,16,16)
Cmd = 0 // N° de la commande "shell_NotifyIconA"

CAS "Modifier" // Modification de l'icône
// chargement de l'icône et récupération de son handle
hIcon = AppelDLL32("user32","LoadImageA", Instance(), &lpIconName,1,16,16,16)
Cmd = 1 // N° de la commande "shell_NotifyIconA"

CAS "Supprimer" // Suppression de l'icône
// récupération d'un handle d'icône vide
hIcon = AppelDLL32("user32", "LoadIconA", 0, 32514)
Cmd = 2 // N° de la commande "shell_NotifyIconA"

FIN

SI hIcon > 0 ALORS
lpData:CbSize = Dimension(lpData)
lpData:hICon = hIcon
lpData:uID = 100
lpData:Hwnd = Handle()
lpData:uFlags = 7
lpData:szTip = Bulle
lpdata:uCallBack = NumEvenement

// changement dans la zone d'icônes de la barre de tâche

res = AppelDLL32("shell32", "Shell_NotifyIconA", Cmd, &lpData)
SI hIcon > 0 ALORS AppelDLL32("user32"," DestroyIcon", hIcon)

// Cas de l'échec de l'API
SI res = 0 ALORS Info("Icône non installée en barre de tâches")

FIN

SELON Mode

CAS "Ajouter"
// Gestion événements icône dans la barre des tâches
res = Evenement("TraiteIcone", "", NumEvenement)

CAS "Supprimer"
// arrête la gestion des événements associés à l'icone
//dans la barre des tâches
FinEvenement(res)

FIN

//####################################################################

PROCEDURE TraiteIcone()

// Procédure événementielle détectant toute action faite sur l'icône
// On peut déclencher un traitement sur un des événements de l'icône :
// Clic gauche (enfoncé / relaché)
// Clic droit (enfoncé / relaché)
// Double-clic (Gauche ou droit)
// Ce code vous est offert par Beaussier en ligne

SI _EVE.wparam = 100

SELON _EVE.lparam

CAS 513

//Oreille gauche de souris enfoncé sur l'icône

CAS 514

//Oreille gauche de souris relâché sur l'icône

CAS 515

//Double clic oreille gauche sur l'icône

SI FenEtat(FenEnCours()) = Invisible ALORS

// Activation de l'application
FenEtat(FenEnCours(), Actif)

FIN

CAS 516

//Oreille droite souris enfoncé sur l'icône

CAS 517

//Oreille droite souris relâché sur l'icône

CAS 518

//Double clic oreille droite sur l'icône

FIN //du SELON

FIN


Nombre de commentaire sur LoadImage : 1

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.
Bien sûr, les marques citées sont déposées par leurs sociétés respectives. Ces pages sont à la disposition de tous, le code fourni est libre mais toute responsabilité est déclinée en cas de mauvais usage ou de dysfonctionnement.
© 2000-2005 Beaussier & Le Centre W..D..