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

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VB 6 et antérieur Discussion :

Comment récupérer une fenêtre Windows dans un objet Form de VB ?


Sujet :

VB 6 et antérieur

  1. #1
    Membre averti
    Homme Profil pro
    Développeur VB6 et tout neuf en .Net
    Inscrit en
    Avril 2005
    Messages
    377
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France

    Informations professionnelles :
    Activité : Développeur VB6 et tout neuf en .Net
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2005
    Messages : 377
    Points : 446
    Points
    446
    Par défaut Comment récupérer une fenêtre Windows dans un objet Form de VB ?
    Bonjour a tous,

    Je cherche à manipuler une fenêtre créée par Windows et non par VisualBasic.
    La fenêtre en question est créée dans mon programme mais via
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SendMessage(hMDIClient, WM_MDICREATE, 0&, mc)
    Je connais sont Handle, mais elle n'apparait pas dans la collection Forms.



    Est-il possible de récupérer une fenêtre "non VisualBasic" dans un objet Form de Visual Basic ?


    Un truc du style :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Public Function GetFormObjectByHandle(ByVal Handle as long) as Form

    Merci à tous
    Le plus difficile pour trouver une bonne réponse, c'est déjà de trouver la bonne question.

  2. #2
    Modérateur
    Avatar de ProgElecT
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2004
    Messages
    6 077
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Décembre 2004
    Messages : 6 077
    Points : 17 185
    Points
    17 185
    Par défaut
    Citation Envoyé par Najdar Voir le message
    Bonjour a tous,

    .......
    Est-il possible de récupérer une fenêtre "non VisualBasic" dans un objet Form de Visual Basic ?
    ......
    Inclure un programme externe a l'intérieur d'un Form ?
    Soyez sympa, pensez -y
    Balises[CODE]...[/CODE]
    Balises[CODE=NomDuLangage]...[/CODE] quand vous mettez du code d'un autre langage que celui du forum ou vous postez.
    Balises[C]...[/C] code intégré dans une phrase.
    Balises[C=NomDuLangage]...[/C] code intégré dans une phrase quand vous mettez du code d'un autre langage que celui du forum ou vous postez.
    Le bouton en fin de discussion, quand vous avez obtenu l'aide attendue.
    ......... et pourquoi pas, pour remercier, un pour celui/ceux qui vous ont dépannés.
    👉 → → Ma page perso sur DVP ← ← 👈

  3. #3
    Membre averti
    Homme Profil pro
    Développeur VB6 et tout neuf en .Net
    Inscrit en
    Avril 2005
    Messages
    377
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France

    Informations professionnelles :
    Activité : Développeur VB6 et tout neuf en .Net
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2005
    Messages : 377
    Points : 446
    Points
    446
    Par défaut
    Ce n'est pas un programme externe.
    Pour être précis, c'est un composant ActiveX qui crée la fenêtre.
    De cette fenêtre je ne connais que le Handle.

    J'ai déjà pas mal de fonctions travaillant sur des Form (position, état, ...). Je voulais que cette fenêtre puisse être traitée par ces fonctions.
    Si ce n'est pas possible, j'utiliserais les API.
    Le plus difficile pour trouver une bonne réponse, c'est déjà de trouver la bonne question.

  4. #4
    Rédacteur
    Avatar de DarkVader
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2002
    Messages
    2 130
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2002
    Messages : 2 130
    Points : 3 118
    Points
    3 118
    Par défaut
    Bonjour,
    Citation Envoyé par Najdar Voir le message
    Ce n'est pas un programme externe.
    Pour être précis, c'est un composant ActiveX qui crée la fenêtre.
    De cette fenêtre je ne connais que le Handle.

    J'ai déjà pas mal de fonctions travaillant sur des Form (position, état, ...). Je voulais que cette fenêtre puisse être traitée par ces fonctions.
    Si ce n'est pas possible, j'utiliserais les API.
    La 1ère solution serait d'utiliser SetParent (avec un container - picturebox par exemple - cela fonctionne bien)
    La seconde serait de récupérer l'object Form depuis sont handle.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Dim TheForm as form
    set TheForm=Ptr2Obj(handleForm)
     
                    Public Function Ptr2Obj(ByVal ptrObj As Long) As Object
                      Dim oClone As Object
     
                      CopyMemory oClone, ptrObj, 4      ' Copier le pointeur    '
     
                      Set Ptr2Obj = oClone
                      CopyMemory oClone, 0&, 4          ' Détruire l'objet temp '
                    End Function
    A vérifier

  5. #5
    Membre averti
    Homme Profil pro
    Développeur VB6 et tout neuf en .Net
    Inscrit en
    Avril 2005
    Messages
    377
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France

    Informations professionnelles :
    Activité : Développeur VB6 et tout neuf en .Net
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2005
    Messages : 377
    Points : 446
    Points
    446
    Par défaut
    Cool merci

    J'aime beaucoup la seconde solution !

    Je vais essayer et je te au courant.
    Le plus difficile pour trouver une bonne réponse, c'est déjà de trouver la bonne question.

Discussions similaires

  1. Réponses: 8
    Dernier message: 18/09/2011, 22h49
  2. Réponses: 2
    Dernier message: 08/12/2006, 11h09
  3. [C#] Comment appeler une fenêtre modale dans un autre thread ?
    Par Pilloutou dans le forum Windows Forms
    Réponses: 6
    Dernier message: 05/10/2006, 11h19
  4. Comment fermer une fenêtre Child dans une application MDI
    Par bahiatoon dans le forum C++Builder
    Réponses: 9
    Dernier message: 05/10/2006, 08h57

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo