知识大全 VC控件 TreeCtrl 与 ListCtrl 演示

Posted 函数

篇首语:每个牛逼的人,都有一段苦逼的坚持。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 VC控件 TreeCtrl 与 ListCtrl 演示相关的知识,希望对你有一定的参考价值。

VC控件 TreeCtrl 与 ListCtrl 演示  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

    这个例子类似于 Windows 的资源管理器 程序运行界面如图一所示 主要用到的类有 CListCtrl CTreeCtrl CImageList CFileFind 和函数SHGetFileInfo() 简述步骤如下 增加 TreeCtrl 的 TVS_HASBUTTONS TVS_HASLINES TVS_LINESATROOT Style 代码如下   DWORD dwStyle = GetWindowLong(m_tree m_hWnd GWL_STYLE);   dwStyle |= TVS_HASBUTTONS | TVS_HASLINES | TVS_LINESATROOT;   SetWindowLong(m_tree m_hWnd GWL_STYLE dwStyle); 为TreeCtrl添加Root项    m_hRoot = m_tree InsertItem( 我的电脑 );    InsertItem()的函数原形为    HTREEITEM InsertItem( LPCTSTR lpszItem HTREEITEM hParent = TVI_ROOT    HTREEITEM hInsertAfter = TVI_LAST );    获取本地逻辑驱动器 并添加   void CTreeViewDlg::GetLogicalDrives(HTREEITEM hParent)         size_t szAllDriveStrings = GetLogicalDriveStrings( NULL); char *pDriveStrings = new char[szAllDriveStrings + sizeof(_T( ))]; GetLogicalDriveStrings(szAllDriveStrings pDriveStrings); size_t szDriveString = strlen(pDriveStrings); while(szDriveString > ) m_tree InsertItem(pDriveStrings hParent); pDriveStrings += szDriveString + ; szDriveString = strlen(pDriveStrings);        添加TVN_EXPANDED消息处理函数 当一项展开时 为其子项添加下一级目录   void CTreeViewDlg::OnItemexpandedTree(NMHDR* pNMHDR LRESULT* pResult)    NM_TREEVIEW* pNMTreeView = (NM_TREEVIEW*)pNMHDR; // TODO: Add your control notification handler code here TVITEM item = pNMTreeView >itemNew; if(item hItem == m_hRoot) return;     HTREEITEM hChild = m_tree GetChildItem(item hItem); while(hChild) AddSubDir(hChild); hChild = m_tree GetNextItem(hChild TVGN_NEXT); *pResult = ;     AddSubDir函数功能添加子项 具体代码见示例 添加TVN_SELCHANGED消息处理函数 在这个函数里 用GetFullPath()取得选中项的绝 路径(GetFullPath()具体代码看示例) 在ListCtrl中添加文件而非文件夹的图标    void CTreeViewDlg::OnSelchangedTree(NMHDR* pNMHDR LRESULT* pResult)    m_list DeleteAllItems(); NM_TREEVIEW* pNMTreeView = (NM_TREEVIEW*)pNMHDR; TVITEM item = pNMTreeView >itemNew; if(item hItem == m_hRoot) return; CString str = GetFullPath(item hItem);     if(str Right( ) != \\\\ )   str += \\\\ ; str += * * ; CFileFind file; BOOL bContinue = file FindFile(str); while(bContinue) bContinue = file FindNextFile(); if(!file IsDirectory() && !file IsDots())    SHFILEINFO info; CString temp = str; int index = temp Find( * * ); temp Delete(index );    SHGetFileInfo(temp + file GetFileName()       &info sizeof(&info)    SHGFI_DISPLAYNAME | SHGFI_ICON);    int i = m_ImageList Add(info hIcon);    m_list InsertItem(i info szDisplayName i); *pResult = ;        这只是一个简单的例子 你可以在 ListCtrl 中添加鼠标双击消息的处理函数 用 Process 打开该选中的文件; 该示例在VC xp下编译通过   VC初学者 如有不足之处 请来信指教(way) cha138/Article/program/net/201311/12063

相关参考

知识大全 使用 VC.net 轻松实现按钮控件自绘

使用VC.net轻松实现按钮控件自绘  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  使用&nbs

知识大全 VC++与MATLAB混合编程及其应用

VC++与MATLAB混合编程及其应用  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! &

知识大全 VC预处理指令与宏定义的妙用

VC预处理指令与宏定义的妙用  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  刚接触到MFC编程的

知识大全 MySQL数据库接口的VC实现与应用(1)

MySQL数据库接口的VC实现与应用(1)  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  引言 

知识大全 VC++ 6.0中实现三叉切分窗口与多视图

VC++6.0中实现三叉切分窗口与多视图  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  一引用 

白癜风和VC有哪些关系呢

大家都知道白癜风患者的身上会有明显的白斑,而我们身上之所以颜色不是白色的是因为我们皮肤中有黑色素。患者身上的白斑就是因为局部缺乏黑色素的结果。那么我们常常提到的VC又与白斑的形成及黑色素有什么关联呢?

白癜风和VC有哪些关系呢

大家都知道白癜风患者的身上会有明显的白斑,而我们身上之所以颜色不是白色的是因为我们皮肤中有黑色素。患者身上的白斑就是因为局部缺乏黑色素的结果。那么我们常常提到的VC又与白斑的形成及黑色素有什么关联呢?

知识大全 MFC中动态控件的创建与响应

MFC中动态控件的创建与响应  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  动态控件是指在需要时

知识大全 ajax与服务器控件

  ajax(就是用javascript异步请求xml(可以直接理解为文本)说白了就是请求文本只不过这种文本有一定的规范和格式但有些时候要更新的是服务器控件要请求的也是服务器控件不是文本怎么办!  可

牛皮癣患者补充VC对治疗很有帮助

很多朋友认为维生素c可以治疗牛皮癣,专家指出,vc本身并不能治疗牛皮癣,但是,合理的补充维生素c则有助于牛皮癣患者的治疗与康复。由牛皮癣患者由于鳞屑脱落时流失了大量维生素C等微量元素,这一点是事实。所