- 浏览: 357523 次
- 性别:
- 来自: 广州
文章分类
最新评论
-
tianshawang:
楼主你好偏心啊,把代码给谷歌不给这里
java 实现windows资源管理器 -
tianshawang:
其实我是也想要资源管理器的代码来的。。
java 实现windows资源管理器 -
hcmfys:
lonuery 写道open file 是获取要进行复制的文件 ...
JAVA 复制 带进度条 时间 百分比 -
qq657052171:
怎么没有代码呢?
java 实现windows资源管理器 -
IT女民工:
楼主,求资源管理器代码~~~~
java 实现windows资源管理器
CListCtrl 风格设置: DWORD dwStyle = m_ListCtrl.GetExtendedStyle(); dwStyle |= LVS_EX_FULLROWSELECT; //选中某行使整行高亮(只适用与report风格的listctrl) dwStyle |= LVS_EX_GRIDLINES; //网格线(只适用与report风格的listctrl) dwStyle |= LVS_EX_SUBITEMIMAGES; // 设置图片 dwStyle |= LVS_EX_ONECLICKACTIVATE; // 点选一个活动行 m_ListCtrl.SetExtendedStyle(dwStyle); //设置扩展风格 CListCtrl 中的item插入图片 LVITEM lvItem; memset(&lvItem, 0, sizeof(LVITEM)); lvItem.iItem = nI; lvItem.iSubItem = 2; lvItem.mask = LVIF_IMAGE; lvItem.iImage = 1; // 不带钩的图片 m_ListCtrl.SetItem(&lvItem); CListCtrl改变单个item的颜色 首先必须先重载CListCtrl中的OnNMCustomdraw(NMHDR *pNMHDR, LRESULT *pResult)函数,进行重绘,然后设置item颜色。 //********************************************************************************* //** 函 数 名:OnNMCustomdraw //** 功能描述:listctrl 控件自绘函数,用来修改控件中的颜色 //** 全局变量: //** 调用模块: //** 作 者:chenbo //** 日 期:2008-10-23 //** 修 改 者: //** 日 期: //** 版 本:1.0 //********************************************************************************* void CListCtrlEx::OnNMCustomdraw(NMHDR *pNMHDR, LRESULT *pResult) { *pResult = CDRF_DODEFAULT; NMLVCUSTOMDRAW * lplvdr=(NMLVCUSTOMDRAW*)pNMHDR; NMCUSTOMDRAW &nmcd = lplvdr->nmcd; switch(lplvdr->nmcd.dwDrawStage) { case CDDS_PREPAINT: *pResult = CDRF_NOTIFYITEMDRAW; break; case CDDS_ITEMPREPAINT : { COLORREF ItemColor; if( MapItemColor.Lookup(nmcd.dwItemSpec, ItemColor)) { lplvdr->clrText = ItemColor; *pResult = CDRF_DODEFAULT; } } break; } } //********************************************************************************* //** 函 数 名:SetItemColor //** 功能描述:设置item的颜色 //** 全局变量: //** 调用模块: //** 作 者:chenbo //** 日 期:2008-10-23 //** 修 改 者: //** 日 期: //** 版 本:1.0 //********************************************************************************* void CListCtrlEx::SetItemColor(DWORD iItem, COLORREF color) { ASSERT(iItem >= 0); MapItemColor.SetAt(iItem, color); this->RedrawItems(iItem, iItem); UpdateWindow(); } ClistCtrl中的多选 BOOL CGeoCheckHelp::PreTranslateMessage(MSG* pMsg) { if(pMsg->message==WM_LBUTTONDOWN) { // 该函数的返回值为一个Integer型数(双字节),要判断是否按下特定键,就看返回值, // 如果开关键打开,则位0设为1(开关键包括CapsLock, NumLock,ScrollLock);即(0000000000000001)2, // 如果某键正处于按下状态,则位15为1;即(1000000000000000)2,如已经抬起,则为0。即(0000000000000001)2, // 如果某键正处于按下状态,则位15为1;即(1000000000000000)2,如已经抬起,则为0 if (!(GetKeyState(VK_CONTROL)&0x8000) && !(GetKeyState(VK_SHIFT)&0x8000) ) { if(IsMuitSelCur()) { LVHITTESTINFO hitTest; UINT uFlags = 0 ; CPoint point; point.SetPoint(pMsg->pt.x,pMsg->pt.y); m_ListCtrl.ScreenToClient(&point); hitTest.pt = point; hitTest.flags = uFlags; m_ListCtrl.HitTest(&hitTest); int nRow = m_ListCtrl.HitTest(point); CString strTem = m_ListCtrl.GetItemText(nRow,2); CString strTep = m_ListCtrl.GetItemText(nRow,8); LVHITTESTINFO sublvHit; sublvHit.pt = point; int nColumn = m_ListCtrl.SubItemHitTest(&sublvHit); if(sublvHit.iSubItem == 2) { POSITION pos = m_ListCtrl.GetFirstSelectedItemPosition(); if (pos == NULL) return TRUE; else { do { int nItem = m_ListCtrl.GetNextSelectedItem(pos); { int nCheckID = vec1[nItem]; CString strCheckID; strCheckID.Format(_T("%d"),nCheckID); if ( strTem== _T("√") ) { SetTableData(strCheckID,0); m_ListCtrl.SetRedraw(false); m_ListCtrl.SetItemText(nItem,2,_T("□")); m_ListCtrl.SetRedraw(true); }else { SetTableData(strCheckID,-1); m_ListCtrl.SetRedraw(false); m_ListCtrl.SetItemText(nItem,2,_T("√")); m_ListCtrl.SetRedraw(true); } } !时间仓促,此播客以下内容大多为网上整理,特向原作者表示感谢! -------------------------------------------------------------------------------- 1. CListCtrl 样式及设置 LVS_ICON: 每个item显示大图标 LVS_SMALLICON: 每个item显示小图标 LVS_LIST: 显示一列带有小图标的item LVS_REPORT: 显示item详细资料 如windows资源管理器,“查看”标签下的“大图标,小图标,列表,详细资料” LONG lStyle; lStyle=GetWindowLong(m_ListCtrl.m_hWnd, GWL_STYLE); //获取当前窗口style lStyle &= ~LVS_TYPEMASK; //清除显示方式位 lStyle |= LVS_REPORT; //设置style SetWindowLong(m_ListCtrl.m_hWnd, GWL_STYLE, lStyle); //设置style -------------------------------------------------------------------------------- 2. 扩展样式设置 DWORD dwStyle = m_ListCtrl.GetExtendedStyle(); //获取当前扩展样式 dwStyle |= LVS_EX_FULLROWSELECT; //选中某行使整行高亮(report风格时) dwStyle |= LVS_EX_GRIDLINES; //网格线(report风格时) dwStyle |= LVS_EX_CHECKBOXES; //item前生成checkbox控件 m_ListCtrl.SetExtendedStyle(dwStyle); //设置扩展风格 -------------------------------------------------------------------------------- 3. 数据插入 m_ListCtrl.InsertColumn(0,"名称",LVCFMT_LEFT,50); //插入列 m_ListCtrl.InsertColumn(1,"备注",LVCFMT_LEFT,50); //直接插入: int nRow=m_ListCtrl.InsertItem(0, "VC++"); //插入行 m_ListCtrl.SetItemText(nRow,1,"Visual C++ 6.0"); //设置数据 //LVITEM 结构插入: LVITEM item={0}; item.iItem=0; //行号 item.mask=LVIF_TEXT; /*LVIF_IMAGE支持图标*/; item.cchTextMax=15;//插入字符串长度 item.pszText="Visual C++ 6.0"; int nRow=m_ListCtrl.InsertItem(&item); m_ListCtrl.SetItemText(nRow,1,"Visual C++ 6.0"); -------------------------------------------------------------------------------- 4. 一直选中Item 选中style中的 Show selection always, 或者添加扩展样式 LVS_SHOWSELALWAYS -------------------------------------------------------------------------------- 5. 选中和取消选中Item int nIndex = 0; //选中 m_ListCtrl.SetItemState(nIndex,LVIS_SELECTED| LVIS_FOCUSED,LVIS_SELECTED|LVIS_FOCUSED); //取消选中 m_ListCtrl.SetItemState(nIndex,0,LVIS_SELECTED|LVIS_FOCUSED); -------------------------------------------------------------------------------- 6. 得到CListCtrl中所有行的checkbox的状态 CString str; for(int i=0; i<m_ListCtrl.GetItemCount(); i++) { if(m_ListCtrl.GetItemState(i, LVIS_SELECTED)== LVIS_SELECTED || m_ListCtrl.GetCheck(i)) { str.Format(_T("第%d行的checkbox为选中状态"), i); AfxMessageBox(str); } } -------------------------------------------------------------------------------- 7. 得到CListCtrl中所有选中行的序号 //方法一: CString str; for(int i=0; i<m_ListCtrl.GetItemCount(); i++) { if(m_ListCtrl.GetItemState(i, LVIS_SELECTED) == LVIS_SELECTED ) { str.Format(_T("选中了第%d行"), i); AfxMessageBox(str); } } //方法二: POSITION pos=m_ListCtrl.GetFirstSelectedItemPosition(); if(pos==NULL) TRACE0("No items were selected!\n"); else { while(pos) { int nItem=m_ListCtrl.GetNextSelectedItem(pos); TRACE1("Item %d was selected!\n", nItem); //添加其他操作 } } -------------------------------------------------------------------------------- 8. 得到item的信息 TCHAR szBuf[1024]; LVITEM lvi; lvi.iItem = nItemIndex; lvi.iSubItem = 0; lvi.mask = LVIF_TEXT; lvi.pszText = szBuf; lvi.cchTextMax = 1024; m_ListCtrl.GetItem(&lvi); 关于得到设置item的状态,还可以参考msdn文章 Q173242: Use Masks to Set/Get Item States in CListCtrl http://support.microsoft.com/kb/173242/en-us -------------------------------------------------------------------------------- 9. 得到CListCtrl的所有列的header字符串内容 LVCOLUMN lvcol; char str[256]; int nColNum; CString strColumnName[3];//假如有3列 nColNum = 0; lvcol.mask = LVCF_TEXT; lvcol.pszText = str; lvcol.cchTextMax = 256; while(m_list.GetColumn(nColNum, &lvcol)) { strColumnName[nColNum] = lvcol.pszText; nColNum++; } -------------------------------------------------------------------------------- 10. 使CListCtrl中一项可见,即滚动滚动条 m_ListCtrl.EnsureVisible(i, FALSE); -------------------------------------------------------------------------------- 11. 得到CListCtrl列数 int nHeadNum=m_ListCtrl.GetHeaderCtrl()->GetItemCount(); -------------------------------------------------------------------------------- 12. 删除所有列 方法一: while(m_ListCtrl.DeleteColumn(0)) //因为你删除了第一列后,后面的列会依次向上移动。 方法二: int nColumns = 3; //列数 for(int i=nColumns-1; i>=0; i--) m_ListCtrl.DeleteColumn(i); -------------------------------------------------------------------------------- 13. 得到单击的CListCtrl的行列号 添加listctrl控件的NM_CLICK消息相应函数 void CMyDlg::OnClickList1(NMHDR* pNMHDR, LRESULT* pResult) { //方法一: DWORD dwPos=GetMessagePos(); CPoint point( LOWORD(dwPos), HIWORD(dwPos)); m_ListCtrl.ScreenToClient(&point); LVHITTESTINFO lvinfo; lvinfo.pt=point; lvinfo.flags=LVHT_ABOVE; int nItem=m_ListCtrl.SubItemHitTest(&lvinfo); if(nItem!=-1) { CString strtemp; strtemp.Format("单击的是第%d行第%d列", lvinfo.iItem, lvinfo.iSubItem); AfxMessageBox(strtemp); } // 方法二: NM_LISTVIEW* pNMListView=(NM_LISTVIEW*)pNMHDR; if(pNMListView->iItem!=-1) { CString strtemp; strtemp.Format("单击的是第%d行第%d列", pNMListView->iItem, pNMListView->iSubItem); AfxMessageBox(strtemp); } *pResult = 0; } -------------------------------------------------------------------------------- 14. 判断是否点击在CListCtrl的checkbox上 添加listctrl控件的NM_CLICK消息相应函数 void CMyDlg::OnClickList1(NMHDR* pNMHDR, LRESULT* pResult) { DWORD dwPos=GetMessagePos(); CPoint point(LOWORD(dwPos), HIWORD(dwPos)); m_ListCtrl.ScreenToClient(&point); LVHITTESTINFO lvinfo; lvinfo.pt=point; lvinfo.flags=LVHT_ABOVE; UINT nFlag; int nItem=m_ListCtrl.HitTest(point, &nFlag); //判断是否点在checkbox上 if(nFlag==LVHT_ONITEMSTATEICON) { AfxMessageBox("点在listctrl的checkbox上"); } *pResult = 0; } -------------------------------------------------------------------------------- 15. 右键点击CListCtrl的item弹出菜单 添加CListCtrl控件的NM_RCLICK消息相应函数 void CMyDlg::OnRclickList1(NMHDR* pNMHDR, LRESULT* pResult) { NM_LISTVIEW* pNMListView=(NM_LISTVIEW*)pNMHDR; if(pNMListView->iItem!=-1) { DWORD dwPos = GetMessagePos(); CPoint point( LOWORD(dwPos), HIWORD(dwPos) ); CMenu menu; VERIFY( menu.LoadMenu( IDR_MENU1 ) ); CMenu* popup = menu.GetSubMenu(0); ASSERT( popup != NULL ); popup->TrackPopupMenu(TPM_LEFTALIGN | TPM_RIGHTBUTTON, point.x, point.y, this ); } *pResult = 0; } -------------------------------------------------------------------------------- 16. CListCtrl进行大数据量更新时,避免闪烁 m_ListCtrl.SetRedraw(FALSE); //更新内容 m_ListCtrl.SetRedraw(TRUE); m_ListCtrl.Invalidate(); m_ListCtrl.UpdateWindow(); //或者参考 http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vclib/html/_mfc_cwnd.3a3a.setredraw.asp 本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/sghgcn/archive/2009/03/05/3958219.aspx } while(pos); } return TRUE; } if (sublvHit.iSubItem == 8) { POSITION pos = m_ListCtrl.GetFirstSelectedItemPosition(); if (pos == NULL) return TRUE; else { do { int nItem = m_ListCtrl.GetNextSelectedItem(pos); { int nCheckID = vec1[nItem]; CString strCheckID; strCheckID.Format(_T("%d"),nCheckID); if ( strTep== _T("√") ) { SetMoreTableData(strCheckID,0); m_ListCtrl.SetRedraw(false); m_ListCtrl.SetItemText(nItem,8,_T("□")); m_ListCtrl.SetRedraw(true); }else { SetMoreTableData(strCheckID,-1); m_ListCtrl.SetRedraw(false); m_ListCtrl.SetItemText(nItem,8,_T("√")); m_ListCtrl.SetRedraw(true); } } } while(pos); } return TRUE; } } } } return CDialog::PreTranslateMessage(pMsg); }
发表评论
-
再议gluPerspective和gluLookAt的关系
2014-08-20 00:51 493再议gluPerspective和gluLookA ... -
strtok_r 字符分割
2013-01-18 15:51 787char * strtok_r(char *ptr, ... -
c++ base64
2013-01-15 16:44 1740/* * base64.h * * Cre ... -
c 16进制转换10进制
2011-03-16 17:27 1436unsigned int pows(int num,int s ... -
类成员函数指针浅析
2010-10-20 14:34 2270有这样一行代码: typedef CPB_RETVAL (C ...
相关推荐
白色大气风格的旅游酒店企业网站模板.zip
python实现用户注册
Matlab领域上传的视频均有对应的完整代码,皆可运行,亲测可用,适合小白; 1、代码压缩包内容 主函数:main.m; 调用函数:其他m文件;无需运行 运行结果效果图; 2、代码运行版本 Matlab 2019b;若运行有误,根据提示修改;若不会,私信博主; 3、运行操作步骤 步骤一:将所有文件放到Matlab的当前文件夹中; 步骤二:双击打开main.m文件; 步骤三:点击运行,等程序运行完得到结果; 4、仿真咨询 如需其他服务,可私信博主; 4.1 博客或资源的完整代码提供 4.2 期刊或参考文献复现 4.3 Matlab程序定制 4.4 科研合作
内容来源于网络分享,如有侵权请联系我删除。另外如果没有积分的同学需要下载,请私信我。
1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于计算机科学与技术等相关专业,更为适合;
内容概要:文档名为《平方表,派表集合.docx》,主要内容是1至1000的平方值以及1至1000与π的乘积结果。每个数字从1开始,逐步增加至1000,对应地计算了平方值和乘以π后的值。所有计算均通过Python脚本完成,并在文档中列出了详细的计算结果。 适合人群:需要进行数学计算或程序验证的学生、教师和研究人员。 使用场景及目标:用于快速查找特定数字的平方值或其与π的乘积,适用于教学、科研及程序测试等场景。 阅读建议:可以直接查阅所需的具体数值,无需从头到尾逐行阅读。建议在使用时配合相应的计算工具,以验证和拓展数据的应用范围。
1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于计算机科学与技术等相关专业,更为适合;
白色大气风格的健身私人教练模板下载.zip
白色简洁风的商务网站模板下载.zip
白色大气风格的前端设计案例展示模板.zip
内容概要:本文介绍了两个有趣的圣诞树项目方向:一是使用Arduino或Raspberry Pi开发可编程的圣诞树灯光控制系统;二是基于MATLAB开发一个圣诞树模拟器。前者通过硬件连接、编写Arduino/Raspberry Pi程序、MATLAB控制程序来实现LED灯带的闪烁;后者则通过创建圣诞树图形、添加动画效果、用户交互功能来实现虚拟的圣诞树效果。 适合人群:具备基本电子工程和编程基础的爱好者和学生。 使用场景及目标:①通过硬件和MATLAB的结合,实现实际的圣诞树灯光控制系统;②通过MATLAB模拟器,实现一个有趣的圣诞树动画展示。 阅读建议:读者可以根据自己的兴趣选择合适的项目方向,并按照步骤进行动手实践,加深对硬件编程和MATLAB编程的理解。
白色扁平风格的温室大棚公司企业网站源码下载.zip
Navicat.zip
内容概要:本文详细介绍了主成分分析(PCA)技术的原理及其在Scikit-learn库中的Python实现。首先讲解了PCA的基本概念和作用,接着通过具体示例展示了如何使用Scikit-learn进行PCA降维。内容涵盖了数据准备、模型训练、数据降维、逆转换数据等步骤,并通过可视化和实际应用案例展示了PCA的效果。最后讨论了PCA的局限性和参数调整方法。 适合人群:数据科学家、机器学习工程师、数据分析从业者及科研人员。 使用场景及目标:适用于高维数据处理,特别是在需要降维以简化数据结构、提高模型性能的场景中。具体目标包括减少计算复杂度、提高数据可视化效果和改进模型训练速度。 其他说明:本文不仅提供了详细的代码示例,还讨论了PCA在手写数字识别和机器学习模型中的应用。通过比较原始数据和降维后数据的模型性能,读者可以更好地理解PCA的影响。
VOC格式的数据集转COCO格式数据集 VOC格式的数据集转YOLO格式数据集。内容来源于网络分享,如有侵权请联系我删除。另外如果没有积分的同学需要下载,请私信我。
数字信号处理课程设计.doc
白色扁平化风格的灯饰灯具销售企业网站模板.zip
华豫佰佳组合促销视图.sql
白色大气风格的商务团队公司模板下载.zip
白色大气风格的VPS销售网站模板.zip