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 :

EditBox & nom Image


Sujet :

MFC

  1. #1
    Membre éclairé Avatar de meera
    Inscrit en
    Mai 2006
    Messages
    294
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 294
    Par défaut EditBox & nom Image
    salut
    svp j'ai une boite de dialog que j'affiche dedans une image
    je veux que lorsque je choisis une image pour l'ouvrir , j'affiche son nom da un EdirBox
    je sais comment le faire ( image existe ds un dossier)
    je le sais si les noms se traouvent ds un ListBox en utilisant SetDlgItm
    mais ds mon cas je sais plus
    est ce qq1 peut m'aider???????

  2. #2
    Expert éminent
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 395
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

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

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 395
    Par défaut
    SetWindowText() sur l'editbox ou SetDlgItemText() sur la fenêtre contenant l'editbox...
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  3. #3
    Membre éclairé Avatar de meera
    Inscrit en
    Mai 2006
    Messages
    294
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 294
    Par défaut
    j'ai utilisé la SetDlgItemText() mais je sais pas ce que je met ds lpszString:
    (SetDlgItemText( int nID, LPCTSTR lpszString ))
    car je veux afficher le nom de l'image selectionnée ds le dossier
    est ce que je dois utiliser getcursel()???

  4. #4
    Expert éminent
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 395
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

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

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 395
    Par défaut
    Qu'est-ce que tu cherches à faire précisément ?
    Si tu affiches l'image, c'est que le prog connait son nom, non?
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  5. #5
    Membre éclairé Avatar de meera
    Inscrit en
    Mai 2006
    Messages
    294
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 294
    Par défaut
    je vx aficher son nom ds un EditBox

    ds un menu je choisis l'option ouvrir, je choisis une image, je l'affiche ds maboite de dialog
    mnt je vx aussi affuiher son nom ds ma boite

  6. #6
    Expert éminent
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 395
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

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

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 395
    Par défaut
    Ben, tu récupères bien son nom pour ouvrir et afficher l'image!
    Donc, tu rajoutes le SetDlgItemText() quand tu as récupéré le nom...
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  7. #7
    Membre éclairé Avatar de meera
    Inscrit en
    Mai 2006
    Messages
    294
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 294
    Par défaut
    oui je peux resolu ce pb lorsque j'aurais un button ouvrir ds ma boite de dialog
    cette fois ci je mets setDlgtext
    mais j'ai un pb d'ouvrir l'image comme ça
    je dois l'ouvrir ds le menu file et l'afficher ds ma boite
    la fonctio ouvrir qui me donne des pb est:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    void CInserDlg::OnOpenn() 
    {
    	// TODO: Add your control notification handler code here
     
     
    		LPCTSTR lpszPathName;  
    	m_image.LoadFile(lpszPathName);
    	GetDlgItem(IDC_IMAGE)->InvalidateRect(NULL);
    	SetDlgItemText(IDC_NOMIMG,lpszPathName);
     
    }

  8. #8
    Membre Expert
    Avatar de hiko-seijuro
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    2 011
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 2 011
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    LPCTSTR lpszPathName;  
    m_image.LoadFile(lpszPathName);
    Ca me semble douteux car tu ouvre une image dont le nom n'a pa été initialisé

    Il faut que tu le récupère à un endroit. Essaye d'etre plus explicite sur ton traitement

  9. #9
    Expert éminent
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 395
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

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

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 395
    Par défaut
    Pire, le pointeur lui-même n'est pas initialisé: Il peut pointer sur n'importe quoi...
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  10. #10
    Membre éclairé Avatar de meera
    Inscrit en
    Mai 2006
    Messages
    294
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 294
    Par défaut
    oui oui c ça mon erreur,mais comment je l'initialise
    je px ecrire par exemple:
    lpszPathName ="c:\\Marques\marque32.bmp" ???

    le pb ce que cette fonction marche bien ds mon projer CDemoDoc.cpp
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    BOOL CDemonstrationDoc::OnOpenDocument(LPCTSTR lpszPathName) 
    {
    if (!CDocument::OnOpenDocument(lpszPathName))
    		return FALSE;
     
    	// TODO: Add your specialized creation code here
    	m_image.LoadFile(lpszPathName);
     
    	return TRUE;
    }
    donc sans initialisation

  11. #11
    Expert éminent
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 395
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

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

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 395
    Par défaut
    lpszPathName est un paramètre, dans la fonction que tu nous montres...
    Il est donc initialisé par l'appelant...
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  12. #12
    Membre éclairé Avatar de meera
    Inscrit en
    Mai 2006
    Messages
    294
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 294
    Par défaut
    ah
    mais comet je l'initialer ds ma boite de dialog???

  13. #13
    Membre éclairé Avatar de meera
    Inscrit en
    Mai 2006
    Messages
    294
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 294
    Par défaut
    h'ai ecris ce 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
     
    void CInserDlg::OnOpenn() 
    {
    	// TODO: Add your control notification handler code here
     
     
    	LPCTSTR lpszPathName; 
    	lpszPathName  = "c:\\Marques\\marque32.bmp";
    	m_image.LoadFile(lpszPathName);
    	GetDlgItem(IDC_IMAGE)->InvalidateRect(NULL);
    	SetDlgItemText(IDC_NOMIMG,lpszPathName);
     
     
    }
    mais rien ne s'affiche

  14. #14
    Membre éclairé Avatar de meera
    Inscrit en
    Mai 2006
    Messages
    294
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 294
    Par défaut
    si j'initialise lpszPathName par un nom d'image précise, j'ouvre cette image
    moi je veux lorsque je click sur le button open par exemple affiche la boite dialog qui me permet de choisir le chemin et ainsi l'image !!!!!!!
    et reccuperer son nom pour l'afficher ds EditBox

    Merci de poster dans le bon sous forum à l'avenir : MFC !!! Farscape

  15. #15
    Expert éminent
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 395
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

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

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 395
    Par défaut
    La fonction pour afficher la boîte de dialogue d'ouverture est GetOpenFileName().

    Mais sous MFC, tu peux utiliser un objet de la classe CFileDialog à la place.
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  16. #16
    Membre éclairé Avatar de meera
    Inscrit en
    Mai 2006
    Messages
    294
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 294
    Par défaut
    mais qq ce que je mets ds les parametres de la fonction:GetOpenFileName(

    je mets ça mais donne des erreurs:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    void CInserDlg::OnOpenn() 
    {
    	// TODO: Add your control notification handler code here
     
                 GetOpenFileName(	LPCTSTR lpszPathName);
    	LPCTSTR lpszPathName; 
    	//lpszPathName  = "c:\\Marques\\marque32.bmp";
    	m_image.LoadFile(lpszPathName);
    	GetDlgItem(IDC_IMAGE)->InvalidateRect(NULL);
    	SetDlgItemText(IDC_NOMIMG,lpszPathName);

  17. #17
    Expert éminent
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 395
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

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

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 395
    Par défaut
    Dis-moi, ça t'arrive de regarder l'aide des fonctions que tu emploies ?

    Et tu es en MFC, donc comme je l'ai dit, tu devrais plutôt utiliser un objet de la classe CFileDialog...
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  18. #18
    Membre éclairé Avatar de meera
    Inscrit en
    Mai 2006
    Messages
    294
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 294
    Par défaut
    j'ai fait l'aide de CDialog:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    CFileDialog( BOOL bOpenFileDialog, LPCTSTR lpszDefExt = NULL, LPCTSTR lpszFileName = NULL, DWORD dwFlags = OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT, LPCTSTR lpszFilter = NULL, CWnd* pParentWnd = NULL );
    donc ds mon programme je l'appeler come ça??

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    CFileDialog(  bOpenFileDialog =TRUE,  lpszDefExt = NULL, lpszFileName = NULL,
    dwFlags = OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT, lpszFilter = NULL,  pParentWnd = NULL );
    ????,,

  19. #19
    Expert éminent
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 395
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

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

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 395
    Par défaut
    Ce que tu vois est une classe dont le constructeur a de nombreux paramètres par défaut.
    Tout ce que le constructeur à besoin de savoir (sauf si tu veux personaliser plus), c'est si tu veux une boîte de dialogue "ouvrir" ou une boîte de dialogue "enregistrer sous".

    En l'occurence, tu veux sûrement "ouvrir", donc le paramètre du constructeur doit être TRUE.


    Ici, pour obtenir un nom de fichier, tu dois faire ceci (ou bien un truc du genre, je ne suis pas expert) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    CFileDialog dlg(TRUE);
    dlg.DoModal();
    CString sCheminFichier = dlg.GetPathName();
     
    //Et maintenant, sCheminFichier contient le chemin complet du fichier.
    Note: Le répertoire courant n'est plus forcément le même après ça: La CFileDialog est connue pour ce fait. Si tu as besoin de conserver le répertoire courant, il faudra le sauvegarder avant et le restaurer ensuite...
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  20. #20
    Membre éclairé Avatar de meera
    Inscrit en
    Mai 2006
    Messages
    294
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 294
    Par défaut
    vraiment je te remerciet du mon coeur
    j'ai arrivé à afficher la boite et ainsi afficher l'image
    et ds EditBox j'affiche le chemin
    svp est ce que je peux afficher seulement le nom de l'image ??

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. caractères spéciaux dans nom image
    Par Jevrod dans le forum Balisage (X)HTML et validation W3C
    Réponses: 3
    Dernier message: 04/02/2011, 10h10
  2. Fonction ajouter nom image
    Par dublow dans le forum Langage
    Réponses: 1
    Dernier message: 23/11/2009, 13h48
  3. Recupérer le nom image du processus
    Par sivaller dans le forum Windows
    Réponses: 11
    Dernier message: 02/11/2009, 20h48
  4. frontpage - changer nom image sur plusieurs pages
    Par webtender dans le forum Autres
    Réponses: 0
    Dernier message: 26/09/2009, 11h26
  5. Glisser deposer nom image
    Par cathy9999 dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 04/07/2007, 09h14

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