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

Comment copier un bitmap sur le fond d'une fenêtre ?
Auteur
Stéphane Sibué
Date 12 février 2003
 
   


Introduction

Jusqu'à maintenant la manipulation d'images pour le développeur Pocket PC n'était vraiment possible qu'en C++ car eVB ne reconnait que les images bmp 2, 16 et 256 couleurs. Pour faire mieux il est nécessaire d'utiliser les services de contrôles externes (comme le s309 par exemple).

Sous .NET la gestion des images, et plus particulièrement des bitmaps, est très simple. Les formats bmp, gif et jpeg sont nativement reconnus et leur utilisation est très "confortable".

Afficher un bitmap sur le fond d'une fenêtre

On va commencer par un exercice très simple. Afficher un bitmap qui se trouve dans la zone de stockage de votre Pocket PC (son disque quoi) et l'afficher sur le fond d'une fenêtre.

Etape 1 : Charger le bitmap en mémoire

Pour effectuer cette opération nous avons besoin de 2 choses : Un objet bitmap et le chemin d'accès au fichier bitmap à charger . Nous allons partir du principe que le bitmap à charger se trouve dans le dossier "\My Documents" et qu'il s'appelle "I5.BMP" :

Rem Déclaration de la variable wBitmap
Dim wBitmap As Bitmap

Rem Chargement du fichier bitmap en mémoire
wBitmap = New Bitmap("\My Documents\I5.BMP")

Etape 2 : Copier le bitmap sur le fond de la fenêtre (form1) aux coordonnées 50,50 :

Rem Déclaration de la variable wGraphic
Dim wGraphic As Graphics

Rem On récupère le contexte graphique de la fenêtre Form1
Rem Si le code s'exécute dans la fenêtre on peut remplacer
Rem Form1. par Me.
wGraphics = Form1.CreateGraphics()

Rem On copie le bitmap sur le fond de la fenêtre aux coordonnées 50,50
wGraphics.DrawImage(wBitmap, 50, 50)

Rem On libère les objets graphiques
wBitmap.Dispose()
wGraphics.Dispose()

Et voilà. Notre image I5.bmp est copiée sur le fond de la fenêtre Form1 aux coordonnées 50,50 (pixels).

Attention, l'image du bitmap n'est pas persistante, c'est à dire que si la fenêtre est cachée, l'image sera effacée, c'est à vous de recommencer l'opération. Pour éviter ça vous devez répondre à l'événement Paint de la fenêtre. L'événement Paint de la fenêtre fournit en paramètre le "Graphics" à utiliser.

Voici le code à ajouter à l'événement Paint pour faire la même chose :

Private Sub Form1_Paint(Byval Sender As Object, _
Byval e As System.Windows.Forms.PaintEventArgs) Handles MyBase.Paint

Rem Chargement du fichier bitmap en mémoire
wBitmap = New Bitmap("\My Documents\I5.BMP")

Rem Affichage du bitmap sur le fond de la fenêtre
e.Graphics.DrawImage(wBitmap, 50, 50)

Rem On libère la mémoire
wBitmap.Dispose()
e.Grahics.Dispose()

End Sub

Conclusion

C'est simple vous ne trouvez pas ? Sur ce principe je vous invite à essayer de mettre en oeuvre les différentes méthodes disponibles de l'objet "Graphics" et à essayer les différentes possibilités. N'hésitez pas à utiliser l'aide de Visual Studio .NET qui est très bien faite.

 

Stéphane Sibué

 
   

Copyright 2001-2004 - Tous droits réservés
Toutes les autres marques et produits présents dans ces pages sont la propriété exclusive de leurs sociétés respectives.