mantian

统计

留言簿(2)

阅读排行榜

评论排行榜

工作记录-软件功能追加

上周开始把之前做的一个监控程序追加功能。

功能不难,其实主要就是

先取得数据,

界面显示,

然后启动监视线程,

有变化,更新之。

 

简单记录一下每一部分的实现方法。

 

取得数据

先从一堆文件中,搜索需要的值,并把值相关的内容放入数组。这里需要一个动态数组。插入的时候自动排序,在内存中排序之后的数组即可在ListView中显示,并存成csv文件,再次取得数据优先从csv文件中读取,提高速度。

 

数据的存放方式为csv文件。本来想用CStdioFile,无奈CE下面没提供这个类,遂自己做了CCsvFile,主要功能跟CStdioFile一样,可以实现按行读写文件。读出来的东东为“0abc,def,’中国人”等等,再小分析一下字符串就OK了。

 

显示为ListView

这个CListView需要在第三列,第四列画上Button,同时由于ListView中数据跟我的动态数组中的数据为映射关系,隧共享一份内存显示就好了。

 

CListView中画Button花了点功夫。考虑到效率不想Create很多Button,决定自绘,做一个CListViewBtn,重载NM_CUSTOMDRAW,在里面DrawFrameControl。当然还要重载消息ON_WM_LBUTTONDOWN, ON_WM_LBUTTONUP

 

共享内存部分很简单,InsertItem时候将LV_ITEMpszText设置为LPSTR_TEXTCALLBACKlParam指针指向要共享的内存数据,重载LVN_GETDISPINFO。咔咔两下就能解决问题。

 

启动线程

使用MFCCWinThreadAfxBeginThread启动一个ThreadFunc,在ThreadFunc中使用While循环检查设备值是否更改。

While循环

{

检查退出信号量

检查设备值是否更改,更改了:PostMessage

没更改:Looop

}

 

虽然是说起来如此简单的工作,还是花费了大概4天的时间去完成代码。

posted on 2009-07-29 10:27 岳阳 阅读(1651) 评论(0)  编辑 收藏 引用 所属分类: 『 VC&MFC 』


只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   博问   Chat2DB   管理