本帖最后由 babybluekyo 于 2014-12-30 11:01:12 编辑

解决方案 »

  1.   

    msdn 上查到,对于虚拟列表 LVM_GETITEMTEXT 不支持虚拟列表 怎么才能取到已显示数据啊LVM_GETITEMCOUNT 正常返回了列表行数
      

  2.   

    对虚拟列表发送 LVM_SETITEMSTATE 也能选定指定行,就是取text搞不定,晕死了
      

  3.   

    向 hWnd_List 的父窗口发送过 WM_NOTIFY 用的是LVN_GETDISPINFO
    -----------------------------------------------------------------------------------------------------------
    你还是按照这个思路来吧:比如列表控件的HWND=hWndList NMLVDISPINFO Info = {0};
    Info.hdr.hwndFrom = hWndList;     //一定要设置为列表控件的窗口句柄
    Info.hdr.code = LVN_GETDISPINFO; Info.item.mask = LVIF_TEXT;
    Info.item.iItem = 3;                      //行
    Info.item.iSubItem = 1;                //列
    Info.item.cchTextMax = 32;
    Info.item.pszText = new TCHAR[32];
    memset(Info.item.pszText,0,sizeof(TCHAR)*32);
    ::SendMessage(hWndList,WM_NOTIFY,(WPARAM)m_hWnd,(LPARAM)&Info); //向列表控件窗口发送消息

    TCHAR szBuff[256] = {0};
    lstrcpy(szBuff,Info.item.pszText);
    delete []Info.item.pszText;
    Info.item.pszText = NULL;
      

  4.   

    http://www.cnblogs.com/hongfei/p/3458237.html
      

  5.   

    “在同一个进程当中是可以的,GetItemText(IItem,ISubItem,text,260)
    跨进程我不行”因为那个 text 不能跨进程, 
      

  6.   

    那个text占的空间得在目标进程里分配
      

  7.   


    结贴了,使用lvn_getdispinfo是正确的,我一开始也使用过这个消息,后来跟踪原程序的消息,确定是程序扩展了info结构体,转入了自已的数据结构进行填充,没办法,只能枚举。感谢各位了!