VC++ 文件读取并在CListControl上展示
来源:互联网 发布:屏幕特效软件 编辑:程序博客网 时间:2024/05/22 07:50
VC++中对文件读取操作
获取文件的path
void getPath(){ char filepath[256], sDrive[256], sDir[256], sFname[256], sExt[256], pStrPath[256]; GetModuleFileName(AfxGetInstanceHandle(), filepath, 256); _tsplitpath_s(filepath, sDrive, sDir, sFname, sExt); _tcscpy_s(pStrPath, sDrive); _tcscat_s(pStrPath, sDir); long nLen = _tcslen(pStrPath); if (pStrPath[nLen - 1] != '\\') _tcscat_s(pStrPath, "\\"); g_BasePath = pStrPath;}
分隔字符串
void split(CString source, CStringArray &dest, CString division){ if (source.IsEmpty()) { //MessageBox(_T("文件内容为空")); } else { int pos = source.Find(division); if (pos == -1) { dest.Add(source); } else { dest.Add(source.Left(pos)); source = source.Mid(pos + 1); split(source, dest, division); } }}
读取文件
void ReadFile(){ CStdioFile file; CString str; CStringArray dest = {};//用来获得数据 CString division = "\t"; str.Format("%sfilesave\\handshake.txt", g_BasePath); if (file.Open(_T(str), CFile::modeRead | CFile::typeText)){ file.SeekToBegin(); int readline = 0; while (file.ReadString(str)&(readline<16)){ readline++; C_Handshake::split(str, dest, division); if (readline == 1){ c_Delay = dest.GetAt(0);//读取延时粗调 all_Delay = dest.GetAt(1);//读取总延时 } else if (readline == 2){ ct_Mode = dest.GetAt(0); } else{ for (int i = 0; i < dest.GetSize(); i++){ number[readline - 3][i] = dest.GetAt(i); } } dest.RemoveAll();//清除dest } file.Close(); } else{ MessageBox(_T("文件打开失败")); }}
ClistControl初始化:各路时钟信号控制
void C_Handshake::CList_OnInit(){ LONG lStyle; lStyle = GetWindowLong(list_handshake.m_hWnd, GWL_STYLE);//获取当前窗口style lStyle &= ~LVS_TYPEMASK; //清除显示方式位 lStyle |= LVS_REPORT; //设置style SetWindowLong(list_handshake.m_hWnd, GWL_STYLE, lStyle);//设置style CFont font; //在头文件中声明 font.CreatePointFont(200, _T("楷体")); list_handshake.SetFont(&font, true); DWORD dwStyle = list_handshake.GetExtendedStyle(); dwStyle |= LVS_EX_FULLROWSELECT;//选中某行使整行高亮(只适用与report风格的listctrl) dwStyle |= LVS_EX_GRIDLINES;//网格线(只适用与report风格的listctrl) list_handshake.SetExtendedStyle(dwStyle); //设置扩展风格 int row_weight = 105;//设置长度 CString column_name[10] = { "", "小周期数", "脉宽", "小周期值", "大周期数", "有信号数", "大周期值", "延时粗调", "延时细调", "总延时" }; list_handshake.InsertColumn(0, column_name[0], LVCFMT_CENTER, 90); for (int i = 1; i < 10; i++){ list_handshake.InsertColumn(i, column_name[i], LVCFMT_CENTER, row_weight); } for (int row = 0; row < 13; row++){ list_handshake.InsertItem(row, number[row][0]); for (int column=1; column < 10; column++){ list_handshake.SetItemText(row, column, number[row][column]); } }}
对list添加双击响应事件
void C_Handshake::OnNMDblclkListhandshake(NMHDR *pNMHDR, LRESULT *pResult){ LPNMITEMACTIVATE pNMItemActivate = reinterpret_cast<LPNMITEMACTIVATE>(pNMHDR); // TODO: 在此添加控件通知处理程序代码 NM_LISTVIEW *pEditCtrl = (NM_LISTVIEW *)pNMHDR; CRect EditRect; int rowCount = list_handshake.GetItemCount();//获取行数 if (pEditCtrl->iSubItem == 0){ //当点击其他区域时,显示内容 m_Edit.ShowWindow(SW_HIDE); return; };//点击其他内容内容不变 if (pEditCtrl->iItem < rowCount && pEditCtrl->iSubItem != 0 && pEditCtrl->iSubItem != 3 && pEditCtrl->iSubItem != 6 && pEditCtrl->iSubItem != 9){ row = pEditCtrl->iItem; //行数 column = pEditCtrl->iSubItem; //列数 list_handshake.GetSubItemRect(row, column, LVIR_LABEL, EditRect); //获取单元格的空间 if (m_Edit.m_hWnd == NULL)//m_Edit.m_hWnd == NULL说明还没创建 { //needSave = true; m_Edit.Create(ES_AUTOHSCROLL | WS_CHILD | ES_LEFT | ES_WANTRETURN | WS_BORDER,CRect(0, 0, 0, 0), this, IDC_EDIT); m_Edit.ShowWindow(SW_HIDE); //Edit创建完后隐藏 m_Edit.SetFont(this->GetFont(), FALSE);//设置字体 } m_Edit.SetParent(&list_handshake); //将list control设置为父窗口,生成的Edit才能正确定位,这个也很重要, EditRect.SetRect(EditRect.left, EditRect.top, EditRect.left + list_handshake.GetColumnWidth(column), EditRect.bottom); CString strItem = list_handshake.GetItemText(row, column); m_Edit.MoveWindow(&EditRect); m_Edit.ShowWindow(SW_SHOW); m_Edit.SetWindowText(strItem); m_Edit.SetFocus();//设置为焦点 m_Edit.SetSel(0, -1); //0,-1表示单元格内容全选中 } *pResult = 0;}
0 0
- VC++ 文件读取并在CListControl上展示
- Geotools读取shp文件并在Ol2中展示
- 读取pdf文件在页面上展示(不需要插件)
- php 读取表情展示在 web上
- VC CListControl 右键菜单
- 读取文件并在屏幕上显示内容
- VC++.NET读取并创建资源文件
- vc打开并读取txt文件
- VC/MFC读取BMP文件并显示
- Android 读取目录中的文件列表并展示
- 利用RODBC包读取并展示xls文件内容
- [转]OpenCV: 在VC中读取文件并转换灰度图像
- 获取文件大小并读取文件内容(应用在protobuf文件解析上)
- android 获取系统联系人并展示在ListView上
- 在vc中怎样读取jpg文件
- 在VC下如何读取chm文件
- 在VC程序下读取INI文件
- Android高德地图开发--读取解析KML文件并显示在地图上
- 关于Certificate、Provisioning Profile、App ID的介绍及其之间的关系
- 什么是CSS3?
- C++_静态数据成员和静态成员函数
- 如何配置java的JDK信息
- spring+mybatis+junit测试问题
- VC++ 文件读取并在CListControl上展示
- 用自己的思路编写一个$.extend()/Object.assign()对象合并函数
- POI2014 Ant colony
- RecyclerView中使用CheckBox出现勾选混乱的解决方案
- 【codevs 1011】数的计算
- SQLYog快捷键大全
- MySQL备份与恢复
- laravel view扩展包配置
- 一款能让妹子开心的eclipse插件