




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、LVS.ICON:为每个item显不大图标LVS_SMALLICON:为每个item显不小图标LVS.LIST:显示一列带有小图标的itemLVS_REPORT:显示item详细资料直观的理解:叭ndw资源管理器,查看标签下的大图标,小图标,列表,详细资料”2.设置listctrl 风格及扩展风格LONG IStyle;IStyle = GetWi ndowL on g (m_list. m_hWnd, GWL_STYLE) ; ,f耳Z 当刖窗口 styleIStyle &二、LVS_TYPEMASK; /j青除显示方式位IStyle != LVS_REPORT; / 设置 styleSet
2、WindowLong(m_list. m_hWnd, GWL_STYLE, IStyle);/设 置 styleDWORD dwStyle = m_list. GetExte ndedStyle ();dwStyle |= LVS.EX.FULLROWSELECT; ,f与report风格的 listctrl )dwStyle |= LVS_EX.GRIDLINES; listetri )dwStyle |= LVS_EX_CHECKBOXES:/itemm_listSetExte ndedStyle(dwStyle); /选中某行使整行高亮(只适用网格线(只适用与 report 风格的刖生成
3、checkbox控件设置扩展风格注 :listview 的 style 请查阅 msdnhttp:/msd n. microsoftcom/1ibrary/defaultasp?url=/library/e nus/wceshellui5/html/wce501rflistviewstyles asp插入列“ 11插入;行jacky 设置数据3. 插入数据m.list. I nsertColu mn( 0, ID: LVCFMT_LEFT, 40 ) ;/m.list. I nsertColum n( 1, NAME: LVCFMT.LEFT, 50 );int n Row = m_l ist
4、I nsertltem(0,m_listSetltemText( nRow, 1,4. 直选中item选中style中的Show select ion always,或者在上而第2点中设置LVS.SHOWSELALWAYS5. 选中和取消选中一行int nln dex = 0;选中SetltemState(nlndex, LVIS.SELECTED LVIS.FOCUSED, LVIS.SELECTED LVIS.FOCUSED);/取消选中m.list. SetltemState(nlndex, 0, LVIS.SELECTED LVIS.FOCUSED);6. 得到listctrl中所有彳
5、丁的checkbox的状态SetExtendedStyle(LVS_EX_CHECKBOXES);CString str;for (int i二0; iGetltemCou nt 0;12. 删除所有列方法一:while ( m_list.DeleteColumn (0)因为你删除了第一列后,后面的列会依次向上移动。方法一:int nColumns = 4;for (int i二nColumns-1; i=0; i一一) m_listDeleteColumn (i);void13. 得到单击的listctrl的行列号添加 listctrl 控件的NM.CLICK消息相应函数CTest6Dlg:
6、OnClickListl(NMHDR* pNMHDR, LRESULT* pResult) /方法一:/*DWORD dwPos = GetMessagePosO ;CPoint point( LOWORD(dwPos), HIWORD(dwPos); ScreenToClient(&point);LVHITTESTINFO lvinfo; lvinfo. pt 二 point; lvinfo. flags = LVHT.ABOVE;int nltem = m_listSubltemHitTest(&lvinfo); if(nltem != -1)CString strtemp;strtemp
7、. Format C 单击的是第 %d仃笫 %d列、 Ivinfo. iltem, lvinfo. iSubltem);AfxMessageBox(strtemp);*/方法二:/*NM.LISTVIEW* pNMListView = (NM_LISTVIEW*)pNMHDR; if (pNMListVieiItem !二 T)(CString strtemp; strtemp. Format C -单击的兄S.弔 %d 彳弟 %d 歹U 、pNMListViei11em,pNMListViei Sub Item);AfxMessageBox(strtemp);/*pResult=0;14.判
8、断是否点击在listctrl的checkbox上 添加 listctri 控件的NM.CLICK消息相应函数void CTest6Dlg:0nClickListl(NMHDR* pNMHDR, LRESULT* pResult) 1DWORD dwPos = GetMessagePos0;CPoint point( L0W0RD(dwPos), HIWORD(dwPos); ScreenToClient(&point);LVHITTESTINFO lvinfo; lvinfo.pt = point; lvinfo. flags 二 LVHTABOVE;UINT nFlag;int nltem
9、二 m_listHitTest(point, &nFlag);/ 判断是否点在 checkbox 上 if(nFlag = LVHT.ONITEMSTATEICON)AfxMessageBox (listctrl 白勺checkbox:*pResult = 0;15.右键点击listctrl的item弹出采单 添加 listetri 控件的NNLRCLICK消息相应函数 voidCTest6Dlg::OnRclickListl(NMHDR* pNMHDR, LRESULT* pResult)NM.LISTVIEW* pNMListView = (NM_LISTVIEW*)pNMHDR; if(
10、pNMListView-iItem != T)DWORD dwPos = GetMessagePos0;CPoint point ( LOWORD(dwPos), HIWORD(dwPos);CMenu menu;VERIFY ( menu. LoadMenu ( IDRJIENU1 );CMenu* popup 二 menu. GetSubMenu(O);ASSERT( popup != NULL ); popup-TrackPopupMenu(TPM_LEFTALIGN ITPM.RIGHTBUTTON, point, x, point, y, this );)*pResult = 0;1
11、6. item切换焦点时(包括用键盘和鼠标切换item时),状态的一些 变化顺序添加listctrl控件的LVN_ITEMCHANGED消息相应函数void CTest6叽g::OnItemchangedListl(NMHDR* pNMHDR,LRESULT* pResult)NM.LISTVIEW* pNMListView 二(NM_LISTVIEW*)pNMHDR;/ TODO: Add your control notification handler code hereCString sTemp;if (PNMListVieu01dState & LVIS.FOCUSED)=LVIS.
12、FOCUSED &(PNMListView-uNewState & LVIS.FOCUSED) = 0)iItem);)else if(pNMListView-u01dState & LVIS.FOCUSED) = 0 & (pNMListVieuNewState & LVISFOCUSED)=LVIS.FOCUSED)sTemp Format (,z%d got focus, pNMListView-iItem);)if (pNMListVieu01dState & LVIS.SELECTED)二二 LVIS.SELECTED &(PNMListView-uNewState & LVIS.S
13、ELECTED) = 0)sTemp Format ($d losted selected, pNMListView-iltem);else if(pNMListView-u01dState & LVIS.SELECTED) = 0 &(PNMListView-uNewState & LVIS_SELECTED)= LVIS.SELECTED)sTemp Format ($d got selected, pNMListView-iltem);*pResult = 0;17. 得到另亠个进程里的listctrl控件的item内容http:/www. codeproject com/threads
14、/int64 memstea 1 asp18. 选中 listview 中的 itemQ131284: How To Select a Listview Item Programmatically http:/supportmicrosofteom/kb/131284/e nus19. 如何在CListView中使用CListCtrl的派生类http:/www codeguru. com./cpp/co ntrols/listview/i ntroductio n/article ph p/c919/20. listctrl 的 subitem 添加图标m_list. SetExte nded
15、Style (LVS_EX_SUBITEMIMAGES) ; m_list. Setltem(. .) ; / 具;参1 数?请参:考* msdn21.在CListCtrl 显示文件,并根据文件类型来显示图标网上找到的代码 9 shareBOOL CTest6Dlg: :0 nln itDialogOCDialog: :0 nln itDialogO ;HIMAGELIST himlSmall;HIMAGELIST himlLarge;SHFILEINFO sfi;char cSysDirMAX_PATH;CStri ng strBuf;memset(cSysDir, 0, MAX_PATH)
16、;GetWi ndowsDirectory(cSysDir, MAX_PATH);strBuf = cSysDir;V)+i );spri ntf (cSysDir,strBuf Left (strBuf Fi nd(himlSmall = (HIMAGELIST)SHGetFilei nfo (LPCSTR)cSysDir,0,&sfi, sizeof(SHFILEINFO),SHGFI.SYSICONINDEX SHGFI_SMALLICON );himlLarge = (HIMAGELIST)SHGetFilel nfo(LPCSTR)cSysDir,0,&sfi,sizeof(SHFI
17、LEINFO),SHGFI.SYSICONINDEX SHGFI.LARGEICON);if (himlSmall & himlLarge):Se ndMessage(mist. m_hW nd, LVM_SETIMAGELIST,(WPARAM)LVSIL.SMALL, (LPARAM)himlSmall);:Se ndMessage(mist.m.hW nd, LVM_SETIMAGELIST,(WPARAM)LVSIL_NORMAL, (LPARAM)himlLarge);return TRUE; / return TRUEuni ess you set the focus to aco
18、ntrolvoid CTest6Dlg::AddFiles(LPCTSTR IpszFileName, BOOLbAddToDocume nt)int nlco n - Getlco nln dex(IpszFileName, FALSE, FALSE):CStri ng strSize;CFileFind filefind;/ get file sizeif (filefind FindFile(IpszFileName)(filefind FindNextFile () ; strSize Formatfilefind GetLengthO);elsestrSize = 0;/ split
19、 path and filenameCString strFileName = IpszFileName;CString strPath;int nPos = strFileName ReverseFindC*);if (nPos != -1)strPath = strFileName.Left(nPos); strFileName = strFileNameHid(nPos + 1);/ insert to listint nltem 二 m_list.GetItemCount(); m_listInsertltem(nItem, strFileName, nlcon); m_listSet
20、ltemText(nItem, 1, strSize); SetltemText(nltem, 2, strFileName Right(3); m_list SetltemText(nltem, 3, strPath);int CTest6Dlg:GetIconindex(LPCTSTR IpszPath, BOOL bisDir, BOOL bSelected)SHFILEINFO sfi;memset(&sfi, 0, sizeof(sfi);if (bisDir)SHGetFilelnfo(IpszPath,FILE_ATTRIBUTE_DIRECTORY,&sfi,sizeof(sf
21、i),SHGFI.SMALLICON I SHGFI.SYSICONINDEX SHGFI.USEFILEATTRIBUTES (bSelected ? SHGFI.OPENICON :0);retur nsfi. ilc on; else SHGetFilelnfo (IpszPath,FILE_ATTRIBUTE_NORMAL,&sfi,sizeof(sfi),SHGFI.SNfALLICON ! SHGFI.SYSICONINDEX ! SHGFI.USEFILEATTRIBUTES (bSelected ? SHGFI.OPENICON0);retur nsfi.ilc on;retu
22、rn T;22. listctrl内容进行大数据量更新时,避免闪烁m_list SetRedraw(FALSE);/更新内容 SetRedraw(TRUE) ; m ist1 nvalidateO; m_list UpdateWi ndow();http:/msd n. microsoftcom/library/defaultasp?url=/libr3:ry/e nus/vclib /html/mfc cwnd 338 setredraw asp23. listctrl 排序Q250614 : How To Sort Items in a CListCtrl in Report View h
23、ttp:/support.microsofteom/kb/250614/e nus24. 在listctrl 中选中某个 item时动态改变其icon或bitmapQ141834: How to change the icon or the bitmap of a CListCtrl item inVisual C+http:/support.microsoft eom/kb/141834/e nus25. 在添加item后,再InsertColumn()后导致整列数据移动的问题Q151897: CListCtrl:InsertColumn0 Causes Column Data to Shi
24、fthttp:/support.microsoft eom/kb/151897/e nus26. 关于listctrl第一列始终居左的问题解决办法:把第一列当一个虚列,从第二列开始插入列及数据,最后删除第一列。具体解释参阅 http:/msd n. microsoft. com/library/default asp?ur1=/library/e nus/shellcc/platform/commctls/listview/structures/lvcolu mn asp27. 锁定column header的拖动http:/msd n. microsoftcom/msd nm ag/issu
25、es/03/06/CQA/28. 女口何隐臧clistctrl的列把需隐藏的列的宽度设为。,然后检测当该列为隐藏列时,用上面第27点的锁定coin mn的拖动来实现29. listctrl进彳亍大数据量操作El寸,使用 virtual listhttp:/www codeguru. com,/cpp/co ntrols/listview/adva need/articlephp/c4151/ http:/www codeproject com/listctrl/virtuallist asp 30. 关于item只能显示259个字符的问题 解决办法:需要在item上放一个edito31.响应在
26、 listctrl 的 column header上的鼠标右键单击Q125694: How To Find Out Which Listview Colu mn Was Right-Clicked http:/support.microsofteom/kb/125694/e nps32. 类彳以于windows资源管理器的listviewQ234310: How to implement a ListView control that is similar toWin dows Explorer by using DirLV. exe http:/support.microsofteom/kb
27、/234310/e nus只响应两次的问题33. 在 ListCtrl 中 On TimerQ200054 :PRB: On Timer0 Is Not Called Repeatedly for a List Con trol http:/supportmicrosofteom/kb/200054/e nus34.以下为一些为实现各种自定义功能的listctrl派生类 拖放http:/www. codeproject com/listctrl/dragtest asp在 CListCtrl 禾口 CTreeCtrl可拖放 http:/support. microsoft eom/kb/148
28、738/e nus 多功能 listctri支持 subitem 可编辑,图标, radiobutt on , checkbox, 字符串改变颜色的类http:/www codeproject com/listctrl/quicklist asp支持排序, subitem 可编辑, subitem 图标, subitem 改变颜色的类ht tp:/www .codeprojec t com/lis tctrl/ReportC on tro 1 aspsubitem 中显示超链接 http:/www. codeproject com/listctrl/CListCtrlLink aspsubitem 的 tooltip 提75 http:/www codeproject com/listctrl/ctooltiplistctr 1 asp subitem 中显示进度条 http:/wwwcodeprojectcom/listctrl/ProgressListC on tro1a http:/www codeproject com/listctrl/napster aspspht tp:/www. codegur u. com,/Cpp/co ntrols/li st
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 中小学综合实践活动课程知到课后答案智慧树章节测试答案2025年春西南大学
- 三级人力资源管理师-三级人力资源管理师考试《理论知识》考前冲刺1
- 防疫期间路线施工方案
- 基于Modbus通讯协议的多路石油物流信息监控系统的研究
- 基于Ansys+Workbench宽幅砂光机机架结构分析及优化
- 2024-2025学年高中语文课时作业2冰心:巴金这个人含解析粤教版必修2
- 2025版高考生物一轮复习第9单元生物与环境第2讲群落的结构和演替学案苏教版必修3
- 2025届高考化学一轮复习化学反应速率和化学平衡夯基题新人教版
- 施工方案的验收要点
- 养殖买卖合同范例
- 基于人工智能的供应链协同优化平台建设方案
- 《大学语文》普通高等院校语文课程完整全套教学课件
- 预防校园欺凌主题班会课件(共36张课件)
- 伸缩臂式22m高空作业车安全操作规程
- 全国国家版图知识竞赛题库及答案(中小学组)
- 顾客满意度调查分析报告表
- 《托育服务政策法规与职业伦理》全套教学课件
- 湖北省武汉市实验外国语学校小学部小学六年级小升初期末语文试题(含答案)
- 山东省专升本综合一(机械设计制造及其自动化)模拟试卷1(共264题)
- 高职生职业生涯规划与就业指导 课件全套 崔丽娜 第1-8章 揭开生涯规划面纱 走进生涯规划- 助力职业发展 职场适应
- 2024营运纯电动汽车换电服务技术要求
评论
0/150
提交评论