Focus d'un picturebox

allarabeye Messages postés 37 Date d'inscription lundi 13 juin 2005 Statut Membre Dernière intervention 8 mars 2008 - 4 juin 2007 à 11:02
allarabeye Messages postés 37 Date d'inscription lundi 13 juin 2005 Statut Membre Dernière intervention 8 mars 2008 - 6 juin 2007 à 11:25
bonjour  à tous, je voudrai savoir comment faire pour donner le focus automatiquement à un picturebox? je ne trouve pas de propriété setfocus comme celui d'un textbox. merci pour votre aide

17 réponses

jrivet Messages postés 7393 Date d'inscription mercredi 23 avril 2003 Statut Membre Dernière intervention 6 avril 2012 60
4 juin 2007 à 11:15
Salut,
Ce qu'il faut se demander, c'est quel intérêt as tu as donner le focus à un PictureBox
Que souhaite tu faire?

@+: Ju£i?n
Pensez: Réponse acceptée
0
allarabeye Messages postés 37 Date d'inscription lundi 13 juin 2005 Statut Membre Dernière intervention 8 mars 2008
4 juin 2007 à 11:19
ben je suis entrain de faire un programme qui permet d'afficher un objet powerpoint dans le picturebox (j'ai pris le code sur ce site) et comme pour passer d'un diapo à un autre il faut effectuer un clic, alors je voudrai que le picturebox qui contient l'objet powerpoint (presentation) passe d'un diapo à un autre automatiquement et ce passage est executé par un timer qui simule un clique sur le picturebox. Mais ce proceder ne marche pas si le picturebox perd le focus. voila
le probleme est que je ne sait pas utiliser un objet powerpoint et je ne connait pas non plus ses propriétés,fonctions et utilisations. merci pour ton aide si rapide
0
jmfmarques Messages postés 7668 Date d'inscription samedi 5 novembre 2005 Statut Membre Dernière intervention 22 août 2014 28
4 juin 2007 à 11:25
Le problème est en effet la manipulation de l'objet (qu'il te faut apprendre) et non le fait que la picturebox qui le contient a ou npn le focus.
0
allarabeye Messages postés 37 Date d'inscription lundi 13 juin 2005 Statut Membre Dernière intervention 8 mars 2008
4 juin 2007 à 11:27
peux tu m'aider? car je ne connait pas grand chose en manipulation d'objet powerpoint. j'ai essayé de trouver un peu de cours ou d'aide là-dessus mais rien. help me
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
jrivet Messages postés 7393 Date d'inscription mercredi 23 avril 2003 Statut Membre Dernière intervention 6 avril 2012 60
4 juin 2007 à 11:28
Salut,
Il faudrait déjà que nous connaissions le code utilisé. bref l'existant. Pour ne pas avoir à réinventer la roue

@+: Ju£i?n
Pensez: Réponse acceptée
0
allarabeye Messages postés 37 Date d'inscription lundi 13 juin 2005 Statut Membre Dernière intervention 8 mars 2008
4 juin 2007 à 11:37
lol ok voici le code
pour la simulation d'un clique de souris (dans un module)
-------------------------------------------------------------------
'Simulation des cliques de souris
Declare Sub mouse_event Lib "USER32" (ByVal dwflags As Long, ByVal dx As Long, ByVal dy As Long, ByVal cButtons As Long, ByVal dwExtraInfo As Long)
'Definitions des constantes
Public Const MOUSEEVENTF_LEFTDOWN = &H2 '}Clic
Public Const MOUSEEVENTF_LEFTUP = &H4   '}Droit


Public Const MOUSEEVENTF_RIGHTDOWN = &H8 '}Clic
Public Const MOUSEEVENTF_RIGHTUP = &H10  '}gauche


Public Const MOUSEEVENTF_MIDDLEDOWN = &H20  '}Clic
Public Const MOUSEEVENTF_MIDDLEUP = &H40    '}Milieu

