Magicbox (opengl + skinned form)

Description

Ce projet utilise uniquement les possibilités de VISUAL C# 2005 Express Edition,
il nécessite une carte graphique compatible OpenGL.

La démo montre l'utilisation d'images de différents format avec un contrôle OpenGL couplé à une fenêtre SDI skinnée.
Toutes les fenêtres sont skinnées, y compris la messagebox, afin de montrer l'utilisation du grisage de fenêtre DDW (Drawing Disabled Window).

L'image active est affichée dans un système 3D utilisant des coordonnées polaires.
Elle peut être manipulé à la fois avec les boutons de direction pour changer l'angle de rotation ou directement avec le bouton gauche de la souris dans la fenêtre OpenGL.
A noter que les boutons de direction peuvent être cliqués plusieurs fois pour augmenter la vitesse de rotation.

Le projet utilise différentes classes ainsi que des "contrôles utilisateur" afin de skinner l'application.

Le contrôle GDImage/OpenGL est subclassé pour permettre l'utisation de la souris et le "smooth zooming".

Contenu du projet:

- SkinEngine.cs
Cette classe prend en charge la charte graphique utilisée pour skinner la fenêtre SDI principale et la messagebox.

- SkinCaption.cs
Contrôle utilisateur utilisé pour afficher le titre de la fenêtre skinnée.
Il permet le déplacement de la fenêtre au dessus du bureau Windows.
Il a les mêmes possibilité de paramétrage qu'un bouton VS (image de fond, position du texte, couleur, fonte, etc.)

- SkinButton.cs
Contrôle utilisateur utilisé pour créer des boutons skinnés en mode 5-image dont chacun des 5 états correspond respectivement à : normal, enfoncé, désactivé, focus, survolé.
Vous pouvez utiliser indifféremment un bouton de forme rectangulaire "standard" ou un bouton de n'importe quel forme avec région.

- SkinTrackbar.cs
Contrôle utilisateur utilisé pour créer un "trackbar" skinné.
Le curseur peut avoir n'importe quel taille et forme car il est basé sur un bitmap (image de fond).
L'orientation du contrôle est déterminée par rapport à la largeur et la hauteur, si la largeur est plus grande que la hauteur, l'orientation est horizontale, sinon verticale.
Afin d'indiquer à l'utilisateur le sens du déplacement, un triangle est dessiné sur le fond et un tooltip affiche la valeur actuelle au survol du curseur.
On peut inverser le sens du déplacement en inversant les bornes min/max.

- DDWcontrol.cs
Contrôle utilisateur utilisé pour assombrir la fenêtre mêre, lors de l'ouverture d'une fenêtre popup fille modale.

- OpenGL.cs
Encapsulation de l'API OpenGL.

- Win32.cs
Encapsulation de l'API Win32.

- GDImage.cs
Encapsulation de l'API GDImage.
GDImage est requis pour créer la fonte OpenGL et convertir l'image selectionnée en texture BGR 32-bit à la volée.

Conclusion :


Ce projet représente un certain travail (ou devrais-je dire un "travail certain"),
il contient quelques concepts exclusifs que j'ai peaufiné au cours des ans,
j'espère qu'il vous plaira.

Vous trouverez toutes mes démos C# actualisées sur
www.zapsolution.com
dans la section intitulée "C# corner"

Codes Sources

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.