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]picturebox et resize


Sujet :

VB 6 et antérieur

  1. #21
    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
    Bon ...
    Il fallait passer par là car j'imaginais bien que l'image principale n'était pas "figée" (il aurait sinon suffi de la redimensionner en dehors de VB et de la prendre avec ses dimensions adaptées).
    Etape n° 2 : Elle est simplement une étape de décisions à prendre en fonction du but à atteindre :
    Il va ici nous falloir décider entre image et picturebox
    question 1 : dois-tu ajouter des choses sur l'image principale (je devine que oui) et que sont exactement ces choses (icônes, autres images ...?). As-tu prévu, pour ces objets, une transparence ou dois-tu simplement les insérer tels quels (dont en forme de rectangle) ?
    question 2 : dois-tu insérer également du texte ?
    question 3 : que comptes-tu ensuite faire de ce que tu auras ainsi "affiché" ?
    cette dernière question est de la plus grande importance ! J'ai vu un bout de code où tu voulais sauvegarder une image ! S'il s'agit de l'image finale, ce sera compliqué car il faudra alors non pas insérer une image, mais carément la peindre , sinon, tu ne sauveras que l'image principale, sans les rajouts !(et celà est déjà beaucoup plus complexe !)
    J'attends ces réponses.

  2. #22
    Membre actif Avatar de riesseg
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    415
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 415
    Points : 251
    Points
    251
    Par défaut
    1. sur cette image, je fais bouger plusieurs choses:
    des line (vb), des shapes(vb), des icones (.ico)
    ces objets doivent etre transparent, et bougeable a tout le moment (c'est deja le cas

    2. je ne crois pas que je doivent mettre du texte dessus.

    3. hu??
    en fait, ce que je veux faire, c'est juste dimentionner l'image-fond du picturebox.
    apres, dessus, je peux placer des objets (en fait, le fond est une carte, et les objets des emmeteurs/recepteurs radio)

    comme tu l'as devine, je pense creer une image aux bonnes dimensions avec une image de base... c'est ce qui me parait "le plus simple/pratique" etant donne mes connaissances vb...
    n'oubliez pas la balise

  3. #23
    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
    3. hu??
    Je précise à nouveau :
    a) tu te contentes de ce que tu as à l'écran : fastoche
    b) tu dois sauvegarder cette image globale (dur dur alors !)
    Réponse ?

  4. #24
    Membre actif Avatar de riesseg
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    415
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 415
    Points : 251
    Points
    251
    Par défaut
    ah ok...

    non, cette image, elle est juste affichée avec par dessus les E/R

    mais je dois pas faire d'impression de cette map implementee

    Edit: a) fastoche
    n'oubliez pas la balise

  5. #25
    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
    Hé ben voilà !
    Je m'y mets donc maintenant :
    Une dernière question, toutefois :
    Tu tiens vraiment à une picturebox, pour çà ?
    Si elle ne t'est pas imposée, j'ai bien l'impression qu'on peut s'en passer totalement, en plus, et agiliser le tout à l'aise !
    Dis-moi maintenant afin que je te concocte tout celà dès après dîner

  6. #26
    Membre actif Avatar de riesseg
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    415
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 415
    Points : 251
    Points
    251
    Par défaut
    elle est imposée...

    parce qu'elle est deja utiliser dans pas mal de form de l'appli, et que la remplacer par autre chose risquerai fort de faire planter l'appli...

    donc, vi, elle m'est imposée.
    n'oubliez pas la balise

  7. #27
    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
    Bon ! On va faire avec cette imposition (c'est dommage car tout aurait été considérablement allégé)
    Mais bon .... juste un peu de code de plus !
    Si je m'y mets après-dîner, celà te va ?

  8. #28
    Membre actif Avatar de riesseg
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    415
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 415
    Points : 251
    Points
    251
    Par défaut
    ca me pose pas de probleme

    merci beaucoup
    n'oubliez pas la balise

  9. #29
    Expert éminent sénior


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Points : 20 038
    Points
    20 038
    Par défaut
    Citation Envoyé par jmfmarques
    Bon ! On va faire avec cette imposition (c'est dommage car tout aurait été considérablement allégé)
    Mais bon .... juste un peu de code de plus !
    Si je m'y mets après-dîner, celà te va ?
    déjà à table ...?

  10. #30
    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
    Ouais ! Moi, si je ne mange pas, je suis fichu !
    3 dernières petites questions destinées à te faciliter la vie (je coderai avec ces noms) :
    1) quel est le nom de ta picturebox ?
    2) est-elle déjà dans un cadre (et si oui : quel est son nom ?) ?
    3) quelles sont les largeur et hauteur maximales de cette pictureBox

  11. #31
    Membre actif Avatar de riesseg
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    415
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 415
    Points : 251
    Points
    251
    Par défaut
    1/ ma picturebox s'appelle picMain
    2/ elle est dans frmVueCarte, mais c'est otut. Elle est pas inclue dans un cadre
    3/ largeur max: 9000 hauteur max: 6000
    n'oubliez pas la balise

  12. #32
    Membre actif Avatar de riesseg
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    415
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 415
    Points : 251
    Points
    251
    Par défaut
    En fait, j'avais vu sur un autre topic un probleme similaire.
    La solution qui etait donnee etait de creer une image de la meme taille que la picturebox.

    J'ai essayé, et j'ai reussi rapidement a avoir mon image a la taille voulue. (et ce mme en vb6)
    Le probleme, c'est que tout ce que j'affichais dessus disparaissais...
    ou alors, venait a disparaitre quand je faisais un drag_and_drop...

    donc la je suis un peu bloqué...
    je vais attendre jfmarques savoir si lui il arrive a avoir qqch.
    moi je patauge
    n'oubliez pas la balise

  13. #33
    Membre actif Avatar de riesseg
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    415
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 415
    Points : 251
    Points
    251
    Par défaut
    ah ok... mais non...

    car ma picturebox est au milieu d'elements de controles et d'affichage...
    et de fait, sa taille est imposement fixe

    houla atta...
    ta soluce, serai un truc du genre;

    je met ma picture en autoresize
    je la reduit en mettant des valeurs a height et a width
    et je la rend visible ?

    ca marchw ca Oo

    /me a torturer son code
    n'oubliez pas la balise

  14. #34
    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
    Non !
    Patientes un peu (dîner s'étant prolongé)...
    J'y vais à coup de stretchblt
    A +

  15. #35
    Membre actif Avatar de riesseg
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    415
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 415
    Points : 251
    Points
    251
    Par défaut
    effectivement, il resize pas l'image, il tronque.

    bon WE de paques, jfmarques, t'as pleins de temps ^^
    n'oubliez pas la balise

  16. #36
    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
    Elle arrive, ma soluce !
    Juste le temps de "baptiser"
    (j'ai un peu arrosé le dîner, mais çà va)
    3 minutes !

  17. #37
    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
    Déjà :
    mets dans ta form une picture box nommée coucou
    mets-en une autre, baptisée jmf, dans laquelle ui mets ta picturebox picmain
    à tout de suite

  18. #38
    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
    mets la propriété borderstyle de 3 picturesboxes à 0 (important)

  19. #39
    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
    le code arrive maintenant !
    Je te précise que :
    - la picturebox coucou peut se "ranger" ou tu veux (pour ne pas te gêner dans le développement, avec les dimensions que tu veux
    - que le cadre jmf doit avoir les dimensions de ton emplacement d'image et être placé là où tu veux ton image
    - que l'image picmain doit être placée à l'intérieur de jmf (sans te préoccuper de sa taille)
    -que c'est dans la propriété picture de picmain que tu mets ton image, au départ (ou par la suite, si tu en changes)

    code :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    Private Declare Function StretchBlt Lib "gdi32.dll" ( _
            ByVal hDC As Long, ByVal X As Long, ByVal Y As Long, _
            ByVal nWidth As Long, ByVal nHeight As Long, _
            ByVal hSrcDC As Long, ByVal XSrc As Long, _
            ByVal YSrc As Long, ByVal nSrcWidth As Long, _
            ByVal nSrcHeight As Long, ByVal dwRop As Long) As Long
    Private Const SRCCOPY = &HCC0020
     
     
     
     
    Private Sub Form_Activate()
      coucou.Picture = picMain.Picture
      Dim rapfin As Single
      With jmf
       .AutoRedraw = True
       .AutoSize = True
      End With
      With coucou
        .AutoRedraw = True
         .AutoSize = True
         .Visible = False
      End With
      With picMain
        .AutoRedraw = True
        .AutoSize =true
      End With
     If coucou.Height >= coucou.Width Then
       rapfin = coucou.Width / coucou.Height
       picMain.Height = jmf.Height
       picMain.Width = jmf.Height * rapfin
     Else
       rapfin = coucou.Height / coucou.Width
       picMain.Width = jmf.Width
       picMain.Height = jmf.Width * rapfin
     End If
     picMain.Left = (jmf.Width - picMain.Width) / 2
     picMain.Top = (jmf.Height - picMain.Height) / 2
      Ret = StretchBlt(picMain.hDC, 0, 0, picMain.Width, picMain.Height, _
                     coucou.hDC, 0, 0, coucou.Width, coucou.Height, _
                     SRCCOPY)
      picMain.Picture = picMain.Image
      picMain.Refresh
    End Sub
    essayes et dis-moi (un peu trop bu, mais...)

  20. #40
    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
    Coucou !

    Bon !
    Comme je ne sais pas si, dans ta boîte, on va accepter l'API (on ne sait jamais !) Je t'ai concocté la même chose mais sans passer par l'API.
    Alors, et bien que je préfère de loin le code d'hier (pour de très nombreuses raisons), en voilà un, sans StretchBlt :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    Private Sub Form_Activate()
      coucou.Picture = picMain.Picture
      Dim rapfin As Single
      With jmf
       .AutoRedraw = True
       .AutoSize = True
      End With
      With coucou
        .AutoRedraw = True
         .AutoSize = True
         .Visible = False
      End With
      With picMain
        .AutoRedraw = True
        .AutoSize = True
      End With
     If coucou.Height >= coucou.Width Then
       rapfin = coucou.Width / coucou.Height
       picMain.Height = jmf.Height
       picMain.Width = jmf.Height * rapfin
     Else
       rapfin = coucou.Height / coucou.Width
       picMain.Width = jmf.Width
       picMain.Height = jmf.Width * rapfin
     End If
     picMain.Left = (jmf.Width - picMain.Width) / 2
     picMain.Top = (jmf.Height - picMain.Height) / 2
     picMain.PaintPicture picMain.Picture, 0, 0, picMain.Width, picMain.Height, 0, 0, coucou.Width, coucou.Height
      picMain.Picture = picMain.Image
      picMain.Refresh
    End Sub
    Dans ce dernier code (prends l'autre de préférence), j'au utilisé (convenablement ) Paint.Picture.

    Joyeuses Paques

    J'ai vu plus haut que tu as également des petits ennuis avec tes petites images à déposer, qui s'évanouissent de peur au drag and drop sur l'image principale !
    On en parle quand tu veux (fastoche, il me semble)...
    EDIT : j'ai des choses importantes à te dire à propos des proportions données à ton aire d'affichage, mais elles n'apportent rien ici et je préférerais donc en traiter par MP. Si tu en es d'accord, envoies-moi un MP et on en parlera longuement .

+ Répondre à la discussion
Cette discussion est résolue.
Page 2 sur 3 PremièrePremière 123 DernièreDernière

Discussions similaires

  1. [VB6] inserer des images dans picturebox et sauvegarder BMP
    Par todac dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 04/05/2007, 14h25
  2. [VB6] Images ou PictureBox
    Par Lucas42 dans le forum VB 6 et antérieur
    Réponses: 11
    Dernier message: 03/05/2006, 17h45
  3. VB6] imprimer le texte afficher dans une picturebox
    Par Persons dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 27/08/2004, 11h15
  4. [VB6] [Graphisme] Inversion dans picturebox
    Par tomnie dans le forum VB 6 et antérieur
    Réponses: 23
    Dernier message: 16/04/2003, 15h05
  5. [VB6] [Graphisme] Arc de cercle dans un picturebox
    Par SpaceFrog dans le forum VB 6 et antérieur
    Réponses: 11
    Dernier message: 04/11/2002, 17h55

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