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 :

ouvrir word a l'aide d'un bouton


Sujet :

MFC

  1. #1
    Futur Membre du Club
    Inscrit en
    Février 2004
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 10
    Points : 5
    Points
    5
    Par défaut ouvrir word a l'aide d'un bouton
    Bonjour a tous

    en VC++

    J'aimerai ouvrir un document Word (mondoc.doc) à partir d'un bouton de ma boite de dialogue, y insérer du texte puis imprimer par ex.
    Peut-etre a l'aide des control activeX,OLE jsais pas bien comment ca marche !!!

    Merci beaucoup

    Loule

  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
    salut:
    lancement d'une applie enregistrer a partir d'une extension de fichier connue: shellexecute
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    HINSTANCE nerror;
    (nerror=ShellExecute(AfxGetMainWnd()->m_hWnd, "open", m_strOutputName, NULL, NULL, SW_SHOWNORMAL))<=(HINSTANCE)32)
    				{
    					CString mess;
    					mess.Format("Impossible de Modifier ou d'Ouvrir le Document:\n%s Erreur n°:%d",m_strOutputName,nerror);
    					AfxMessageBox(mess,MB_ICONEXCLAMATION);
    				}
    m_strOutputName = le nom du fichier word.
    le systeme fera le reste .

  3. #3
    Futur Membre du Club
    Inscrit en
    Février 2004
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 10
    Points : 5
    Points
    5
    Par défaut
    salut farscape
    Pour mon premier passage sur ce forum, c du bonheur.
    merci beaucoup de ton aide cela fait un bon moment que j'rame et
    là : ça marche
    rien qu'avec ce code j'ai compris plein de choses!!

    A propos cela fonctionne si mondoc.doc est ds le repertoire de mon appli
    et s'il se trouvais ailleur (un serveur par ex.)?? ; j'vais déja étudier un peu la fction shellexecute pour se faire, mais si t'a du temps pour m'aider encore un peu...

    et encore merci!!

    a bientot
    Loule

  4. #4
    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
    l'emplacement n'est pas important puisque c'est l'equivalent du double click dans l'explorateur windows sur le document....
    dans le meme ordre d'idee on peut faire print .

  5. #5
    Futur Membre du Club
    Inscrit en
    Février 2004
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 10
    Points : 5
    Points
    5
    Par défaut eulaaa
    jvois pas bien,

    j'ai pourtant déplacer mondoc.doc ds un autre répertoire que celui de mon appli et ShellExecute me renvoi une erreur!! nerror = 2

    J'ai vu également la structure de ShellExecute :
    ShellExecute(HWND hWnd,
    LPCSTR IpOperation,
    LPCSTR IpFile,
    LPCSTR LpParameters,
    LPCSTR LpDirectory,
    INT nShowCmd);

    LpDirectory specifie le repertoire par defaut apparement, j'ai essayer de lui donner un chemin a ce niveau la mais rien n'y fait!!

  6. #6
    Futur Membre du Club
    Inscrit en
    Février 2004
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 10
    Points : 5
    Points
    5
    Par défaut aut chose
    voili voila j'ai oublié un truc,
    avec le code de farscape j'ouvre maintenant un mondoc.doc,
    mais est-il possible d'en créer un (monnewdoc.doc)

    merci a bientot!
    loule

  7. #7
    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
    utilises GetLastError() pour voir l'erreur en detaill:
    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
     
    LPVOID lpMsgBuf;
       FormatMessage(
        FORMAT_MESSAGE_ALLOCATE_BUFFER |
        FORMAT_MESSAGE_FROM_SYSTEM |
        FORMAT_MESSAGE_IGNORE_INSERTS,
        NULL,
        GetLastError(),
        0, // Default language
        (LPTSTR) &lpMsgBuf,
        0,
        NULL
       );
       // Process any inserts in lpMsgBuf.
       // ...
       // Display the string.
       AfxMessageBox((LPCTSTR)lpMsgBuf, MB_OK | MB_ICONINFORMATION );
       // Free the buffer.
       LocalFree( lpMsgBuf );
    avec ca tu a le message d'erreur en clair.


  8. #8
    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
    essaye avec l'option "edit" pour voir.

  9. #9
    Futur Membre du Club
    Inscrit en
    Février 2004
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 10
    Points : 5
    Points
    5
    Par défaut jsuis fatigué
    Merci encore farscape,
    en effet les messages d'erreur sont plus clair
    mais j'arrive tjours pas a spécifier un chemin ds ma fonction shellExecute,
    elle veut décidemment pas que jmette mon .doc ailleur que ds le repertoire de mon appli, pourtant d'aprés la définition de la fonction ShellExecute, c possible :

    ShellExecute(handle,
    "open",
    <fully_qualified_path_to_folder>
    , NULL,
    NULL, SW_SHOWNORMAL);

    (cf. librairy MSDN Windows)

    je l'ai retournée et ratatournée, j'yarrive pas, pourtant <fully_qualified_path_to_folder> ca veut bien dire ecrire le chemin complet du dossier!!!
    j'ai essayé commen ça :
    ShellExecute(handle,
    "open",
    "C:\DOCUMENT\MONDOC.DOC"
    , NULL,
    NULL, SW_SHOWNORMAL);

    resultat nerror=2 : Fichier introuvable

    evidement les "\" sont percu comme des commutateurs genre \s ou \r...
    je les retrouve alors en Warning, ptet y'a une synthaxe spécifique pour ecrire un chemin? En tout cas cette synthaxe fctionne sous VB.

    a bientot j'espere
    [/code]

  10. #10
    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
    pour specifier un chemin dans une chaine:
    "C:\\DOCUMENT\MONDOC.DOC" ;
    ne pas oublier les doubles '\'

  11. #11
    Futur Membre du Club
    Inscrit en
    Février 2004
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 10
    Points : 5
    Points
    5
    Par défaut ouaaaaaaa
    Boujour et rereremerci farscape
    Ok ça fonctionne,
    je résume :
    1)pour ouvrir un fichier document a un chemin specifique :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    nerror=ShellExecute(AfxGetMainWnd()->m_hWnd, "open", m_strOutputName, NULL, m_le_chemin, SW_SHOWNORMAL)
    ou : m_strOutputName = le nom du fichier dont l'extension est connu (doc,xls,mdb...) ex :mondoc.doc
    m_le_chemin = "C:\\DOCUMENT" par ex.

    2)pour ouvrir word par ex
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    nerror=ShellExecute(AfxGetMainWnd()->m_hWnd, NULL, "WINWORD", NULL, NULL, SW_SHOWNORMAL)
    3)pour ouvrir un dossier spécifique (cela revient a ce un dbclick ds l'explorateur window (cf farscape))
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    nerror=ShellExecute(AfxGetMainWnd()->m_hWnd, "open", m_le_chemin, NULL, NULL, SW_SHOWNORMAL)
    je n'ai pas reussi non plus a faire fonctionner la fonction "edit"

    En fait, je cherche maintenant a créer un nouveau fichier Word dans un repertoire specifique : par ex chemin "c:\\DOCUMENT" et le nom du nouveau fichier "newdoc.doc"!! voila

    a bientot loule

  12. #12
    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
    salut, pour creer un document word et l'ouvrir plusieurs solutions:
    par niveau de complexite du plus simple au plus "hard"
    garder quelque part un fichier fichier vide etalon que l'on copy avec la fonction copyfile :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    BOOL CopyFile(
    LPCTSTR lpExistingFileName, 
    LPCTSTR lpNewFileName, 
    BOOL bFailIfExists );
    avec le nouveau nom .
    c'est pas tres elegant mais rapide.
    apres open normal .
    si on veut pas doc etalon au depart:
    on peut aussi faire ça avec un document html à ce moment creer un doc vide avec word au format html regarder le source le stocker dans le prog et le regenerer à la demande à la l'emplacement voulu.
    creer le fichier par l'automation Word.
    et apres l'ouvrir normalement avec shellexecute.

  13. #13
    Futur Membre du Club
    Inscrit en
    Février 2004
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 10
    Points : 5
    Points
    5
    Par défaut ben di donc
    et voili
    avec toutes ses bonnes choses, jva etoffer mon projet,
    Avec la fonction CopyFile j'ai trouvé CreateDirectory, ben pour créer un repertoire, je vais maintenant digérer tout ça

    merci encore farscape et au club


    a bientot

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [C#] ouvrir fichier "doc" à l'aide d'un bouton
    Par AmineDev9 dans le forum Windows Forms
    Réponses: 17
    Dernier message: 27/01/2009, 19h15
  2. Ouvrir une fenêtre à l'aide d'un bouton
    Par coco38 dans le forum Agents de placement/Fenêtres
    Réponses: 17
    Dernier message: 25/04/2008, 15h27
  3. Réponses: 3
    Dernier message: 02/06/2007, 19h20
  4. Ouvrir sous formulaire à l'aide d'un bouton
    Par egg3774 dans le forum IHM
    Réponses: 2
    Dernier message: 30/05/2007, 14h14
  5. comment ouvrir un fichier à l'aide d'un bouton dans un formulaire?
    Par c moi dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 24/05/2007, 00h34

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