12 May 2007

Non Full Screen Window


Voici comment créer une fenêtre Modale sous Windows Mobile qui n'est pas en mode plein écran. Tout d'abord, ajouter une Form à votre projet avec les propriétés suivantes :



Here is an example on how to create a modal non full screen window. First of all add a Form to your project with the following properties:





Choisissez la position et la taille de la fenêtre que vous désirez. Puis créer et montrer votre Form :

Set the Location and the window size you want, Then, create and show your Form :

NonFullScreenForm myNonFullScreenForm = new NonFullScreenForm();
myNonFullScreenForm .ShowDialog();

Ensuite, vous pouvez tracer un rectangle autour de la fenêtre en surchargeant la méthode OnPaint :
Then, you can draw a rectangle around the Form while overriding the OnPaint method:

protected override void OnPaint(PaintEventArgs e)
{
base.OnPaint(e);
Graphics myGraph = e.Graphics;
// Draw a rectangle around the Form with myGraph object
}

Si vous avez des questions, ajouter un commentaire...
If you have any questions, post a comment...

8 comments:

Le Sage said...

Est-ce que cela requiert une version spéciale du framework, ou une version spéciale de l'OS?
Je vais essayer de tester ce bout de code bientôt...
Blog très intéressant, j'ai laissé un lien vers ce blog dans un thread sur le forum CodePPC. :)
Bonne continuation!

Fabien Decret said...

Merci du commentaire et du lien sur le forum PPC...
A priori, moi j'ai testé sur du Mobile 5.0 et du CF2.0, mais pas sur des versions antérieures... Si vous testez sur d'autres plate-formes, merci de faire un retour, je le publierai.

Fabien

Le Sage said...

Sous l'émulateur WM2003 SE + CFv1, la propriété location marche, mais la size ne marche pas (la fenêtre reste à sa taille habituelle, même si je spécifie 20x20). :-(

Fabien Decret said...

J'ai essayé sous émulateur PPC 2003 + CF 2.0, ça marche... la fenêtre a la bonne taille...

WM5.0 + CF2.0 -> OK
WM2003 SE + CF1.0 ->NOT OK
WM2003 SE + CF2.0 ->OK

Merci pour les tests.

Le Sage said...

De rien. :) As-tu double-checké pour WM2003 + CFv1?

Fabien Decret said...

Non, j'ai pas ce qu'il faut pour le faire là, mais j'ai confiance ;-)

Braden said...

thanks for this; works perfectly for me!

Viktar said...

It worked for me.

PocketPC Windows Mobile 2005

Here is VB OnPaint code:

Protected Overrides Sub OnPaint(ByVal e As System.Windows.Forms.PaintEventArgs)
MyBase.OnPaint(e)
Dim myGraph As Graphics = e.Graphics
Using pen As New Pen(Color.Black, 1)
myGraph.DrawRectangle(pen, 0, 0, 219, 79)
End Using
End Sub