---------------- DANS UN TIMER -----------------------------
If Not oPPTPres Is Nothing Then
   mouse_event MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0
   mouse_event MOUSEEVENTF_LEFTUP, 0, 0, 0, 0
   DejaDiapo = DejaDiapo + 1 (variable qui s'incremente a chaque changement de diapo)
   NumeroDiapo.Caption = DejaDiapo (affiche le numero du diapo en cours d'un un label)
   If DejaDiapo = NbreDiapositif Then (si le diapo actuelle est le dernier)
      If Not oPPTPres Is Nothing Then oPPTPres.Close
      Set oPPTPres = Nothing
      If Not oPPTApp Is Nothing Then oPPTApp.Quit
      Set oPPTApp = Nothing
          If oPPTPres Is Nothing Then
            CliquePowerpoint.Enabled = False (le timer se nomme CliquePowerpoint)            ElseIf Not oPPTApp Is Nothing Then
                If Not oPPTPres Is Nothing Then oPPTPres.Close
                Set oPPTPres = Nothing
                If Not oPPTApp Is Nothing Then oPPTApp.Quit
                Set oPPTApp = Nothing
                CliquePowerpoint.Enabled = False
          End If
    End If
End If

----------- FONCTION QUI  AFFICHE LE DIAPO DANS LE PICTUREBOX
Function TerritoirePowerpoint() 'Fonction d'affichage du powerpoint
Dim screenClasshWnd As Long, chemin As String
On Error Resume Next
Set oPPTApp = CreateObject("PowerPoint.Application") 'Création ou execution de l'application Powerpoint
If Not oPPTApp Is Nothing Then
    Set oPPTPres = oPPTApp.Presentations.Open(Formatage, , , False) ('Formatage est une variable qui prend le chemin d'une presentation powerpoint a partir d'une boite de dialog)
    If Not oPPTPres Is Nothing Then
        NbreDiapositif = oPPTPres.Slides.Count
        CliquePowerpoint.Enabled = True (lance le timer de defilement des diapo)
        With oPPTPres
            With .SlideShowSettings
                .ShowType = ppShowTypeSpeaker
                With .Run
                    .Width = 175 'taille du picturebox
                    .Height = 125 'taille du picturebox
                End With
            End With
            screenClasshWnd = FindWindow("screenClass", 0&)
            SetParent screenClasshWnd, Picture1.hwnd (picture1 est le picturebox)
        End With
    End If
End If
0
allarabeye Messages postés 37 Date d'inscription lundi 13 juin 2005 Statut Membre Dernière intervention 8 mars 2008
4 juin 2007 à 12:08
salut je viens de découvrir la méthode ActivePresentation.SlideShowWindow.gotoslide N qui permet d'aller à un diapo voulue (N) et la méthode  ActivePresentation.SlideShowWindow.View.next qui permet de passer au diapo suivant mais le probleme est que ces méthodes ne marche pas (je suis sur office 2003).ben là je ne sais pas koi faire.
0
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 71
4 juin 2007 à 12:32
jmfmarques te l'a dit....

"Le problème est en effet la manipulation de l'objet (qu'il te faut apprendre) "

cherches pas a simuler un clic ou je ne sais quoi d'autre...
regarde ce que te permet de faire l'objet a ta disposition.

Ajoutes "Microsoft Power Point xx.x Object Library" dans les references de ton projet

Presse ensuite F2, puis, selectionne 'Power Point' dans le combobox des librairies
0
jrivet Messages postés 7393 Date d'inscription mercredi 23 avril 2003 Statut Membre Dernière intervention 6 avril 2012 60
4 juin 2007 à 12:33
essaie peu etre

oPPTApp.ActivePresentation.SlideShowWindow.View.next

@+: Ju£i?n
Pensez: Réponse acceptée
0
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 71
4 juin 2007 à 12:37
en plus "ne marche pas" ne veux pas dire grand chose...

as tu une erreur ?
ne se passe t'il simplement rien ...
0
allarabeye Messages postés 37 Date d'inscription lundi 13 juin 2005 Statut Membre Dernière intervention 8 mars 2008
4 juin 2007 à 12:38
j'ai déjà inséré "Microsoft Power Point xx.x Object Library"  et mon programme affiche effectivement un fichier pps maintenant j'ai aussi utilisé oPPTApp.ActivePresentation.SlideShowWindow.View.next  mais lorque le curseur de ma souris quitte l'objet il reste inactif (il pert le focus) il faut que l'objet reçoit le focus pour effectuer la transition des diapos. connaissez vous une propriété ou méthode qui permet de donner le focus à un objet ?
0
allarabeye Messages postés 37 Date d'inscription lundi 13 juin 2005 Statut Membre Dernière intervention 8 mars 2008
4 juin 2007 à 12:38
il ne se passe simplement rien
0
allarabeye Messages postés 37 Date d'inscription lundi 13 juin 2005 Statut Membre Dernière intervention 8 mars 2008
4 juin 2007 à 18:42
slt je voudrai vous remercier pour votre aide, en effet pas besoin de simuler un clique de souris pour passer d'un diapo à un autre automatiquement. pour cela j'utilise simplement la methode oPPTPres.SlideShowWindow.View.GotoSlide N dans un timer qui a chaque 2 secondes passe au prochain diapo. la  methode oPPTPres.SlideShowWindow.View.Next marche aussi.
maintenant je voudrai savoir comment faire pour que powerpoint ne se lance pas en plein écran lors de son lancement pour ensuite pour la valeur de l'objet conteneur? (pour moi c'est picturebox). voici mon code :
Set oPPTApp = CreateObject("PowerPoint.Application") 'Création ou execution de l'application Powerpoint
If Not oPPTApp Is Nothing Then
    Set oPPTPres = oPPTApp.Presentations.Open(Formatage, , , False) 'Formatage est une varialble qui contient le chemin d'un fichier powerpoint
    If Not oPPTPres Is Nothing Then
        NbreDiapositif = oPPTPres.Slides.Count 'NbreDiapositif prend le nombre total de diapo contenu dans le fichier powerpoint        
        With oPPTPres
            With .SlideShowSettings
                .ShowType = ppShowTypeSpeaker
                With .Run 'le probleme est ici,il se lance en plein écran avant de prendre les dimensions de picture1
                    .Width =  picture1.width 'Picture1 est un picturebox qui contient l'objet powerpoint
                    .Height = picture1.height
                End With
            End With
            screenClasshWnd = FindWindow("screenClass", 0&)
            SetParent screenClasshWnd, Picture1.hwnd          
        End With
    End If
End If

merci infiniment pour votre aide. QUE LA FORCE SOIT AVEC VOUS
0
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 71
5 juin 2007 à 06:54
me semble que tu peux définir la taille de ta fenetre avant d'appeler le .Run ...

a voir (dans les settings de la fenetre, je crois)

Renfield
Admin CodeS-SourceS- MVP Visual Basic
0
allarabeye Messages postés 37 Date d'inscription lundi 13 juin 2005 Statut Membre Dernière intervention 8 mars 2008
5 juin 2007 à 10:11
oui mais je ne sais pas comment faire, vu que j'ai pas pu trouver des cours ou des renseignements sur la manipulation ou l'utilisation des differentes méthodes.j'ai essayé de définir la taille de la fênetre mais rien de changer. l'objet powerpoint se lance en plein écran mais ne prend pas la taille de la fenetre qui doit le contenir lorsque je fais ça :
 With oPPTPres
            With .SlideShowSettings
                .ShowType = ppShowTypeSpeaker
                .Width = 175
                .Height = 125
                .Run
             End With
End With

en fait je ne sais pas ou placer la définitin de la taille de la fenetre avant le .Run
0
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 71
6 juin 2007 à 09:13
as tu essayé de passer par un objet OLE ?

Renfield
Admin CodeS-SourceS- MVP Visual Basic
0
allarabeye Messages postés 37 Date d'inscription lundi 13 juin 2005 Statut Membre Dernière intervention 8 mars 2008
6 juin 2007 à 11:25
non pas du tout. comment faire?
0