|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Junior Member
Iscritto dal: May 2003
Messaggi: 10
|
Bitmap a toni di grigio in listview
Salve, grazie ai consigli del forum sono riuscito a realizzare una versione funzionante di una finestra che consente di scorrere delle immagini contenute in una directory. Il codice che riporto sotto (e che per il momento visualizza n volte una stessa immagine) funziona perfettamente ma non quando si caricano delle immagini in toni di grigio (BMP ad 8 bit per la precisione).
Codice:
if (GetFolder(&directorydaelaborare, "Selezionare la directory...", NULL, NULL, NULL)) { int index =0; SetDlgItemText(hDlg,IDC_NOMEDIRECTORY, directorydaelaborare); CFileFind finder; CString strWildcard(directorydaelaborare); strWildcard.TrimRight("\\"); // Slow but sure strWildcard += _T("\\*.BMP"); BOOL bWorking = finder.FindFile(strWildcard); CStringArray elencofiles; m_TopImage = ImageList_Create(313, 26, ILC_COLOR, 0, 1000); HBITMAP bmp; ListView_SetImageList(GetDlgItem(hDlg,IDC_LIST1),m_TopImage ,LVSIL_NORMAL); lvi.mask= LVIF_IMAGE |LVIF_TEXT | LVIF_PARAM; lvi.iSubItem=0; lvi.lParam =0 ; int indice = 0; while (bWorking) { BITMAP stBitmap; HBITMAP miaimmagine = NULL; miaimmagine = (HBITMAP)LoadImage(NULL, "c:\\img0001.bmp", IMAGE_BITMAP, 0, 0, LR_CREATEDIBSECTION | LR_LOADFROMFILE | LR_DEFAULTSIZE); //LR_CREATEDIBSECTION | int verifica = 0; verifica = ImageList_Add(m_TopImage,(HBITMAP)miaimmagine,(HBITMAP)RGB( 255, 255, 255 )); bWorking = finder.FindNextFile(); if (finder.IsDots()) continue; if (finder.IsDirectory()) continue; //salta '.', '..' e directory //CString str = finder.GetFilePath(); CString str = finder.GetFileName(); elencofiles.Add(str); SendMessage(h_Elencofiles, LB_ADDSTRING, 0, (LPARAM) (LPCTSTR) str); lvi.pszText = str.GetBuffer(str.GetLength()); lvi.iImage = indice; //1,2 ListView_InsertItem(GetDlgItem(hDlg,IDC_LIST1), &lvi); indice++; } finder.Close(); UpdateWindow(GetDlgItem(hDlg,IDC_LIST1)); }// if getfolder non vuota
__________________
![]() ![]() ![]() |
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 20:26.