要看你使用的什么数据库,而且要看用的什么方式来访问数据库的(比如oledb、odbc等等),有些数据库服务提供者会提供数据改变的事件通知。否则,只能靠自己定时去查询

解决方案 »

  1.   

    当视图的内空发生改变时,直接更新CListCtr中的内容
      

  2.   

    理论上来说,SendMessage或者PostMessage,或者定时查询数据库中的数据,然后将数据到AddString 到ListCtrl中达到更新的目的。当然,如果你可以知道数据库中哪一项做了更新或者添加了哪一项,直接在ListCtrl中更新这一项即可,这样效率就比较高了。
      

  3.   

    楼上说得有点问题。楼主希望实时显示,那样的话,只需创建一个监听VIEW的线程,线程阻塞直至有更新消息到来,阻塞解除后又产生一个线程,周而复始。
      

  4.   

    1、CListCtrl的更新:
      可以通过CListCtrl的虚表实现(LVN_GETDISPINFO),当需要数据时再去数据库获取数据。
      对于大型数据库很适用。
    2、关于监视数据库的更新
       如果数据库的访问是由你来编写的话,那么可以提供一个回调接口,当向数据库添加、修改、删除时,调用这个回调接口。回调接口由外部实现。
       在回调接口中实现更新CListCtrl。
         -判断是否是CListCtrl中显示的内容
           -如果是的话,那么更新CListCtrl。
           -如果不是的话,不需要更新。还有一些细节,那就得自己考虑了。