- 浏览: 357645 次
- 性别:
- 来自: 广州
文章分类
最新评论
-
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 788char * strtok_r(char *ptr, ... -
c++ base64
2013-01-15 16:44 1741/* * base64.h * * Cre ... -
c 16进制转换10进制
2011-03-16 17:27 1437unsigned int pows(int num,int s ... -
类成员函数指针浅析
2010-10-20 14:34 2272有这样一行代码: typedef CPB_RETVAL (C ...
相关推荐
基于Php语言设计并实现了微信小程序的社区门诊管理系统。该小程序基于B/S即所谓浏览器/服务器模式,选择MySQL作为后台数据库去开发并实现一个以微信小程序的社区门诊为核心的系统以及对系统的简易介绍。 用户注册,在用户注册页面通过填写账号、密码、确认密码、姓名、性别、手机、等信息进行注册操作; 用户登录,用户通过登录页面输入账号和密码,并点击登录进行小程序登录操作。 用户登陆微信端后,可以对首页、门诊信息、我的等功能进行详细操作 门诊信息,在门诊信息页面可以查看科室名称、科室类型、医生编号、医生姓名、 职称、坐诊时间、科室图片、点击次数、科室介绍等信息进行预约挂号操作 检查信息,在检查信息页面可以查看检查项目、检查地点、检查时间、检查费用、账号、姓名、医生编号、医生姓名、是否支付、审核回复、审核状态等信息进行支付操作
白色大气风格的设计师作品模板下载.zip
工程经济学自考必备软件下载
UML课程设计报告.doc
白色大气风格响应式彩绘精品水果网站模板.zip
白色简洁风格的别墅整站网站模板.zip
白色简洁风格的APP展示动态源码下载.zip
1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于计算机科学与技术等相关专业,更为适合;
白色大气风格的雪山旅游景区CSS3网站模板.zip
介绍 基于python开发的大模型调用基础框架(源码) 使用说明 修改配置文件 cd config vim __init__.py # 在配置文件中添加大模型调用地址,模型名称,API_KEY等配置 启动应用 应用启动分为两种模式,命令行模式和web模式 命令行模式 python main.py cli web模式 python main.py api
基于JavaWeb的小区物业管理系统源代码+数据库 负责数据库的设计和界面的设计和实现; 界面使用 BootStrap 框架,页面自适应效果,修改页面后实现各个功能模块的布局; 负责实现用户登录注册,查看小区活动公告、水电费查询、车费查询信息; 采用的技术:采用 MVC 架构,数据库用 MySql;
白色简单风格的商务企业网站模板下载.zip
1. 平台在家电和电子产品方面的营运情况如何? 2. 哪些品牌和类别销量最高? 3. 用户消费规律 4. 哪些是我们的重点用户? 5. 平台有哪些优势和不足,需要如何改进?
全平台数据库管理工具, 支持 ClickHouse, Presto, Trino, MySQL, PostgreSQL, Apache Druid, ElasticSearch...
白色大气风格的旅游整站网站模板.zip
1、嵌入式物联网单片机项目开发例程,简单、方便、好用,节省开发时间。 2、代码使用KEIL 标准库开发,当前在STM32F030C8T6运行,如果是STM32F030其他型号芯片,依然适用,请自行更改KEIL芯片型号以及FLASH容量即可。 3、软件下载时,请注意keil选择项是jlink还是stlink。 4、有偿指导v:wulianjishu666; 5、如果接入其他传感器,请查看账号发布的其他资料。 6、单片机与模块的接线,在代码当中均有定义,请自行对照。 7、若硬件有差异,请根据自身情况调整代码,程序仅供参考学习。 8、代码有注释说明,请耐心阅读。 9、编译时请注意提示,请选择合适的编译器版本。
Matlab领域上传的视频均有对应的完整代码,皆可运行,亲测可用,适合小白; 1、代码压缩包内容 主函数:main.m; 调用函数:其他m文件;无需运行 运行结果效果图; 2、代码运行版本 Matlab 2019b;若运行有误,根据提示修改;若不会,私信博主; 3、运行操作步骤 步骤一:将所有文件放到Matlab的当前文件夹中; 步骤二:双击打开main.m文件; 步骤三:点击运行,等程序运行完得到结果; 4、仿真咨询 如需其他服务,可私信博主; 4.1 博客或资源的完整代码提供 4.2 期刊或参考文献复现 4.3 Matlab程序定制 4.4 科研合作
白色大气风格的红唇少女女性类网站模板.zip
白色简洁风格的UIDesign设计公司企业网站模板.rar
Linux期末考试试题.doc