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]-Automation OLE Word : insérer une image dans un .doc


Sujet :

MFC

  1. #1
    Membre régulier
    Avatar de Alice9
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    124
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Mai 2004
    Messages : 124
    Points : 85
    Points
    85
    Par défaut [MFC]-Automation OLE Word : insérer une image dans un .doc
    Bonjour,

    Actuellement sur un petit programme pour générer un fichier doc à partir d'un doc modèle, j'arrive à :

    - l'ouvrir
    - allez à des signets précis
    - insérer du texte après ces signets
    - enregistrer et fermer ce fichier

    Je cherche maintenant à insérer un fichier image après un signet.

    pour celà je pensais utiliser la fonction InsertFile de la classe de mon signet comme je faisais pour insérer un texte après mon signet (mais là c'est InsertAfter).

    auriez vous un peu de doc ou sauriez vous à tout hasard comment fonctionne cette fonction ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    ...
    Selection selObjet(app.GetSelection()) ; // sélection en cours dans mon fichier word
    ....
    selObj.AttachDispatch(app.GetSelection()) ; // app = mon application word
    // je parcours mon bookmark et je récupère la position du signet qui m'intéresse
    // puis je place ma sélection au bon endroit
    ...
    selObjet.InsertFile(nameFile, VARIANT * range, VARIANT *confirmConversion, VARIANT * link, VARIANT * attachment )
    ---> je n'ai pas compris à quoi correspondait les 4 VARIANTs.

    Merci beaucoup

    Alice
    Alice

    A coeur vaillant, rien d'impossible !

  2. #2
    mat.M
    Invité(e)
    Par défaut
    ---> je n'ai pas compris à quoi correspondait les 4 VARIANTs.

    Because technologie COM !
    La méthode InsertFile doit pouvoir être appelée aussi de par exemple Visual Basic 6
    Or en VB il n'ya pas les mêmes types qu'en C/C++ comme char *

    En cherchant dans le MSDN on trouve cela
    VARIANT and VARIANTARG
    Use VARIANTARG to describe arguments passed within DISPPARAMS, and VARIANT to specify variant data that cannot be passed by reference. The VARIANT type cannot have the VT_BYREF bit set. VARIANTs can be passed by value, even if VARIANTARGs cannot.

    typedef struct FARSTRUCT tagVARIANT VARIANT;
    typedef struct FARSTRUCT tagVARIANT VARIANTARG;

    typedef struct tagVARIANT {
    VARTYPE vt;
    unsigned short wReserved1;
    unsigned short wReserved2;
    unsigned short wReserved3;
    union {
    unsigned char bVal; // VT_UI1.
    short iVal; // VT_I2 .
    long lVal; // VT_I4 .
    float fltVal; // VT_R4 .
    double dblVal; // VT_R8 .
    VARIANT_BOOL boolVal; // VT_BOOL.
    SCODE scode; // VT_ERROR.
    CY cyVal; // VT_CY .
    DATE date; // VT_DATE.
    BSTR bstrVal; // VT_BSTR.
    IUnknown FAR* punkVal; // VT_UNKNOWN.
    IDispatch FAR* pdispVal; // VT_DISPATCH.
    SAFEARRAY FAR* parray; // VT_ARRAY|*.
    unsigned char FAR* pbVal; // VT_BYREF|VT_UI1.
    short FAR* piVal; // VT_BYREF|VT_I2.
    long FAR* plVal; // VT_BYREF|VT_I4.
    float FAR* pfltVal; // VT_BYREF|VT_R4.
    double FAR* pdblVal; // VT_BYREF|VT_R8.
    VARIANT_BOOL FAR* pboolVal; // VT_BYREF|VT_BOOL.
    SCODE FAR* pscode; // VT_BYREF|VT_ERROR.
    CY FAR* pcyVal; // VT_BYREF|VT_CY.
    DATE FAR* pdate; // VT_BYREF|VT_DATE.
    BSTR FAR* pbstrVal; // VT_BYREF|VT_BSTR.
    IUnknown FAR* FAR* ppunkVal; // VT_BYREF|VT_UNKNOWN.
    IDispatch FAR* FAR* ppdispVal; // VT_BYREF|VT_DISPATCH.
    SAFEARRAY FAR* FAR* pparray; // VT_ARRAY|*.
    VARIANT FAR* pvarVal; // VT_BYREF|VT_VARIANT.
    void FAR* byref; // Generic ByRef.
    };
    };

    To simplify extracting values from VARIANTARGs, Automation provides a set of functions for manipulating this type. Use of these functions is strongly recommended to ensure that applications apply consistent coercion rules.

    The vt value governs the interpretation of the union as follows:

    Value Description
    VT_EMPTY No value was specified. If an optional argument to an Automation method is left blank, do not pass a VARIANT of type VT_EMPTY. Instead, pass a VARIANT of type VT_ERROR with a value of DISP_E_PARAMNOTFOUND.
    VT_EMPTY | VT_BYREF Not valid.
    VT_UI1 An unsigned 1-byte character is stored in bVal.
    VT_UI1 | VT_BYREF A reference to an unsigned 1-byte character was passed. A pointer to the value is in pbVal.
    VT_I2 A 2-byte integer value is stored in iVal.
    VT_I2 | VT_BYREF A reference to a 2-byte integer was passed. A pointer to the value is in piVal.
    VT_I4 A 4-byte integer value is stored in lVal.
    VT_I4 | VT_BYREF A reference to a 4-byte integer was passed. A pointer to the value is in plVal.
    VT_R4 An IEEE 4-byte real value is stored in fltVal.
    VT_R4 | VT_BYREF A reference to an IEEE 4-byte real value was passed. A pointer to the value is in pfltVal.
    VT_R8 An 8-byte IEEE real value is stored in dblVal.
    VT_R8 | VT_BYREF A reference to an 8-byte IEEE real value was passed. A pointer to its value is in pdblVal.
    VT_CY A currency value was specified. A currency number is stored as an 8-byte, two's complement integer, scaled by 10,000 to give a fixed-point number with 15 digits to the left of the decimal point and 4 digits to the right. The value is in cyVal.
    VT_CY | VT_BYREF A reference to a currency value was passed. A pointer to the value is in pcyVal.
    VT_BSTR A string was passed; it is stored in bstrVal. This pointer must be obtained and freed by the BSTR functions, which are described in Chapter 7, "Conversion and Manipulation Functions."
    VT_BSTR | VT_BYREF A reference to a string was passed. A BSTR* that points to a BSTR is in pbstrVal. The referenced pointer must be obtained or freed by the BSTR functions.
    VT_NULL A propagating null value was specified. (This should not be confused with the null pointer.) The null value is used for tri-state logic, as with SQL.
    VT_NULL | VT_BYREF Not valid.
    VT_ERROR An SCODE was specified. The type of the error is specified in scodee. Generally, operations on error values should raise an exception or propagate the error to the return value, as appropriate.
    VT_ERROR | VT_BYREF A reference to an SCODE was passed. A pointer to the value is in pscode.
    VT_BOOL A Boolean (True/False) value was specified. A value of 0xFFFF (all bits 1) indicates True; a value of 0 (all bits 0) indicates False. No other values are valid.
    VT_BOOL | VT_BYREF A reference to a Boolean value. A pointer to the Boolean value is in pbool.
    VT_DATE A value denoting a date and time was specified. Dates are represented as double-precision numbers, where midnight, January 1, 1900 is 2.0, January 2, 1900 is 3.0, and so on. The value is passed in date.
    This is the same numbering system used by most spreadsheet programs, although some specify incorrectly that February 29, 1900 existed, and thus set January 1, 1900 to 1.0. The date can be converted to and from an MS-DOS representation using VariantTimeToDosDateTime, which is discussed in Chapter 7, "Conversion and Manipulation Functions."

    VT_DATE | VT_BYREF A reference to a date was passed. A pointer to the value is in pdate.
    VT_DISPATCH A pointer to an object was specified. The pointer is in pdispVal. This object is known only to implement IDispatch. The object can be queried as to whether it supports any other desired interface by calling QueryInterface on the object. Objects that do not implement IDispatch should be passed using VT_UNKNOWN.
    VT_DISPATCH | VT_BYREF A pointer to a pointer to an object was specified. The pointer to the object is stored in the location referred to by ppdispVal.
    VT_VARIANT Invalid. VARIANTARGs must be passed by reference.
    VT_VARIANT | VT_BYREF A pointer to another VARIANTARG is passed in pvarVal. This referenced VARIANTARG will never have the VT_BYREF bit set in vt, so only one level of indirection can ever be present. This value can be used to support languages that allow functions to change the types of variables passed by reference.
    VT_UNKNOWN A pointer to an object that implements the IUnknown interface is passed in punkVal.
    VT_UNKNOWN | VT_BYREF A pointer to the IUnknown interface is passed in ppunkVal. The pointer to the interface is stored in the location referred to by ppunkVal.
    VT_ARRAY | <anything> An array of data type <anything> was passed. (VT_EMPTY and VT_NULL are invalid types to combine with VT_ARRAY.) The pointer in pbyrefVal points to an array descriptor, which describes the dimensions, size, and in-memory location of the array. The array descriptor is never accessed directly, but instead is read and modified using the functions described in Chapter 7, "Conversion and Manipulation Functions."
    Donc si le type d'origine est un int alors il faut fixer le type du VARIANT VARTYPE vt à VT_I2 et ainsi de suite

  3. #3
    Membre régulier
    Avatar de Alice9
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    124
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Mai 2004
    Messages : 124
    Points : 85
    Points
    85
    Par défaut re
    Bonjour,

    merci pour ta réponse, j'ai pu ainsi donner les bons arguments à ma fonction.

    Mais j'ai encore un soucis.

    Quand j'exécute mon programme au moment d'insérer le fichier "test.jpeg" ou "test.doc", une msgBox s'ouvre pour m'enguirlander :
    Le type ne correspond pas
    apparemment c'est un pur message windows qui ne gêne pas du tout la fin du programme.

    Mais le fichier n'est absolumment pas inséré.

    Aurais tu une idée ?

    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
    COleVariant Range ;
                   COleVariant confirmConv;
                   COleVariant link;
                   COleVariant attachment ;
     
                   Range.vt = VT_DISPATCH ;
                   Range.pdispVal = selObj.GetRange() ;
     
                   confirmConv.vt = VT_BOOL ;
                   link.vt = VT_BOOL ;
                   attachment.vt = VT_BOOL ;
     
                   confirmConv.boolVal = false ;
                   link.boolVal = false ;
                   attachment.boolVal = false ;
     
     
                   selObj.InsertFile(
                      "essai1.doc",  // chemin du fichier à insérer
                      &Range,        // If the specified file is a Word document, 
                                     // this parameter refers to a bookmark. If the file is another type 
                                     // (for example, a Microsoft Excel worksheet), 
                                     // this parameter refers to a named range or a cell range
                                     // (for example, R1C1:R3C4).
                      &confirmConv,  // demande à l'utilisateur de confirmer l'insertion du fichier : true sinon false
                      &link,         // True to insert the file by using an INCLUDETEXT field.
                      &attachment    //  True to insert the file as an attachment to a WordMail message
                      ) ;
    selObj est de type Selection et c'est grâce à lui que j'arrive à intégrer du texte après un signet : ça c'est bien configurer.

    je me demande si je ne me trompe pas sur le contenu de Range ou sur le type de fichier que l'on peut insérer avec cette fonction ...

    Si tu as une idée ....

    Alice
    Alice

    A coeur vaillant, rien d'impossible !

  4. #4
    mat.M
    Invité(e)
    Par défaut
    uand j'exécute mon programme au moment d'insérer le fichier "test.jpeg" ou "test.doc", une msgBox s'ouvre pour m'enguirlander
    Au lieu de passer un nom de fichier comme "test.jpeg" il faut peut-être passer par une variable intermédiaire de type wchar_t et la renseigner
    Attention le type char * du C n'est pas supporté avec COM il faut le convertir avec
    MultiByteToWideChar


    Sinon passer comme argument
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    L"test.jpeg"
    // ou 
    _T("test.jpeg")

  5. #5
    Membre régulier
    Avatar de Alice9
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    124
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Mai 2004
    Messages : 124
    Points : 85
    Points
    85
    Par défaut re
    -> ne compile pas
    -> compile mais même problème

    Et la conversion par MultiByteToWideChar mis dans la fonction InsertFile ne fonctionne pas ...

    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
    wchar_t t_test ;
                   char test[20] ;
                   sprintf(test, "test.jpeg") ;
                   MultiByteToWideChar (CP_ACP,MB_PRECOMPOSED,test,-1,&t_test,0) ;
     
                   selObj.InsertFile(
                      t_test ,  // chemin du fichier à insérer
                      &Range,        // If the specified file is a Word document, 
                                     // this parameter refers to a bookmark. If the file is another type 
                                     // (for example, a Microsoft Excel worksheet), 
                                     // this parameter refers to a named range or a cell range
                                     // (for example, R1C1:R3C4).
                      &confirmConv,  // demande à l'utilisateur de confirmer l'insertion du fichier : true sinon false
                      &link,         // True to insert the file by using an INCLUDETEXT field.
                      &attachment    //  True to insert the file as an attachment to a WordMail message
                      ) ;
    -> il me dit qu'il attend un const char * et non un unsigned char dans InsertFile.
    Alice

    A coeur vaillant, rien d'impossible !

  6. #6
    Membre régulier
    Avatar de Alice9
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    124
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Mai 2004
    Messages : 124
    Points : 85
    Points
    85
    Par défaut re
    j'ai trouvé un bout de code VB pour insérer une image dans un .doc :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    'insérer une image à partir d'un fichier
    docword.Selection.inLineShapes.AddPicture Filename:= "c:\cool.bmp", - LinkToFile:= false, SaveWithDocument:= true
    Par analogie je sais que
    docword = document en cours de word
    & que
    docWord.Selection == oDocs.GetSelection() (en MFC)
    Puis avec selObj (= oDocs.GetSelection() ) j'ai accès à la fonction GetInLineShapes()

    -> je suppose que cela correpond à la fonction InLineShapes de VB.

    Mais une fois que j'ai récupéré la valeur de retour, je n'ai pas du tout accès à un éventuel Add ou Insert Picture ....

    Je ne trouve vraiment pas beaucoup de doc pour l'automation avec C++, sauf pour ouvrir, fermer, écrire un texte dans un .doc .

    SVP pourriez vous m'aider ?

    Alice
    Alice

    A coeur vaillant, rien d'impossible !

  7. #7
    Membre régulier
    Avatar de Alice9
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    124
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Mai 2004
    Messages : 124
    Points : 85
    Points
    85
    Par défaut re
    Bonjour tout le monde,

    je crois que j'ai presque compris comment on insère une image mais ça ne fonctionne pas tout à fait.

    -> le code compile, link et s'exécute mais ne met pas du tout l'image dans le document !


    voici mon code peut être auriez vous une idée ?

    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
     
    ...
                   //-------------------------------------
                   // insertion d'une image
                   DISPID dispid;
                   OLECHAR FAR * szMember = OLESTR("addPicture");
                   COleVariant vtInLineShapes ;
                   vtInLineShapes.vt = VT_DISPATCH ;
                   vtInLineShapes.pdispVal = selObj.GetInlineShapes() ;
     
     
     
                   if (vtInLineShapes.pdispVal->GetIDsOfNames(IID_NULL,&szMember,1,LOCALE_SYSTEM_DEFAULT,&dispid) == S_OK)
                   {
     
                   COleVariant chemin ;
                   chemin.SetString("D/tosave/winprj/TestOleAutomationWord/Release/test.jpg",VT_BSTR) ;
     
                   DISPPARAMS param = {&chemin,0,0,0};
     
                   DISPID mydispid = 0;
                   param.rgvarg[0].vt = VT_BSTR ;
                   param.rgvarg[0].bstrVal = OLESTR("D/tosave/winprj/TestOleAutomationWord/Release/test.jpg") ;
     
                   param.rgdispidNamedArgs = &mydispid ;
                   param.cArgs = 1 ;
                   param.cNamedArgs = 1;
     
                   vtInLineShapes.pdispVal->Invoke(dispid,IID_NULL,LOCALE_SYSTEM_DEFAULT,DISPATCH_METHOD,&param,NULL,NULL,NULL) ;
     
                   selObj.InsertAfter("\ninvoke") ;
                   }
    ....
    Par contre le texte "invoke" s'écrit très bien dans le fichier ... sigh.



    Alice
    Alice

    A coeur vaillant, rien d'impossible !

  8. #8
    Membre régulier
    Avatar de Alice9
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    124
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Mai 2004
    Messages : 124
    Points : 85
    Points
    85
    Par défaut
    hello,

    J'ai trouvé un autre moyen d'arrivé à AddPicture :

    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
                   Shapes _shapes ;
                   _shapes = selObj.GetInlineShapes() ;
     
                   COleVariant _left ;
                   COleVariant _top ;
                   COleVariant _Width ;
                   COleVariant _Height ;
                   COleVariant _linkToFile ;
                   COleVariant _saveWithDoc ;
                   _linkToFile.vt = VT_BOOL ;
                   _saveWithDoc.vt = VT_BOOL ;
                   _left.vt = VT_I4 ;
                   _top.vt = VT_I4 ;
                   _Height.vt = VT_I4 ;
                   _Width.vt = VT_I4 ;
                   _linkToFile.boolVal = false ;
                   _saveWithDoc.boolVal = false ;
                   _left.intVal = 0 ;
                   _top.intVal = 0 ;
                   _Height.intVal = 200 ;
                   _Width.intVal = 200 ;
     
                   COleVariant _anchor ;
                   _anchor.vt = VT_DISPATCH ;
                   _anchor.pdispVal = selObj.GetRange() ;
     
                   _shapes.AddPicture(
                      "D:/tosave/winprj/TestOleAutomationWord/Release/test.jpg", // filename
                      _linkToFile,                  // linktofile
                      _saveWithDoc,                  //saveWithDoc
                      _left,                  // left
                      _top,                  //top
                      _Width,                  //width
                      _Height,                  //height
                      _anchor) ;                   // anchor
    le problème c'est que quand je l'exécute il me dit : "Membre introuvable"

    Mais quel membre ? le chemin que je lui fourni est pourtant correct ....

    ai je mal interprété la variable anchor ?

    Alice

    A coeur vaillant, rien d'impossible !

  9. #9
    Membre régulier
    Avatar de Alice9
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    124
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Mai 2004
    Messages : 124
    Points : 85
    Points
    85
    Par défaut suite et fin
    Bonjour,

    enfin ma quête est terminée !

    Pour ceux que cela intéresse voici comment insérer une image dans word via un pgme C++ et les MFC :

    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
    COleVariant covTrue((short)true) ;
            COleVariant covFalse((short)false) ;
            COleVariant covOptional((long)DISP_E_PARAMNOTFOUND, VT_ERROR) ; // arguments optionnel
     
            Shapes _shapes ;
            _shapes = oDoc.GetShapes() ; //oDoc est le document en cours dans word
     
            Range oRange = selObj.GetRange();
                 // selObj est la position de la sélection en cours, ici correspond au signet à partir duquel on insère la photo
     
            VARIANT vTargetRange;
            vTargetRange.vt = VT_DISPATCH;
            vTargetRange.pdispVal = oRange; // récupération du Range, position signet
     
           // Ajout d'une image dans le fichier word
            _shapes.AddPicture(
            // filename
            "D:/test.jpg",
           // image issue d'un fichier lié au document word
            covFalse,
           // image enregistrée dans le fichier
            covTrue ,
            covOptional, covOptional, covOptional, covOptional,
            &vTargetRange) ;
                    ......
    Special to Mat.M pour ses Variant .

    Alice
    ------------------------------------------
    A coeur vaillant, rien d'impossible (dixit Chev. Bayard)
    Alice

    A coeur vaillant, rien d'impossible !

  10. #10
    Nouveau Candidat au Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Janvier 2015
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2015
    Messages : 1
    Points : 0
    Points
    0
    Par défaut insere une image dans mfc
    je suis coincée j'ai pas su comment inserer une image dans MFC svp guidez moi pas par pas le plus tot possible

  11. #11
    Expert éminent sénior
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2005
    Messages
    5 071
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Conseil

    Informations forums :
    Inscription : Février 2005
    Messages : 5 071
    Points : 12 116
    Points
    12 116
    Par défaut
    Quel rapport entre votre application MFC et l'OLE Word ?

    Faites votre propre file de message et prenez la peine d'exposer votre problème concrètement.
    Si vous ne faites pas cet effort, je pense que personne ne fera l'effort de deviner votre problème pour vous donnez une solution.

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 26/02/2009, 13h50
  2. [Open XML API] : insérer une image dans Word
    Par pcayrol dans le forum C#
    Réponses: 2
    Dernier message: 07/10/2008, 09h52
  3. Insérer une image dans un fichier Word
    Par nono_cap dans le forum Langage
    Réponses: 1
    Dernier message: 22/08/2007, 08h30
  4. Réponses: 5
    Dernier message: 27/09/2005, 09h18
  5. [MFC]Insérer une image dans un CListCtrl
    Par DestyNov@ dans le forum MFC
    Réponses: 8
    Dernier message: 04/03/2005, 14h36

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