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 :

DIRECTX7 et VB6


Sujet :

VB 6 et antérieur

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé

    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    83
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 83
    Par défaut DIRECTX7 et VB6
    Bonjour à tous,
    J'ai un problème d'affichage dont je voudrais bien connaitre l'origine, voici le problème:
    -Je veux mettre une image bmp en fond de manière a créer un scroll horizontal ( avec directdraw et bltfast).
    J'ai donc confectionné mon image BMP avec paint ( largeur 5000 pixels , hauteur 800 pixels).
    PROBLEME: Si la largeur de l'image dépasse 4000 pixels , l'affichage avec BLTFAST est déformé , ma résolution d'écran est de 1280 pixels en largeur????.
    J'ai essayé de réduire la hauteur tout en maintenant la largeur à 5000 pixels , idem ( déformé).
    Quelqu'un peut il m'expliqué ce phénomène.
    Merci à tout ceux qui voudront bien se pencher sur ce problème.
    Salutations à tous

  2. #2
    Membre confirmé

    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    83
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 83
    Par défaut directX et VB6
    Je rajoute une précision , il est bien entendu que je n'affiche qu'une partie de l'image correspondante à la largeur de mon écran puis je décale les coordonnées pour faire scroller l'image entière

  3. #3
    Expert confirmé
    Avatar de ProgElecT
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2004
    Messages
    6 132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Haute Savoie (Rhône Alpes)

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

    Informations forums :
    Inscription : Décembre 2004
    Messages : 6 132
    Par défaut
    Rien a voir avec DIRECTX7, mais la gestion du HScroll et du VScroll devrait t'interesser.
    Sur un Form, un PictureBox, un HScroll et un VScroll
    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
    Option Explicit
     
    Private Sub Form_Load()
    Me.ScaleMode = vbPixels
    Picture1.ZOrder (1)
    Picture1.ScaleMode = vbPixels
    Picture1.AutoSize = True
    'adapter, image de 4556 pixels de large par 1321 pixels de haut
    Picture1.Picture = LoadPicture("C:\PersoFrancis\Montage.jpg")
    Picture1.Move 22, 22
    HScroll1.Move 22, 4, Me.ScaleWidth - 40, 17
    VScroll1.Move 4, 22, 17, Me.ScaleHeight - 40
    End Sub
    Private Sub Form_Activate()
    HScroll1.Value = HScroll1.Max
    VScroll1.Value = VScroll1.Max
    End Sub
    Private Sub Form_Resize()
    If Me.WindowState <> vbMinimized Then
     HScroll1.Move 22, 4, Me.ScaleWidth - 40, 17
     HScroll1.Max = Picture1.ScaleWidth + (VScroll1.Left + VScroll1.Width)
     HScroll1.Min = Me.ScaleWidth - (VScroll1.Left + VScroll1.Width)
     VScroll1.Move 4, 22, 17, Me.ScaleHeight - 40
     VScroll1.Max = Picture1.ScaleHeight + (HScroll1.Top + HScroll1.Height)
     VScroll1.Min = Me.ScaleHeight - (HScroll1.Top + HScroll1.Height)
    End If
    End Sub
     
    Private Sub HScroll1_Change()
    Picture1.Left = (HScroll1.Value - Picture1.ScaleWidth)
    End Sub
    Private Sub HScroll1_Scroll()
    HScroll1_Change
    End Sub
    Private Sub VScroll1_Change()
    Picture1.Top = (VScroll1.Value - Picture1.ScaleHeight)
    End Sub
    Private Sub VScroll1_Scroll()
    VScroll1_Change
    End Sub
    :whistle:pourquoi pas, pour remercier, un :plusser: pour celui/ceux qui vous ont dépannés.
    saut de ligne
    OOOOOOOOO👉 → → Ma page perso sur DVP ← ← 👈

  4. #4
    Inactif  

    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    4 555
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 4 555
    Par défaut
    Bonsoir,

    J'attendais une réaction et je félicite Progelect de la sienne.

    Seul hic : yvanovicth souhaite une image de fond pour une form (ce qui n'est pas possible) de dimensions supérieures aux maximaux....

    Alors et pour yvanovitch : abandonne l'idée d'une image de fond sur la form et adopte la picturebox (qui elle peut être plus grande) comme te l'indique Progelect, que je salue.

  5. #5
    Membre confirmé

    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    83
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 83
    Par défaut directx et vb6
    Messieurs ,
    Je me suis peut etre mal exprimé mais il s'agit bien de DIRECTX donc de BLTFAST et non de pictureBox.
    L'image en mémoire à mon avis , pouvait etre plus grande que l'écran , ce qui est le cas puisque je peux afficher des portions d'une image de 4000 pixels maximum de largeur mais ma question, pourquoi cette limite de 4000 pixels.
    Le scroll droite et gauche fonctionne parfaitement avec cette méthode ( BLTFAST) à condition que la largeur de l'image en mémoire ne dépasse pas les 4000 pixels??????.
    A suivre si quelqu'un sait , moi je nages!!!!
    Merci

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

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

    Informations forums :
    Inscription : Décembre 2004
    Messages : 6 132
    Par défaut
    Salutation yvanovitch
    Mon propos n’était pas de te donner la solution avec l’utilisation de DIRECTX7, étant trop ignorant avec cet outil.
    Au boulot j’ai un programme qui traite des images de 6200 pixels par 5600, sachant les manipuler, effet zoom positif et négatif, sélection partiel pour du copier/coller ….., la proposition voulait démontrer qu’il est possible de contourner le problème par l’utilisation d’un PictureBox.
    Je suppose que l’outil DIRECTX7 BLTFAST a ces limites.
    En VB6 le Form a les siennes, le PictureBox aussi, mais aussi la capacité mémoire installée, car le programme construit au boulot plante sur mon PC personnel.
    Peut être te serait il possible de faire un essai avec DIRECTX7 dans un PictureBox ?
    A+
    :whistle:pourquoi pas, pour remercier, un :plusser: pour celui/ceux qui vous ont dépannés.
    saut de ligne
    OOOOOOOOO👉 → → Ma page perso sur DVP ← ← 👈

Discussions similaires

  1. jeu en VB6 et directx7
    Par yvanovitch dans le forum Vos contributions VB6
    Réponses: 3
    Dernier message: 27/03/2010, 13h08
  2. [VB6] mettre en commentaires...
    Par nd25 dans le forum VB 6 et antérieur
    Réponses: 5
    Dernier message: 19/04/2004, 15h15
  3. [VB6] [MDI] Signaler la fermeture d'une fille à la mère
    Par cpri1shoot dans le forum VB 6 et antérieur
    Réponses: 4
    Dernier message: 13/04/2004, 08h57
  4. Réponses: 1
    Dernier message: 22/08/2002, 17h00
  5. [Crystal Report][VB6] instruction PrintReport
    Par yyyeeeaaahhh dans le forum SDK
    Réponses: 4
    Dernier message: 29/07/2002, 14h58

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