久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 4530|回復: 0
打印 上一主題 下一主題
收起左側

MFC的樹形控件怎么添加具有層次性的目錄

[復制鏈接]
跳轉到指定樓層
樓主
ID:77367 發表于 2015-4-18 20:58 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
我用一個access數據庫來管理圖片資源,需要對這些圖片進行歸門別類,開始在網上Google了很久都沒找到什么什么資料出來,不過自己整理出思路來了。。貼在這可以給需要的人看看。

一、設計數據庫
這里設計了兩張表tbCategores、tbPictures,如下圖所示

圖1 表tbCategores,IDCat是主鍵,自動編號,ParentID是目錄Categores的父目錄ID,為0表示沒有父目錄




圖2 表tbPictures存儲相應下的圖片,有IDCat(外鍵)表明當前圖片(IDpict)屬于哪個目錄


圖3 兩張表的關系

二、代碼
這里給出怎么將表tbCategores填充到Treectrl的代碼,其他代碼可以自行發揮!!

void CGalleryDlg::InitTree()
{

        CMedicalApp *pApp = (CMedicalApp *)AfxGetApp();
        m_treeImages.Create(16,16,ILC_MASK |ILC_COLOR32,3,3);

        m_treeImages.Add(pApp->LoadIcon(IDI_DB ));
        m_treeImages.Add(pApp->LoadIcon(IDI_FOLDER_YELLOW ));
        m_treeImages.Add(pApp->LoadIcon(IDI_FOLDER_YELLOW_OPEN ));
        m_treeFolder.SetImageList(&m_treeImages,TVSIL_NORMAL);

        ADOConn m_AdoConn;
        m_AdoConn.OnInitADOConn();
        CString sDBName = m_AdoConn.GetDBName();

        int i=sDBName.ReverseFind('\\');
        CString nFileText = _T("[") + sDBName.Mid(i+1) + _T("]");

        //insert item
        long                lItemTitle;
        CString                sItemTitle;
       
        // item created
        HTREEITEM        tiTestNode;
        HTREEITEM        tiParentNode;

        //insert root item
        TVINSERTSTRUCT tvInsert;
        tvInsert.hParent = NULL;
        tvInsert.hInsertAfter = NULL;
        tvInsert.item.mask = TVIF_TEXT;
        tvInsert.item.pszText = nFileText.GetBuffer();

        m_treeFolder.DeleteAllItems();
        HTREEITEM h_root=m_treeFolder.InsertItem(&tvInsert);


        //add categroes
        CString  sql;
        sql.Format(_T("select * from tbCategores order by No desc"));
        _RecordsetPtr   pRecordset;
        pRecordset = m_AdoConn.GetRecordset((_bstr_t)sql);

        while(!m_AdoConn.m_pRecordset->adoEOF)
        {
                _variant_t vIDCat, vCategores, vParentID;
                vIDCat = pRecordset->GetCollect("IDCat");
                vCategores= pRecordset->GetCollect("Categores");
                vParentID = pRecordset->GetCollect("ParentID");
               
                sItemTitle = (TCHAR*)(_bstr_t)vCategores;
                lItemTitle = vIDCat.lVal;

                // insert the node
                if(vParentID.vt != VT_NULL)
                        tiParentNode = FindItem((long)(vParentID.lVal));  //查找父節點

                if(vIDCat.lVal==0)
                {
                        tiTestNode = m_treeFolder.InsertItem(sItemTitle,1,2,h_root);
                        m_treeFolder.SetItemData(tiTestNode,lItemTitle);
                }
               
                //for the other nodes
                if( tiParentNode )
                {
                        tiTestNode = m_treeFolder.InsertItem(sItemTitle,1,2, tiParentNode);
                        m_treeFolder.SetItemData(tiTestNode, lItemTitle);
                }

                pRecordset->MoveNext();
        }

        m_treeFolder.Expand(m_treeFolder.GetRootItem(), TVE_EXPAND);

        m_treeFolder.EnableMultiSelect(FALSE);
        m_AdoConn.ExitConnect();
}

//查找某一個節點

HTREEITEM CGalleryDlg::FindItem(long lItemData)
{
        // the tree object
        // the current item
        HTREEITEM    tiItem= m_treeFolder.GetNextItem(TVGN_ROOT,TVGN_ROOT);
        long             lCurrentData;

        while (tiItem)
        {
                m_treeFolder.Expand(tiItem,TVE_EXPAND);

                lCurrentData = (long)m_treeFolder.GetItemData(tiItem);

                if( lCurrentData == lItemData )
                        return tiItem;
                tiItem= m_treeFolder.GetNextItem(tiItem,TVGN_NEXTVISIBLE);
        }

        return NULL;

}

下圖是填充目錄后的Treectrl。







分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 亚洲视频在线一区 | 久久国产一区二区 | 91色视频在线观看 | 97国产精品视频人人做人人爱 | 天天综合网永久 | 午夜电影网 | 日韩中文一区 | 国产精品久久久久久久久久久久 | 亚洲中午字幕 | 九九精品在线 | 国产一级精品毛片 | 国产女人精品视频 | 无吗视频 | 国产精品美女久久久久久免费 | 欧美一级二级三级视频 | 国产高清在线观看 | 久久夜色精品国产 | 亚洲性免费| 亚洲人成人一区二区在线观看 | 视频一区二区中文字幕 | 国产精品久久久久久影视 | 欧美成人一区二区三区片免费 | 又黄又爽的网站 | 欧美在线一区二区三区 | 亚洲网在线 | 天堂色综合 | 一区二区精品 | 一级a性色生活片久久毛片 一级特黄a大片 | 精品九九| 国产电影一区二区三区爱妃记 | 一区二区三区四区免费在线观看 | 国产网站在线 | 国产精品99久久久久久www | 91麻豆精品国产91久久久久久久久 | 午夜电影网址 | 久久久国产一区二区 | 黑人巨大精品欧美一区二区免费 | 国产玖玖| 91电影在线| 午夜影院在线免费观看视频 | 成人精品视频99在线观看免费 |