它能指定数据类型吗?
我ListCtrl的列中有CString,int,float,bool等数据类型,用什么方法可将它们分别读出来?

解决方案 »

  1.   

    DWORD型的数据当然不能指定成CString、float等类型了。但是可以把一个指针转换成DWORD值,这样每个项就可以带一大堆数据了,看一下一个MFC的框架:
    struct TMP
    {
        CString mpStr;
        int     mpInt;
        float   mpFlt;
        bool    mpB;
    };TMP* pTmp = new TMP;
    //...
    XXXX.SetItemData(i, (DWORD)pTmp);
    //...//...
    TMP* p = (TMP*)XXXX.GetItemData(i);
    //...
    //delete memory
      

  2.   

    ItemData is additional data associated with each row, normally, you will put a pointer there using SetItemDataWhat you want is probably the text displayed. To get the row text, tryCString GetItemText( int nItem, int nSubItem )for exampleCString s = YourListCtrl.GetItemText(3,0);//fourth row, first columnint i = atoi(s);double d = atof(s);
      

  3.   

    to: GaoDi()TMP* p = (TMP*)XXXX.GetItemData(i);取数据行不成功是什么原因?p返回0
      

  4.   


    int i=0; // <---------------------- note!XXXX.SetItemData(i, (DWORD)pTmp);
    ...
    TMP* p = (TMP*)XXXX.GetItemData(i);