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


 
   

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

Il existe dans Windows CE un contrôle qui permet de choisir une date dans un calendrier. Ce contrôle est le MonthCalendar, il se présente sous la forme d'un calendrier qui permet une saisie rapide et intuitive.


Le contrôle MonthCalendar

eVB ne possède pas ce contrôle en standard, mais il est possible de créer avec eVC++ une DLL qui permet à eVB d'ajouter un (ou plusieurs) contrôles MonthCalendar à une (ou plusieurs) feuilles.

Cette DLL s'appelle VBMonthCalendar.dll et doit être placée dans le dossier Windows de votre Pocket PC. Attention, nous vous fournissons la version ARM de cette DLL, il vous suffit de créer cette DLL avec le bon processeur avec eVC++ si vous souhaitez l'utiliser avec un autre Pocket PC que l'iPAQ (en cas de problème dans cette démarche, envoyez-nous un mail ou encore, postez un message sur le forum 'A l'aide').

Notre DLL publie 5 fonctions qui permettent de contrôler les MonthCalendar que vous allez ajouter à vos feuilles eVB.

MonthCalendar_Create

Cette fonction permet d'ajouter un MonthCalendar à une feuille eVB.
Les paramètres sont les suivants:

hParent le .hWnd de la fenêtre eVB à qui vous ajoutez le contrôle
hInstance App.hInstance
wLeft Left du contrôle (en pixels)
wTop Top du contrôle (en pixels)

Cette fonction retourne le handle du MonthCalendar créé, qui permet d'y accéder par les autres fonctions.

Cette fonction est déclarée dans eVB de la manière suivante :

Declare Function VBMonthCalendar_Create Lib "VBMonthCalendar.dll" (ByVal hParent As Long, ByVal hInstance As Long, ByVal wLeft As Long, ByVal wTop As Long) As Long

MonthCalendar_GetValue

Cette fonction retourne la date en cours du MonthCalendar concerné (le paramètre hWnd), dans 3 variables de type long, wYear, wMonth et wDay (voir exemple du programme eVB fourni).

Cette fonction est déclarée dans eVB de la manière suivante :

Declare Function VBMonthCalendar_GetValue Lib "VBMonthCalendar.dll" (ByVal hWnd As Long, ByRef wYear As Integer, ByRef wMonth As Integer, ByRef wDay As Integer) As Boolean

VBMonthCalendar_SetValue

Cette fonction permet de placer la date en cours du MonthCalendar. Pour celà, il faut fournir à cette fonction la nouvelle date dans 3 paramètres de type long, wYear, wMonth et wDay (voir exemple du programme eVB fourni).

Cette fonction est déclarée dans eVB de la manière suivante :

Declare Function VBMonthCalendar_SetValue Lib "VBMonthCalendar.dll" (ByVal hWnd As Long, ByVal wYear As Integer, ByVal wMonth As Integer, ByVal wDay As Integer) As Boolean

VBMonthCalendar_SetVisible

Comme son nom l'indique, cette fonction permet de rendre le MonthCalendar dont le hWnd est passé en paramètre visible ou invisible (valeur logique du 2ème paramètre).

Cette fonction est déclarée dans eVB de la manière suivante :

Declare Sub VBMonthCalendar_SetVisible Lib "VBMonthCalendar.dll" (ByVal hWnd As Long, ByVal wVisible As Boolean)

VBMonthCalendar_SetEnabled

Comme son nom l'indique, cette fonction permet de rendre le MonthCalendar dont le hWnd est passé en paramètre enabled ou non (valeur logique du 2ème paramètre).

Cette fonction est déclarée dans eVB de la manière suivante :

Declare Sub VBMonthCalendar_SetEnabled Lib "VBMonthCalendar.dll" (ByVal hWnd As Long, ByVal wEnabled As Boolean)

 

Le programme eVB de test fourni avec cette DLL permet de tester ce contrôle.

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

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

 

Voilà, avec cette petite DLL, vous êtes maintenant capable d'utiliser un moyen très pratique pour saisir des dates dans vos programmes eVB et ainsi les rendre beaucoup plus professionnels.

 

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.