Vordefinierte Tabelle in WinApi?



  • srry das ich so lange nichts mehr geschrieben habe aber ich war die letzten Tage ziemlich im Stress. Ich kriege den Kram einfach nicht hin könnte jemmand von euch meinen Code mal so verbessern das es funktioniert. In der MSDN benutzten die nämlich so ein komisches Array, dann ist mir noch aufgefallen das WM_NOTIFY scheinbar keine Funktionen aufruft und auch nichts zurückgibt, was bringt mir dann WM_NOTIFY. Das beste ist wohl wirklich, das ihr meinen Code einfach mal ergänzt.



  • na gut. so müsste es in etwa funktionieren 😉

    // würde ich, auch wenn es keiner schöner stil, global machen
    TEST test[5]; // bsp fünf
    
    // WM_CREATE oder sonst irgendwo im init code
    
    // TODO: füllen von test
    
    // index = index im array
    
    LV_ITEM lvI;        
    int	iSubItem;
    
    lvI.mask	= LVIF_TEXT | LVIF_PARAM | LVIF_STATE;
    lvI.state	= 0;      
    lvI.stateMask	= 0;  
    lvI.iItem	= index;
    lvI.iSubItem	= 0;
    lvI.pszText	= LPSTR_TEXTCALLBACK; 
    lvI.cchTextMax	= MAX_PATH;
    lvI.lParam	= (LPARAM)&test[index];
    
    ListView_InsertItem(GetDlgItem(hwnd, LB_LIST), &lvI);
    
    for(iSubItem = 1; iSubItem < 3; iSubItem++)
    {
        ListView_SetItemText(
    	GetDlgItem(hwnd, LB_LIST) 
    	index, 
    	iSubItem, 
    	LPSTR_TEXTCALLBACK);
    }
    
    // ----------------
    case WM_NOTIFY:
        switch(wParam)
        {
    	case LB_LIST:
                {
                    LV_DISPINFO *pLvdi = (LV_DISPINFO *)lParam;
                    TEST *pTest = (TEST*)(pLvdi->item.lParam);
    
                    switch(pLvdi->hdr.code)
            	{
    	            case LVN_GETDISPINFO:
    			switch(pLvdi->item.iSubItem)
    			{
        			    case 0:   
    				    pLvdi->item.pszText = pTest->xy1;                                            
                                    break;
       			    case 1:  
    				    pLvdi->item.pszText = pTest->xy2;                                           
    				break;
       			    case 2:  
    				    pLvdi->item.pszText = pTest->xy3;                                           
    				break;
    			    default:
            			break;
    			}
    			break;
            	  }
                }
    	    break;
        }
        break;
    

    hab ich grad noch gefunden
    http://www.win-api.com/index.php?content=resources&mode=3&stat=res


Anmelden zum Antworten