Vc++ 控件List Control用法总结
发布时间:2020-12-16 03:31:24 所属栏目:百科 来源:网络整理
导读:1.新建对话框MFC,在对话框上放一个ListCtrl ID:IDC_PATH View:Report 2.为ListCtrl添加变量 右击-添加变量m_wndPath 3.找到OnInitDialog()函数添加如下代码: // TODO: 在此添加额外的初始化代码m_wndPath.DeleteAllItems();//清空m_wndPath.InsertColumn(0,
1.新建对话框MFC,在对话框上放一个ListCtrl ID:IDC_PATH View:Report 2.为ListCtrl添加变量 右击->添加变量m_wndPath 3.找到OnInitDialog()函数添加如下代码: // TODO: 在此添加额外的初始化代码 m_wndPath.DeleteAllItems();//清空 m_wndPath.InsertColumn(0,_T("项目"));//添加列 m_wndPath.InsertColumn(1,_T("所在路径")); m_wndPath.SetColumnWidth(0,150);//设置列宽 m_wndPath.SetColumnWidth(1,350); m_wndPath.SetRedraw(FALSE);//防止重绘 int nIndex; //char|TCHAR项目属性->字符集:使用多字节字符集 TCHAR Path[MAX_PATH+1];//TCHAR取代char MAX_PATH最长路径 nIndex=m_wndPath.InsertItem( 0,_T("Windows目录") ); if( nIndex < 0 ) return TRUE; GetWindowsDirectory(Path,MAX_PATH);//取得windows目录 m_wndPath.SetItemText( nIndex,1,Path ); LPITEMIDLIST pidl;//桌面CSIDL_DESKTOPDIRECTORY //用来得到系统的某些特定文件夹的位置信息 if(SUCCEEDED(SHGetSpecialFolderLocation(NULL,CSIDL_DESKTOPDIRECTORY,&pidl))) { if(SHGetPathFromIDList(pidl,Path))//功能是把项目标志符列表转换为文档系统路径 { nIndex=m_wndPath.InsertItem( 0,_T("桌面"));//成功则返回0 if( nIndex < 0 ) { return TRUE; } m_wndPath.SetItemText( nIndex,Path ); } } m_wndPath.SetRedraw(TRUE);//显示 return TRUE; // 除非将焦点设置到控件,否则返回 TRUE 4.char被TCHAR取代,若要用则: 项目属性->字符集:使用多字节字符集 参考代码: 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_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,Path ); nIndex=m_wndPath.InsertItem( 0,"System目录" ); if( nIndex < 0 ) return TRUE; GetSystemDirectory(Path,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,Path ); } pShellMalloc->Free(pidl); } pShellMalloc->Release(); } } m_wndPath.SetRedraw(TRUE); 以上所述就是本文的全部内容了,希望大家能够喜欢。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容