读书人

如何判断列表框上面有一行数据增加

发布时间: 2013-07-08 14:13:00 作者: rapoo

怎么判断,列表框上面有,一行数据增加了?
就是现在有一个对话框,对话框上面有一个列表框控件,别的对话框回发来数据,
解析后会添加到列表框上面。

我现在想开一个线程,每隔一段时间,查看一下列表框上面有没有新增数据,
并且根据数据进行一些操作
,这个线程应该放在,对话框类里面的什么地方?能保持一直存在呢?
[解决办法]
弄成静态还输就可以了,将线程函数设置为该静态函数即可
[解决办法]
如果不删除的话,获取条目的个数,记录上一次的个数,比对当前的和上一次的个数
[解决办法]
在对话框中的InitDialog用CreateThread创建线程,参数指定线程函数,然后线程函数可以指定为全局函数,也可以是该对话框类的友元函数!
[解决办法]
可以把某一个线程函数封装在某个类中,也可以将线程函数设定成一个全局函数,封装成在类中,比如:


void CUpdateFileOperator::Start( const CString& strUpdateFileDir, const CString& strInstallDir, const CString& strUpdateDir, HWND hNotifyWnd )
{
Stop();

// 开启文件移动子线程
m_hThread = (HANDLE)_beginthreadex( 0, 0, OperateThread, this, 0, 0 );
}


static unsigned _stdcall OperateThread( void *param ); // 线程函数


unsigned _stdcall CUpdateFileOperator::OperateThread( void *param )
{
CUpdateFileOperator* pThis = (CUpdateFileOperator*)param;
return pThis->OperateFun();
}

OperateThread是线程函数,通过传递this指针,调用类里面的成员函数OperateFun
[解决办法]
我觉得如果列表中的数据都是你自己 添加的话, 你可以写一个入口函数, 专门用于添加数据, 然后在这里面就可以轻松处理数据添加的事件, 面不需要线程去监视了.

比如.
AddItem(....)
{
//1.处理添加事件
//2.添加数据到列表.
}

读书人网 >VC/MFC

热点推荐