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

MFC Discussion :

[MFC] Mettre une image de fond dans une CDialog


Sujet :

MFC

  1. #1
    r0d
    r0d est déconnecté
    Expert éminent

    Homme Profil pro
    tech lead c++ linux
    Inscrit en
    Août 2004
    Messages
    4 262
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : tech lead c++ linux

    Informations forums :
    Inscription : Août 2004
    Messages : 4 262
    Points : 6 680
    Points
    6 680
    Billets dans le blog
    2
    Par défaut [MFC] Mettre une image de fond dans une CDialog
    Bonjour à tous,

    j'ai implémenté la FAQ suivante: http://c.developpez.com/faq/vc/?page...gndBitmapOnDlg, et j'ai quelques interrogations.
    Tout d'abord, j'utilise la classe CPicture (très pratique cette classe), exactement comme dans la FAQ.
    Je ne met pas mon code car il est exactement identique à la FAQ. Ha si, juste la ligne de chargement de l'image:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    BOOL b = m_Picture.Load("img/orion_iras.jpg");
    qui me renvoie TRUE.
    1/ J'utilise ce chemin: "img/orion_iras.jpg". N'est-ce pas dangereux? Je veux dire, suis-je certain que l'appli va toujours trouver le fichier?

    2/ L'image ne s'applique en image de fond que si je réduis la fenêtre puis que je la restaure. Elle n'est pas appliquée directement au premier affichage de ma fenêtre. Pourquoi et comment y remédier?

    3/ Quand mon image est appliquée en image de fond, l'affichage est extrêment lent. Même en mode release. Comment y remédier?

    Merci et bon week-end!
    « L'effort par lequel toute chose tend à persévérer dans son être n'est rien de plus que l'essence actuelle de cette chose. »
    Spinoza — Éthique III, Proposition VII

  2. #2
    Rédacteur
    Avatar de farscape
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2003
    Messages
    9 055
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

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

    Informations forums :
    Inscription : Novembre 2003
    Messages : 9 055
    Points : 17 323
    Points
    17 323
    Par défaut Re: [MFC] Mettre une image de fond dans une CDialog
    Citation Envoyé par r0d
    Bonjour à tous,

    j'ai implémenté la FAQ suivante: http://c.developpez.com/faq/vc/?page...gndBitmapOnDlg, et j'ai quelques interrogations.
    Tout d'abord, j'utilise la classe CPicture (très pratique cette classe), exactement comme dans la FAQ.
    Je ne met pas mon code car il est exactement identique à la FAQ. Ha si, juste la ligne de chargement de l'image:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    BOOL b = m_Picture.Load("img/orion_iras.jpg");
    qui me renvoie TRUE.
    1/ J'utilise ce chemin: "img/orion_iras.jpg". N'est-ce pas dangereux? Je veux dire, suis-je certain que l'appli va toujours trouver le fichier?

    2/ L'image ne s'applique en image de fond que si je réduis la fenêtre puis que je la restaure. Elle n'est pas appliquée directement au premier affichage de ma fenêtre. Pourquoi et comment y remédier?

    3/ Quand mon image est appliquée en image de fond, l'affichage est extrêment lent. Même en mode release. Comment y remédier?

    Merci et bon week-end!
    1) si l'application ne change pas le chemin courant oui.
    sinon inclus l'image dans les ressources.
    2) la lecture doit etre effectuée dans initDialog si c'est le cas rajoute un Invalidate apres lecture.
    3) quelle poids a ton image ?,il faut des images legeres ...


  3. #3
    r0d
    r0d est déconnecté
    Expert éminent

    Homme Profil pro
    tech lead c++ linux
    Inscrit en
    Août 2004
    Messages
    4 262
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : tech lead c++ linux

    Informations forums :
    Inscription : Août 2004
    Messages : 4 262
    Points : 6 680
    Points
    6 680
    Billets dans le blog
    2
    Par défaut Re: [MFC] Mettre une image de fond dans une CDialog
    Citation Envoyé par farscape
    1) si l'application ne change pas le chemin courant oui.
    sinon inclus l'image dans les ressources.
    ok
    Citation Envoyé par farscape
    2) la lecture doit etre effectuée dans initDialog si c'est le cas rajoute un Invalidate apres lecture.
    En effet, avec le Invalidate(), ça marche
    Citation Envoyé par farscape
    3) quelle poids a ton image ?,il faut des images legeres ...

    En effet, j'avais une image de 400Ko. Je l'ai réduite à 12Ko c'est nettement plus rapide d'un coup



    P.S: au risque de paraître un peu , il y a un truc qui me parait étrange. La technique qui consiste à utiliser EraseBackground redessine notre image par dessus le gris pas beau de la fenêtre par défaut. Conséquence: le fond est affiché 2 fois. N'y a-t-il pas moyen de remplacer l'image de fond plutôt que de redessiner par dessus?
    « L'effort par lequel toute chose tend à persévérer dans son être n'est rien de plus que l'essence actuelle de cette chose. »
    Spinoza — Éthique III, Proposition VII

  4. #4
    Nouveau membre du Club
    Inscrit en
    Août 2006
    Messages
    34
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 34
    Points : 32
    Points
    32
    Par défaut
    Citation Envoyé par farscape
    1) si l'application ne change pas le chemin courant oui.
    sinon inclus l'image dans les ressources.


    question peut-être bête mais comment tu inclus l'image dans les ressources?
    Merci de la réponse

  5. #5
    Membre confirmé Avatar de LapinGarou
    Homme Profil pro
    R&D Developer
    Inscrit en
    Octobre 2005
    Messages
    341
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : R&D Developer
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Octobre 2005
    Messages : 341
    Points : 479
    Points
    479
    Par défaut
    clic droit, "Importer", dans l'écran des ressources.

    Pour le chemin, ça ne marche pas si on met un chemin relatif à l'exe, genre :
    "./img/orion_iras.jpg" ??

  6. #6
    Nouveau membre du Club
    Inscrit en
    Août 2006
    Messages
    34
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 34
    Points : 32
    Points
    32
    Par défaut
    bon j'ai inclus "pearl.bmp" dans le ressource
    et je fais m_Picture.Load("pearl.bmp")
    mais lorsque j'exécute, il me met impossible de charger l'image

    pourquoi?
    merci pour votre aide !!!!!!!!!!!

  7. #7
    Nouveau membre du Club
    Inscrit en
    Août 2006
    Messages
    34
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 34
    Points : 32
    Points
    32
    Par défaut
    j'ai un petit problème lorsque j'utilise l'exécutable, l'image est inclus dans le dossier 'res' et l'adresse est ./res/pearl.jpg et à l'exécution,il ne trouve pas l'image.

    merci pour vos petits conseils !

Discussions similaires

  1. Mettre une image de fond dans une page jsp en java
    Par Decon dans le forum Servlets/JSP
    Réponses: 5
    Dernier message: 12/11/2010, 23h53
  2. [FAQ][VC++]Comment placer une image de fond dans une dialogue
    Par Gabrielly dans le forum Contribuez
    Réponses: 0
    Dernier message: 09/04/2009, 17h21
  3. Etirer une image de fond dans une cellule
    Par dreamanoir dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 13/07/2005, 14h39
  4. Réponses: 4
    Dernier message: 03/05/2005, 09h03

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