Le premier site francophone dédié au développement Pocket PC


 
   

Comment ajouter un contrôle ProgressBar à une feuille eVB ?

Il arrive parfois que nos programmes exécutent des opérations relativements longues. La première solution pour faire patienter l'utilisateur est d'afficher le 'sablier' des Pocket PC. Le problème avec le sablier, c'est qu'on sait qu'une opération est en cours, mais impossible de savoir le degré d'avancement. Le sablier est adapté pour des opérations courtes (moins de 5 secondes). L'autre solution consiste à utiliser une jauge d'avancement qui permet de montrer à l'utilisateur que l'opération avance, et dans quelle proportion.


Le contrôle ProgressBar

Malheureusement eVB ne possède pas en standard de contrôle ProgressBar, alors que ce contrôle existe de manière native dans le système d'exploitation Windows CE. Il existe pourtant un moyen d'utiliser le contrôle ProgressBar avec eVB, c'est de créer une petite DLL qui vous permettra de créer un ProgressBar sur une feuille eVB et de gérer son apparence (visible, bord, degré d'avancement).

Cette DLL, dont vous pouvez télécharger les sources à la fin de cet article, expose 4 fonctions utilisables dans eVB :

ProgressBar_Create

Cette fonction permet de créer sur une feuille eVB une instance du contrôle ProgressBar. Elle se déclare dans eVB comme ceci :

Declare Function ProgressBar_Create Lib "VBProgressBar" (ByVal hParent As Long, ByVal hInstance As Long, ByVal wLeft As Long, ByVal wTop As Long, ByVal wWidth As Long, ByVal wHeight As Long) As Long

Le premier paramètre doit être renseigné avec la propriété hWnd de la feuille eVB qui reçoit le contrôle ProgressBar. Le second paramètre doit être renseigné avec App.hInstance. Les 3ème et le 4ème sont les coordonnées Left et Top du contrôle. Attention, ces valeurs sont toujours exprimées en pixels, même si la feuille est en Twips. Les 5ème et 6ème paramètres sont respectivement la largeur et la hauteur du contrôle (eux aussi exprimés en pixels). Cette fonction crée le contrôle ProgressBar sur la feuille et retourne son handle. Cette valeur retournée représente de manière unique le contrôle qui vient d'être créé. Elle doit être stockée car elle est nécessaire pour utiliser les autres fonctions de cette DLL.

ProgressBar_SetValue

Cette procédure permet de régler le degré d'avancement du ProgressBar. Cette valeur est exprimée en pourcentage. La valeur zéro vide complètement le contrôle, alors que la valeur cent le remplit totalement. Elle se déclare dans eVB comme ceci :

Declare Sub ProgressBar_SetValue Lib "VBProgressBar" (ByVal hWnd As Long, ByVal Value As Long)

Le premier paramètre est la handle du ProgressBar à qui nous voulons modifier le degré d'avancement, handle retourné par la fonction ProgressBar_Create. Le second paramètre est le degré d'avancement que l'on veut régler.

ProgressBar_GetValue

Cette fonction est le complément de ProgressBar_SetValue. Elle retourne la valeur du degré d'avancement du ProgressBar dont on a donné le handle comme paramètre. Elle est déclarée dans eVB comme ceci :

Declare Function ProgressBar_GetValue Lib "VBProgressBar" (ByVal hWnd As Long) As Long

ProgressBar_SetVisible

Cette procédure permet de rendre le ProgressBar, dont on a donné le handle comme premier paramètre, visible ou invisible. Le statut dépend du second paramètre qui doit être True si on veut rendre le contrôle visible, ou False dans le cas contraire. Cette procédure se déclare dans eVB comme ceci :

Declare Sub ProgressBar_SetVisible Lib "VBProgressBar" (ByVal hWnd As Long, ByVal wStatus As Boolean)

ProgressBar_SetBorder

Cette procédure permet de définir si le ProgressBar a un bord ou non. Elle fonctionne comme ProgressBar_SetVisible et se déclare dans eVB comme ceci :

Declare Sub ProgressBar_SetBorder Lib "VBProgressBar" (ByVal hWnd As Long, ByVal wStatus As Boolean)

Nous avons mis à votre disposition, en libre téléchargement, plusieurs éléments :

Sources eVC++ de la DLL

Sources eVB du programme permettant de tester cette DLL

VBProgressBar.dll (version ARM pour iPAQ), à placer dans le dossier Windows.

 

Voilà, avec cette petite DLL, vous êtes maintenant capable d'ajouter un contrôle ProgressBar à vos feuilles eVB.

Stéphane Sibué

 

 
       
   
 
   
Copyright 2001-2004 - Tous droits réservés
 
   

iPAQ est un produit de COMPAQ.
Visual Tools est un produit de Microsoft Corporation.
Toutes les autres marques et produits présents dans ces pages sont la propriété exclusive de leurs sociétés respectives.