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 :

Image, fichier d'aide et feuille MDI


Sujet :

VB 6 et antérieur

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de bruce207
    Inscrit en
    Novembre 2007
    Messages
    319
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 319
    Par défaut Image, fichier d'aide et feuille MDI
    Bonjour,
    je voudrais savoir comment redimensionner une image sur une feuille MDI et aussi comment lancer mon fichier d'aide .chm depuis cette meme feuille, parce que ce dernier ne se lance qu'apres que j'ai ouvert une feuille classique.
    Merci d'avance

  2. #2
    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
    Bonjour,

    Il est vrai que la méthode PaintPicture ne peut s'appliquer à l'image de fond d'une MDI.

    Il va donc te falloir ruser.
    Et voilà comment (ce sera ensuite à toi de mettre en oeuvre) :

    - sur ta MDIForm, une pictureBox invisible (elle te servira de tremplin), dans laquelle tu charges l'image de fond
    - tu redimensionnes comme tu l'entends cette PictureBox et son image car, là, avec la PictureBox, tu peux appliquer la méthode PaintPicture
    - tu "figes" (picture1.Picture = Picture1.image) ton image modifiée
    - Il ne te reste plus qu'à attribuer cette nouvelle image à la propriété Picture de ta MDIForm.

    Exerce-toi ainsi d'abord...
    On verra ensuite, lorsque tu y seras parvenu, comment utiliser plutôt une stdpicture

  3. #3
    Membre Expert
    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
    Par défaut
    Pour le fichier d'aide...

    Tu dois commencer par mettre le numéro de la rubrique à afficher dans la propriété HelpContextID (ou quelque chose y ressemblant) de ta Form.

    Pour la suite des choses, je ne sais pas trop.

  4. #4
    Membre éclairé Avatar de bruce207
    Inscrit en
    Novembre 2007
    Messages
    319
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 319
    Par défaut
    Bonjour,
    j'ai placé un picturebox dans laquelle j'ai mis une image, mais je n'arrives pas à la redimensionner comme je l'entends et je ne retrouve pas la méthode PaintPicture, donc je suis à l'étape 2, que dois je faire ?

  5. #5
    Membre Expert
    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
    Par défaut
    Je sais qu'un composant PictureBox possède une propriété Picture et une propirété Image... Il est peut-être possible de jouer sur les deux. Jamais testé.

    Ceci dit, il y a cette rubrique dans la FAQ qui pourrait t'aider.

  6. #6
    Expert confirmé
    Avatar de ProgElecT
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2004
    Messages
    6 130
    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 130
    Par défaut
    Salut
    Je n'avais jamais essayé ou eu besoin de charger une image dans un MDIForm.
    J'ai voulue voir ce que sa pouvait donner.
    Un Form MDIChild = True, sans code.
    Sur un MDIForm, un PictureBox nommé PictFond, avec menu ou pas,
    les deux sont possible sans modification du code, mis a part que s'il n'y en a pas,
    supprimer ou mettre en commentaires la sub MenuLanceur_Click.
    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
    Option Explicit
    Dim LaPict As IPictureDisp ' ou StdPicture
    Dim HBarretitre As Integer, Bordures As Integer
    ' *************** eventuellement a REMER si pas de menu ***************************
    Private Sub MenuLanceur_Click()
    Form1.Show
    End Sub
    '**********************************************************************************
     
    Private Sub MDIForm_Load()
    PictFond.Visible = False
    PictFond.ScaleMode = vbPixels
    PictFond.AutoRedraw = True
    PictFond.BorderStyle = 0 'none
    Set LaPict = LoadPicture("C:\PersoFrancis\mire1.bmp")
    HBarretitre = (Me.Height - Me.ScaleHeight - ((Me.Width - Me.ScaleWidth) / 2)) + 30
    Bordures = (PictFond.ScaleX(Me.Width - Me.ScaleWidth, vbTwips, vbPixels) / 4) + 1
    End Sub
     
    Private Sub MDIForm_Resize()
    If Me.Height - HBarretitre < 75 Then Exit Sub
    If Me.WindowState = vbMinimized Or PictFond.Width < 1 Then Exit Sub
    PictFond.Height = Me.Height - HBarretitre
    LaPict.Render PictFond.hDC, 0, 0, PictFond.ScaleWidth - Bordures, PictFond.ScaleHeight - Bordures, _
                  0, LaPict.Height, LaPict.Width, -LaPict.Height, 0
    'PictFond.Refresh
    Me.Picture = PictFond.Image
    End Sub
    Ce n'est pas terrible , pas de MDIForm.Refresh disponible, quelqu'un trouvera la parade ?
    :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 ← ← 👈

  7. #7
    Membre éclairé Avatar de bruce207
    Inscrit en
    Novembre 2007
    Messages
    319
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 319
    Par défaut
    j'ai tapé le code tel quel mais rien ne se passe, j'ai pas d'image dans ma feuille MDI. Pourquoi ?

  8. #8
    Expert confirmé
    Avatar de ProgElecT
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2004
    Messages
    6 130
    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 130
    Par défaut
    As tu modifier le chemin ici
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Set LaPict = LoadPicture("C:\PersoFrancis\mire1.bmp") ' <-------------------
    :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 ← ← 👈

  9. #9
    Membre éclairé Avatar de bruce207
    Inscrit en
    Novembre 2007
    Messages
    319
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 319
    Par défaut
    Oui, puisque j'avais un menu je n'ai pas mis en commentaire MenuLanceur_Click()

  10. #10
    Expert confirmé
    Avatar de ProgElecT
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2004
    Messages
    6 130
    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 130
    Par défaut
    j'ai tapé le code tel quel mais rien ne se passe, j'ai pas d'image dans ma feuille MDI. Pourquoi ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Set LaPict = LoadPicture("C:\PersoFrancis\mire1.bmp") ' <---------Là met TON chemin et fichier  ----------
    Motif de l'edit
    J'ai un peu avancé (bien que je ne suis pas sûr que c'est la meilleur façon de faire), dans les declarations, ajouter
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" _
                                        (ByVal hwnd As Long, ByVal wMsg As Long, _
                                         ByVal wParam As Long, ByVal lParam As Any) As Long
    Private Const WM_MDIACTIVATE = &H222
    La procedure MDIForm_Resize devenant
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    Private Sub MDIForm_Resize()
    If Me.Height - HBarretitre < 75 Then Exit Sub
    If Me.WindowState = vbMinimized Or PictFond.Width < 1 Then Exit Sub
    PictFond.Height = Me.Height - HBarretitre
    LaPict.Render PictFond.hDC, 0, 0, PictFond.ScaleWidth - Bordures, PictFond.ScaleHeight - Bordures, _
                  0, LaPict.Height, LaPict.Width, -LaPict.Height, 0
    PictFond.Refresh
    Me.Picture = PictFond.Image
    '-- Redessine, sa ne marche pas pourquoi ??
    'SendMessage Me.hwnd, WM_SETREDRAW, True, vbNullString        
     
    '-- Redessine correctement au passage Normal ----> Maximized et inversement
    SendMessage Me.hwnd, WM_MDIACTIVATE, True, vbNullString
    End Sub
    mais je n'ai pas encore trouvé le WM_???? qui permet de faire l'equivalent d'un Refresh, serait il accepté par la MDIForm, je fini par avoir un doute, car j'en ai essayé beaucoup.
    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 ← ← 👈

  11. #11
    Membre Expert
    Avatar de Delbeke
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    2 675
    Détails du profil
    Informations personnelles :
    Âge : 71
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 2 675
    Par défaut
    Tu trouveras dans mes contributions (suivre le lien dans ma signature) le composant DiGradient6 qui pemet , entre autres , l'affichage d'un picture dans une FormMdi. L'image est redimensionnée pour s'afficher complétement sur la form , le resize est géré ansi qu'une feuille fille qui se ferme.

Discussions similaires

  1. Images absentes dans fichiers d'aide .chm
    Par bruce207 dans le forum Installation, Déploiement et Sécurité
    Réponses: 10
    Dernier message: 30/08/2008, 11h53
  2. Fichier d'aide .chm et feuille MDI
    Par bruce207 dans le forum VB 6 et antérieur
    Réponses: 1
    Dernier message: 15/05/2008, 13h24
  3. Réponses: 2
    Dernier message: 25/10/2002, 22h19
  4. Besoin du fichier d'aide du SDK DirectX7 (pour DirectDraw)
    Par Magus (Dave) dans le forum DirectX
    Réponses: 5
    Dernier message: 02/10/2002, 13h08
  5. appel de fichier d'Aide
    Par Atrebate62 dans le forum Composants VCL
    Réponses: 5
    Dernier message: 24/09/2002, 14h13

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