为什么总是没人理我?
我可是每次都给了分的呀

解决方案 »

  1.   

    嘻嘻,我告诉你,把分给我吧。等会儿,我找找看,好像有现成的。
    不过这种问题,劝你多看点儿书
      

  2.   

    这是一个例子代码,将就着看吧,它将获取系统所有特殊文件夹的目录
    //CListCtrl m_wndPath
    m_wndPath.DeleteAllItems();
    m_wndPath.InsertColumn(0,"项目");
    m_wndPath.InsertColumn(1,"所在路径");
    m_wndPath.SetColumnWidth(0, 150);
    m_wndPath.SetColumnWidth(1, 350);
    m_wndPath.SetRedraw(FALSE);

    int nIndex;
    const int nFolder[]={ CSIDL_ALTSTARTUP,CSIDL_APPDATA,CSIDL_BITBUCKET,CSIDL_COMMON_ALTSTARTUP,
    CSIDL_COMMON_DESKTOPDIRECTORY,CSIDL_COMMON_FAVORITES,CSIDL_COMMON_PROGRAMS,
    CSIDL_COMMON_STARTMENU,CSIDL_COMMON_STARTUP,CSIDL_CONTROLS,CSIDL_COOKIES,
    CSIDL_DESKTOP,CSIDL_DESKTOPDIRECTORY,CSIDL_DRIVES,CSIDL_FAVORITES,CSIDL_FONTS,
    CSIDL_HISTORY,CSIDL_INTERNET,CSIDL_INTERNET_CACHE,CSIDL_NETHOOD,CSIDL_NETWORK,
    CSIDL_PERSONAL,CSIDL_PRINTERS,CSIDL_PRINTHOOD,CSIDL_PROGRAMS,CSIDL_RECENT,
    CSIDL_SENDTO,CSIDL_STARTMENU,CSIDL_STARTUP,CSIDL_TEMPLATES };
    const CString strFolderName[]={ "CSIDL_ALTSTARTUP","CSIDL_APPDATA","回收站","CSIDL_COMMON_ALTSTARTUP",
    "CSIDL_COMMON_DESKTOPDIRECTORY","CSIDL_COMMON_FAVORITES","CSIDL_COMMON_PROGRAMS",
    "CSIDL_COMMON_STARTMENU","CSIDL_COMMON_STARTUP","控制面板","CSIDL_COOKIES",
    "CSIDL_DESKTOP","桌面","我的电脑","收藏夹","字体",
    "历史纪录","CSIDL_INTERNET","CSIDL_INTERNET_CACHE","网上邻居","CSIDL_NETWORK",
    "我的文档","打印机","CSIDL_PRINTHOOD","程序组","最近打开的文档",
    "发送","任务条启动菜单目录","启动目录","临时文档" }; char Path[MAX_PATH+1];
    nIndex=m_wndPath.InsertItem( 0,"Windows目录" );
    if( nIndex < 0 ) return TRUE;
    GetWindowsDirectory(Path,MAX_PATH);
    m_wndPath.SetItemText( nIndex, 1, Path ); nIndex=m_wndPath.InsertItem( 0,"System目录" );
    if( nIndex < 0 ) return TRUE;
    GetSystemDirectory(Path,MAX_PATH);
    m_wndPath.SetItemText( nIndex, 1, Path ); int i,count=sizeof(nFolder)/sizeof(int);
    for(i=0;i<count;i++)
    {
    LPITEMIDLIST pidl;
    LPMALLOC pShellMalloc; if(SUCCEEDED(SHGetMalloc(&pShellMalloc)))
    {
    if(SUCCEEDED(SHGetSpecialFolderLocation(NULL,
    nFolder[i],&pidl)))
    {
    if(SHGetPathFromIDList(pidl, Path))
    {
    nIndex=m_wndPath.InsertItem( 0,strFolderName[i] );
    if( nIndex < 0 )
    {
    pShellMalloc->Free(pidl);
    pShellMalloc->Release();
    return TRUE;
    }
    m_wndPath.SetItemText( nIndex, 1, Path );
    }
    pShellMalloc->Free(pidl);
    }
    pShellMalloc->Release();
    }
    }
    m_wndPath.SetRedraw(TRUE);