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 :

erreur : associer une image à une Ctrlist


Sujet :

MFC

  1. #1
    Nouveau Candidat au Club
    Inscrit en
    Mars 2007
    Messages
    1
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 1
    Points : 1
    Points
    1
    Par défaut erreur : associer une image à une Ctrlist
    Bonjour, j'ai un petit soucis dans mon projet (pour mon bts), en fait je voudrais associer des photos (format jpeg) à une Ctrlistet et les afficher en miniature dedans , mais 3 petites erreurs se glissent...

    infos :
    - nom de la ctrlist : photos.
    - je dispose de la variable cheminPhoto qui contient l'URL de la photo a afficher en miniature.

    voici mes erreurs :
    - error C2664: 'CWnd::Attach' : impossible de convertir le paramètre 1 de 'HIMAGELIST' en 'HWND'
    - error C2039: 'Add' : n'est pas membre de 'CListCtrl'
    - error C2664: 'CListCtrl::SetImageList' : impossible de convertir le paramètre 1 de 'CListCtrl *__w64 ' en 'CImageList *'


    Le mieux c'est que je vous colle ma fonction qui se charge de faire ça.


    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
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    void CphotographeIHMView::choisirRepSource()
    {
        CRect rect;
        photos.GetClientRect(&rect);
        int nColInterval = rect.Width()/5;
     
        photos.InsertColumn(0, _T("Item Name"), LVCFMT_LEFT, nColInterval*3);
        photos.InsertColumn(1, _T("Value"), LVCFMT_LEFT, nColInterval);
        photos.InsertColumn(2, _T("Time"), LVCFMT_LEFT, rect.Width()-4*nColInterval);
     
        HIMAGELIST hList = ImageList_Create(32,32, ILC_COLOR8 |ILC_MASK , 8, 1);
        photos.Attach(hList);
     
        CBitmap cBmp;
        cBmp.LoadBitmap(IDC_LIST_photos);
        photos.Add(&cBmp, RGB(255,0, 255));
        cBmp.DeleteObject();
     
        photos.SetImageList(&photos, LVSIL_NORMAL);
     
        LVITEM lvi;
     
        //récupération du circuit délectionné dans la comboBox
        CString circuitSelectionne ;
        int nIndex = circuit.GetCurSel();
        if(nIndex!=LB_ERR) circuit.GetLBText(nIndex,circuitSelectionne);
     
        //création d'un filtre pour la sélection des photos dans la CFileOpenDialog
        CString OpenFilter;
        OpenFilter = "Images (*.jpg)|*.jpg|";
     
        //création de la CFileOpenDialog
        CFileDialog FileOpenDialog
        (
            TRUE,
            NULL,
            NULL,
            OFN_ALLOWMULTISELECT|OFN_FILEMUSTEXIST|OFN_HIDEREADONLY|OFN_PATHMUSTEXIST,
            OpenFilter,        // filter
            this // the parent window
        );
     
        //création d'un buffer
        CString fileName;
        FileOpenDialog.GetOFN().lpstrFile = fileName.GetBuffer(20000);
        FileOpenDialog.GetOFN().nMaxFile = 20000;
     
        //BOOL rep = FileOpenDialog.DoModal();
        if(FileOpenDialog.DoModal()==IDOK)
        {
            int num= 1; //pour le numéro temporaire des photos.
            POSITION pos=FileOpenDialog.GetStartPosition();
            while(pos)
            {
                //récupération du chemin de la photo en cours
                CString cheminPhoto;
                cheminPhoto = FileOpenDialog.GetNextPathName(pos);
     
                //appel de la fonction legenderPhotos() de la classe photographeIHMDoc, elle est chargée de copier les photos dans un autre répertoire que celui ou                 //l'utilisateur a sélectionné les photos a traiter.
                GetDocument() -> lengenderPhotos(cheminPhoto, num, circuitSelectionne);
     
                //affichage de la photo dans la ctrlist
     
                // Insert the first item
                lvi.mask =  LVIF_IMAGE | LVIF_TEXT;
                cheminPhoto.Format(_T("Item %i"), num);
                lvi.iItem = num;
                lvi.iSubItem = 0;
                lvi.pszText = (LPTSTR)(LPCTSTR)(cheminPhoto);
                lvi.iImage = num%8;        // There are 8 images in the image list
                photos.InsertItem(&lvi);
                // Set subitem 1
                cheminPhoto.Format(_T("%d"), 10*num);
                lvi.iSubItem =1;
                lvi.pszText = (LPTSTR)(LPCTSTR)(cheminPhoto);
                photos.SetItem(&lvi);
                // Set subitem 2
                cheminPhoto.Format(_T("%s"),
                COleDateTime::GetCurrentTime().Format(_T("Created: %I:%M:%S %p, %m/%d/%Y")));
                lvi.iSubItem =2;
                lvi.pszText = (LPTSTR)(LPCTSTR)(cheminPhoto);
                photos.SetItem(&lvi);
                //photos.InsertItem(LVIF_TEXT|LVIF_STATE|LVIF_IMAGE, num, cheminPhoto,0, 0,0, 0);
     
                //incrémentation de num pour la numérotation automatique des photos.
                num++;
            }
        }
    }

    Quelqu'un peut m'aider svp ?

  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,
    normal attache c'est fait pour attacher un handle de fenêtre à l'objet fenêtre
    par une CImageList..
    CWnd::Attach
    BOOL Attach( HWND hWndNew );
    je te conseille de travailler avec une CImageList et d'utiliser la fonction
    Citation Envoyé par MSDN
    CListCtrl::SetImageList

    CImageList* SetImageList( CImageList* pImageList, int nImageList );
    Return Value
    A pointer to the previous image list.
    Parameters
    pImageList
    Pointer to the image list to assign.
    nImageList
    Type of image list. It can be one of these values:
    • LVSIL_NORMAL Image list with large icons.
    • LVSIL_SMALL Image list with small icons.
    • LVSIL_STATE Image list with state images.

Discussions similaires

  1. [GEF] Associer une image à une figure
    Par sanchou dans le forum Eclipse Platform
    Réponses: 3
    Dernier message: 13/04/2009, 01h12
  2. [GD] Erreur à l'affichage d'une image
    Par mimagyc dans le forum Bibliothèques et frameworks
    Réponses: 7
    Dernier message: 01/02/2008, 21h30
  3. VB erreur d'ouverture d'une image trop grande
    Par syldudu dans le forum Access
    Réponses: 2
    Dernier message: 04/01/2008, 16h18
  4. [MySQL] associer une image à une fiche
    Par gmorin dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 12/05/2007, 13h24
  5. [ImageMagick] Message d'erreur à la génération d'une image jpg
    Par DadaWeb dans le forum Bibliothèques et frameworks
    Réponses: 3
    Dernier message: 06/06/2006, 13h42

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