Visualizzazione dei risultati da 1 a 10 su 10
  1. #1
    Utente di HTML.it
    Registrato dal
    May 2007
    Messaggi
    168

    [C] Utilizzo di CListCtrl

    Ciao ragazzi sto facendo un'applicazione MFC dove utilizzo la classe in oggetto. Allora ho 2 problemi. Il primo è come inserire un immagine(presente sul mio hd,per ora va bene anche sempre la stessa) ad ogni item e ad ogni item assegnare un tooltip.
    Allora vi posto il codice da me utilizzato. Ditemi se ci sono errori e dove.
    Io quello che vedo è che l'immagine non si vede e il tooltip viene visto sempre l'ultimo ad ogni item,ma spostando di poco il mouse si vedono random anche gli altri.
    codice:
    imagelist = new CImageList();
    	
    HIMAGELIST hImageList = ::ImageList_LoadImage(AfxGetInstanceHandle(), _T("C:\\Foto.bmp"),64, 0,	RGB(255,0,255),	IMAGE_BITMAP, LR_LOADFROMFILE);
    if(hImageList != NULL)
    {
          imagelist->Attach(hImageList);
    }
    m_list.SetImageList(imagelist, LVSIL_SMALL);
    for(int i = 0; i<5;i++)
    {
    m_tooltip= new CToolTipCtrl();
    m_tooltip->Create(this);
    //***Create Item***//	
    LV_ITEM lvi;
    lvi.mask =  LVIF_IMAGE | LVIF_TEXT;
    lvi.iItem = i;
    lvi.iSubItem = 0;
    lvi.pszText = "PIPPO";
    lvi.iImage = 0;	
    m_list.InsertItem(&lvi);
    /////////////////////////////
    
    //***Create ToolTip to Item***//
    TOOLINFO ti;
    memset(&ti, 0, sizeof(TOOLINFO));
    ti.cbSize = sizeof(TOOLINFO);
    ti.lpszText = "PIPPO" + i;
    ti.hinst = AfxGetInstanceHandle();
    ti.hwnd = m_list.GetSafeHwnd();
    ti.uFlags = TTF_SUBCLASS | TTF_IDISHWND | TTF_TRANSPARENT ;
    ti.uId = (UINT) m_list.m_hWnd;
    m_tooltip->SendMessage(TTM_ADDTOOL, 0, (LPARAM) &ti);
    m_tooltip->SetDelayTime(2000,200);
    m_tooltip->SetTipBkColor(RGB(0xFF,0,0));
    m_tooltip->SetTipTextColor(RGB(0xFF,0xFF,0xFF));
    }
    p.s. m_list è di tipo CListCtrl*

    Grazie

  2. #2
    "LV_ITEM lvi" e "TOOLINFO ti", nascono e muoiono ad ogni iterazione: ma il loro indirizzo viene passato ad oggetti che "vivono" al di fuori dal ciclo "for". Leggansi: comportamento indefinito.
    ;-)

  3. #3
    Utente di HTML.it
    Registrato dal
    May 2007
    Messaggi
    168
    Originariamente inviato da MacApp
    "LV_ITEM lvi" e "TOOLINFO ti", nascono e muoiono ad ogni iterazione: ma il loro indirizzo viene passato ad oggetti che "vivono" al di fuori dal ciclo "for". Leggansi: comportamento indefinito.
    ;-)
    Quindi cosa devo fare?
    Come posso procedere?
    Grazie

  4. #4
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,470
    Devi usare dei puntatori agli oggetti e crearli con la new.
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  5. #5
    Utente di HTML.it
    Registrato dal
    May 2007
    Messaggi
    168
    Originariamente inviato da oregon
    Devi usare dei puntatori agli oggetti e crearli con la new.
    Quindi ad ogni ciclo ne alloco uno?
    E quando li distuggo?

  6. #6
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,470
    Li distruggi quando non ti servono piu' ... non posso dirti quando questo succedera' ...
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  7. #7
    Utente di HTML.it
    Registrato dal
    May 2007
    Messaggi
    168
    Originariamente inviato da oregon
    Li distruggi quando non ti servono piu' ... non posso dirti quando questo succedera' ...
    Provato ma niente..
    Uffa xke?

  8. #8
    Utente di HTML.it
    Registrato dal
    May 2007
    Messaggi
    168
    Originariamente inviato da oregon
    Devi usare dei puntatori agli oggetti e crearli con la new.
    Ti posto il nuovo codice all'interno del ciclo for.
    codice:
    		
                              m_tooltip= new CToolTipCtrl();
                          	m_tooltip->Create(this);
    
    		LV_ITEM* lvi = new LV_ITEM;
    		memset(lvi, 0, sizeof(LV_ITEM));
    		lvi->mask =  LVIF_IMAGE | LVIF_TEXT;
                              lvi->iItem = i;
                              lvi->iSubItem = 0;
                              lvi->pszText = "PIPPO";
                              lvi->iImage = 0;	
    		m_list.InsertItem(lvi);
    
    		TOOLINFO* ti = new TOOLINFO;
    		
    		memset(ti, 0, sizeof(TOOLINFO));
    		ti->cbSize = sizeof(TOOLINFO);
                              ti->lpszText = "PIPPO" + i;
    		ti->hinst = AfxGetInstanceHandle();
    		ti->hwnd = m_list.GetSafeHwnd();
    		ti->uFlags = TTF_SUBCLASS | TTF_IDISHWND | TTF_TRANSPARENT ;
    		ti->uId = (UINT) m_list.m_hWnd;
    		m_tooltip->SendMessage(TTM_ADDTOOL, 0, (LPARAM) ti);
    		m_tooltip->SetDelayTime(2000,200);
    		m_tooltip->SetTipBkColor(RGB(0xFF,0,0));
    		m_tooltip->SetTipTextColor(RGB(0xFF,0xFF,0xFF));
    Niente da fare. Come se associasse i tool tip al controllo CListCtrl e non hai singoli Item.
    Qualcuno mi può aiutare?
    Grazie

  9. #9
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,470
    Non ho capito cosa succede ... quale problema hai ... tu lo saprai bene ma se non lo spieghi dettagliatamente, non so neanche di cosa stiamo parlando ...
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  10. #10
    Utente di HTML.it
    Registrato dal
    May 2007
    Messaggi
    168
    Originariamente inviato da oregon
    Non ho capito cosa succede ... quale problema hai ... tu lo saprai bene ma se non lo spieghi dettagliatamente, non so neanche di cosa stiamo parlando ...
    L'item non ha un tooltip proprio,o meglio. Su tutti gli item viene associato l'ultimo,ma spostando di poco il mouse si vedono random anche gli altri associati...
    Ad esempio:

    pippo1 pippo2 pippo3 pippo4 pippo5

    Se metto il mouse su qls pippo lui mi fa vedere il tooltip associato a pippo5, ma se abbasso di poco il mouse mi fa vedere "randomicamente" gli altri.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.