IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)

Découvrez OpenGL 1.1 en VB6/VBA

Image non disponible


précédentsommairesuivant

XVIII. Intégrer la fenêtre freeGLUT dans un formulaire

Il est possible d’intégrer la fenêtre freeGLUT dans un formulaire.

Ceci permet de bénéficier des fonctions de freeGLUT (notamment la gestion du clavier, souris…) tout en ayant une fenêtre intégrée à l’application.

Pour masquer la barre de titre et les bordures de la fenêtre freeGLUT, utilisez les options GLUT_BORDERLESS et GLUT_CAPTIONLESS lors de l’appel à la fonction glutInitDisplayMode

XVIII-A. Pour Access

Utilisez la fonction putInForm du module de classe clOpenGLGlutInAccessForm.

Cette fonction demande en arguments :

  • l’identifiant de fenêtre freeGLUT (celui retourné par glutCreateWindow) ;
  • le formulaire Access ;
  • le numéro de section (acDetail, acHeader ou acFooter).
Intégration d’une fenêtre freeGLUT dans la section détail d’un formulaire Access
Sélectionnez
' Création d'une fenêtre
lWindow = glutCreateWindow("Tutoriel fenêtre GLUT")
' Déplace la fenêtre dans le formulaire
Dim loOpenGLForm As New clOpenGLGlutInAccessForm
loOpenGLForm.putInForm lWindow, Forms("frmOpenGL"), acDetail

Il est impératif de définir la propriété « Sur chargement » du formulaire à « [Procédure événementielle] ».

Sinon il faut détruire la fenêtre freeGLUT manuellement.

Pour que la fenêtre freeGLUT se redimensionne automatiquement, définissez la propriété « Sur redimensionnement » du formulaire à « [Procédure événementielle] ».

XVIII-B. Pour un UserForm (Excel, Word…)

Utilisez la fonction putInFrame du module de classe clOpenGLGlutInUserForm.

Cette fonction demande en arguments :

  • l’identifiant de fenêtre freeGLUT (celui retourné par glutCreateWindow) ;
  • un contrôle Frame.

La fenêtre freeGLUT est intégrée dans la Frame définie.

Comme il n’est pas possible de capturer l’événement de fermeture du formulaire dans le module de classe, il est nécessaire de créer ce dernier dans le formulaire, sinon la fenêtre freeGLUT n’est pas fermée.

Code dans le UserForm
Sélectionnez
Dim loGlutInForm As clOpenGLGlutInUserForm

Public Sub putFreeGlutInMe(pWindow As Long)
Set loGlutInForm = new clOpenGLGlutInUserForm
loGlutInForm.putInFrame pWindow, Me.Frame1
End Sub
Intégration d’une fenêtre freeGLUT dans une Frame
Sélectionnez
' Création d'une fenêtre
lWindow = glutCreateWindow("Tutoriel fenêtre GLUT")
' Déplace la fenêtre dans la frame du formulaire FormOpenGL
FormOpenGL.Show
FormOpenGL.putFreeGlutInMe lGlutWindow

précédentsommairesuivant

Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright © 2017 Thierry GASPERMENT. Aucune reproduction, même partielle, ne peut être faite de ce site ni de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts. Droits de diffusion permanents accordés à Developpez LLC.