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 :

[VB6] Affichage d'une PictureBox en arrière plan d'une appli


Sujet :

VB 6 et antérieur

  1. #1
    Membre du Club
    Inscrit en
    Avril 2006
    Messages
    152
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 152
    Points : 45
    Points
    45
    Par défaut [VB6] Affichage d'une PictureBox en arrière plan d'une appli
    Bonjour. Si j'ai une picture box affichée et que j'appele une fenêtre (je suis dans une application mdi) cette dernière s'affiche sous la picture box.
    Serait-il possible qu'elle s'affiche SUR la picture box ?

  2. #2
    Expert confirmé
    Avatar de zazaraignée
    Profil pro
    Étudiant
    Inscrit en
    Février 2004
    Messages
    3 174
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2004
    Messages : 3 174
    Points : 4 085
    Points
    4 085
    Par défaut
    Salut

    Essaie
    Si ça marche pas, tu dis

  3. #3
    Membre du Club
    Inscrit en
    Avril 2006
    Messages
    152
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 152
    Points : 45
    Points
    45
    Par défaut
    Cela ne fonctionne pas. J'ai ceci

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    pictureMain.Visible = True
            pictureMain.ZOrder
            pictureMain.Height = Me.Height
    La picturebox s'affiche bien avec son contenu, elle est à la bonne taille mais impossible d'ouvrir une fenêtre par dessus

  4. #4
    Expert confirmé
    Avatar de zazaraignée
    Profil pro
    Étudiant
    Inscrit en
    Février 2004
    Messages
    3 174
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2004
    Messages : 3 174
    Points : 4 085
    Points
    4 085
    Par défaut
    ZOrder sur la fenêtre, pas sur le pictureBox. ZOrder ramène à l'avant le contrôle (ou conteneur) qui est derrière.

  5. #5
    Membre du Club
    Inscrit en
    Avril 2006
    Messages
    152
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 152
    Points : 45
    Points
    45
    Par défaut
    J'ai donc remplacé mon picturemain.ZOrder par mdiform1.ZOrder mais il n'y a pas eu de changement mes fenêtres s'ouvrant toujours sous la picture box

  6. #6
    Expert confirmé
    Avatar de zazaraignée
    Profil pro
    Étudiant
    Inscrit en
    Février 2004
    Messages
    3 174
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2004
    Messages : 3 174
    Points : 4 085
    Points
    4 085
    Par défaut
    Je fais des tests et t'en reparle... demain. Tu dis si c'est trop tard.

  7. #7
    Expert confirmé
    Avatar de zazaraignée
    Profil pro
    Étudiant
    Inscrit en
    Février 2004
    Messages
    3 174
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2004
    Messages : 3 174
    Points : 4 085
    Points
    4 085
    Par défaut
    Les tests ont étés plus rapides que prévu.

    C'est comme je te disais en message privé.

    Si tu place ton pictureBox dans une fenêtre sans bordures, tu pourra la gérer comme les autres fenêtres filles. Seulement elle sera affichée dans le menu Fenêtres de ton application.

    Voici ce que j'ai fait. J'ai d'abord créé une fenêtre (objet Form) et placé ces différentes valeurs:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Propriété      Valeur
    Name           frmPicture
    BorderStyle    0 - None
    Caption        Image  'pour le menu Fenetre
    Tu y mets l'image de ton choix.

    J'ai ensuite codé ceci dans frmPicture:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Private Sub Form_Load()
        Me.Width = Picture1.Width
        Me.Height = Picture1.Height
    End Sub
     
    Private Sub Picture1_Resize()
        frmPicture.Width = Picture1.Width
        frmPicture.Height = Picture1.Height
    End Sub
    Et ajouté cette ligne dans la procédure de lancement de l'appli:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Private Sub MDIForm_Load()
        Me.Left = GetSetting(App.Title, "Settings", "MainLeft", 1000)
        Me.Top = GetSetting(App.Title, "Settings", "MainTop", 1000)
        Me.Width = GetSetting(App.Title, "Settings", "MainWidth", 6500)
        Me.Height = GetSetting(App.Title, "Settings", "MainHeight", 6500)
        LoadPictureForm ' juste avant d'ouvrir un document
        LoadNewDoc
    End Sub
    Sans oublier de coder LoadPictureForm
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Private Sub LoadPictureForm()
        Dim frmP As frmPicture
        Set frmP = New frmPicture
        frmP.Top = 0
        frmP.Left = 0
        frmP.Show
    End Sub
    Après, lorsque tu ouvres un document, celui-ci sera toujours à l'avant plan.

    Edit :
    Je fais d'autres tests pour empêcher d'ajouter le frmPicture dans le menu fenêtre et le rendre 'inclicable'.

  8. #8
    Membre du Club
    Inscrit en
    Avril 2006
    Messages
    152
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 152
    Points : 45
    Points
    45
    Par défaut
    Merci.
    J'étais parti sur une autre piste (la picture box est censé contenir une image (je veux donc mettre une image de fond sur mon appli)) mais je vais voir si ceci fontcionne

  9. #9
    Expert éminent
    Avatar de ThierryAIM
    Homme Profil pro
    Inscrit en
    Septembre 2002
    Messages
    3 673
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2002
    Messages : 3 673
    Points : 8 524
    Points
    8 524
    Par défaut
    et MDIForm1.picture = loadpicture ...
    ca ne suffit pas ?
    Vous vous posez une question, la réponse est peut-être ici :
    Toutes les FAQs VB
    Les Cours et Tutoriels VB6/VBScript
    Les Sources VB6


    Je ne réponds pas aux questions techniques par MP. Utilisez les forums. Merci de votre compréhension

  10. #10
    Membre du Club
    Inscrit en
    Avril 2006
    Messages
    152
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 152
    Points : 45
    Points
    45
    Par défaut
    L'image se charge bien mais aux dimensions de l'image alors que j'aurais souhaité qu'elle s'ouvre aux dimensions de l'écran.

    De plus mon application permet de changer le fond d'écran et il y a des bugs avec ce systeme (au niveau du rafraichissement de l'image)

    C'est pour ça que j'avais pensé à l'insérer dans une picture box conteant un controlleur image. En étirant l'image à la taille de la picture box elle meme etirée a la taille de l'écran j'avais une image couvrant toute la surface de mon écran.

  11. #11
    Expert confirmé
    Avatar de zazaraignée
    Profil pro
    Étudiant
    Inscrit en
    Février 2004
    Messages
    3 174
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2004
    Messages : 3 174
    Points : 4 085
    Points
    4 085
    Par défaut
    Salut

    et la propriété AutoRedraw sur ta form principale, si tu la mets à True?

    Edit : bon, je vois, pas de AutoRedraw...
    Alors, j'ai pas d'idée sur ce coup-là.

  12. #12
    Inactif  
    Avatar de jmfmarques
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    3 784
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 3 784
    Points : 4 674
    Points
    4 674
    Par défaut
    Hum !
    Et pourtant... mettre une image de fond (propriété picture de la Form), sur la form, adaptée, quelles que soient ses dimensions, aux dimensions de la form... est loin d'être une mission impossible...
    J'en pleurerais !

  13. #13
    Membre éprouvé
    Avatar de méphistopheles
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    1 551
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 1 551
    Points : 1 220
    Points
    1 220
    Par défaut
    le paintpicture est à mon gout bien plus maniable... et plus simple.
    Méphistophélès
    Si la solution ne résout pas votre problème, changez le problème...
    Cours et tutoriels C++ - FAQ C++ - Forum C++.

  14. #14
    Expert confirmé
    Avatar de zazaraignée
    Profil pro
    Étudiant
    Inscrit en
    Février 2004
    Messages
    3 174
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2004
    Messages : 3 174
    Points : 4 085
    Points
    4 085
    Par défaut
    Bon, a part des idées des mecs rogolos , j'avais dit que je verrais comment empêcher l'affichage de la frmPicture dans le menu Fenêtre... Pour peut que le menu Fenêtre ait la propriété ListWindows à True...

    C'est la ligne en gras:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Private Sub LoadPictureForm()
        Dim frmP As frmPicture
        Set frmP = New frmPicture
        frmP.Top = 0
        frmP.Left = 0
        frmP.Enabled = False
        frmP.Show
    End Sub
    Les gars (Thierry et jmf), j'ai cru comprendre que c'était pas un problème de redimentionnement en tant que tel mais plutôt un problème de raffraichissement de l'image lors d'un redimentionnement... à moins que j'ai tout compris de travers... ça m'arrive parfois.

  15. #15
    Inactif  
    Avatar de jmfmarques
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    3 784
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 3 784
    Points : 4 674
    Points
    4 674
    Par défaut
    voilà donc, avec l'accord de Thierry :

  16. #16
    Expert confirmé
    Avatar de zazaraignée
    Profil pro
    Étudiant
    Inscrit en
    Février 2004
    Messages
    3 174
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2004
    Messages : 3 174
    Points : 4 085
    Points
    4 085
    Par défaut
    Bon.

    Et il se passe quoi quand on redimentionne la fenêtre a mano?

  17. #17
    Inactif  
    Avatar de jmfmarques
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    3 784
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 3 784
    Points : 4 674
    Points
    4 674
    Par défaut
    Bonjour zaza,

    Pardi ! on lui applique ce calcul d'entrée de jeu !

    On ne fait généralement ce genre de calcul qu'une seule fois, au chargement. Cette démo (et donc ses zooms) montre comment on peut à partir d'une même image, modifier la taille de l'affichage de l'image de fond, en évitant d'ajout d'un contrôle container

  18. #18
    Membre du Club
    Inscrit en
    Avril 2006
    Messages
    152
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 152
    Points : 45
    Points
    45
    Par défaut
    Je me suis servi du code de jmf pour améliorer la mien. Le rafraichissement d'image s'effectue bien ... problème : il me met une erreur : variable objet ou bloc with non définie.
    En bidouillant un peu j'ai ensuite obtenu une "erreur : type incompatible"
    suite à ça et malgré ces message d'erreur, le rafraichissement de l'image de fond s'effectue comme il faut

  19. #19
    Expert confirmé
    Avatar de zazaraignée
    Profil pro
    Étudiant
    Inscrit en
    Février 2004
    Messages
    3 174
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2004
    Messages : 3 174
    Points : 4 085
    Points
    4 085
    Par défaut
    Salut

    Me v'la avec mon café matinal (les gars viennent de partir pour l'école, je suis seule avec ma pitchounette) et je viens le finir avec vous.

    jmf:
    Je me suis amusée avec ton zoom. Chouette! Mais il se passe un truc bizarre quand je drague une bordure pour agrandir la fenêtre. T'as essayé?

  20. #20
    Inactif  
    Avatar de jmfmarques
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    3 784
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 3 784
    Points : 4 674
    Points
    4 674
    Par défaut
    Bonjour zaza,
    Non, je n'ai pas essayé car tel n'était pas le but .
    Le but ? Démontrer que l'on peut modifier la taille de l'affichage de l'image de fond... c'est tout.
    Pour répondre à ta question, maintenant :
    fastoche : tu détermines le nouveau coefficient en fonction de l'ancienne taille de la Form et de sa nouvelle taille ... puis appelles ajustimage avec ce coefficient... c'est tout...
    Essayes et si tu n'y paviens pas, dis-le et je te fais cette petite bébelle supplémentaire ...

    Alors, la ouananiche ? Bonne cette année ?

Discussions similaires

  1. Affichage d'une forme en arrière plan
    Par aiglelibre dans le forum Windows Forms
    Réponses: 7
    Dernier message: 31/05/2013, 08h14
  2. Réponses: 1
    Dernier message: 19/03/2010, 16h17
  3. Réponses: 1
    Dernier message: 15/06/2008, 12h32
  4. [debutant]placer une image en arrière plan d'une JFrame
    Par ashash dans le forum Agents de placement/Fenêtres
    Réponses: 1
    Dernier message: 24/09/2006, 14h18
  5. Dessiner une image en arrière plan d'1 MDI Main Frame
    Par Yacine95000 dans le forum MFC
    Réponses: 3
    Dernier message: 14/06/2004, 10h22

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