mfc 使用定時器 更新CListCtrl的內容

1.使用隨機函數

 srand((unsigned)time(NULL));
 int rnd = rand()%DJ_MAX_USER;

2.使用定時器

#define TIMER1   WM_USER+1234

BOOL CUIDesignDlg::OnInitDialog()

{

  SetTimer(TIMER1,600,0);

}

3.在類視圖中右擊CUIDesignDlg屬性,在消息響應函數中找到WM_TIMER,然後添加響應函數OnTimer()。

 void CUIDesignDlg::OnTimer(UINT_PTR nIDEvent)
{
 // TODO: 在此添加消息處理程序代碼和/或調用默認值
  refreshUserList();
 CDialogEx::OnTimer(nIDEvent);
}

4.在CUIDesignDlg的析構函數中添加釋放定時器函數

KillTimer(TIMER1);

void CUIDesignDlg::refreshUserList()
{
 srand((unsigned)time(NULL));
 int rnd = rand()%DJ_MAX_USER;
 int rnd1 = rand()%DJ_MAX_USER;
 m_tListUser.SetItemText(rnd,1,m_tUser[rnd1].m_s8UserID);
 
 //m_tListUser.SetItemText(rnd,1,m_tUser[rnd1].m_s8TelNo);
 m_tListUser.SetItemText(rnd,2,m_tUser[rnd1].m_s8Address);

 CString strBuf;
 m_tUser[rnd].SetState(1);
 m_tListUser.SetItemText(rnd,3,strBuf);
 m_tListUser.EnsureVisible(rnd,FALSE);
}

注:

1.設置定時器(定義一個定時器的屬性):
SetTimer( UINT nIDEvent, UINT nElapse, void (CALLBACK EXPORT*lpfnTimer)(HWND,UINT,UINT,DWORD));
2.定時器響應(響應系統定義WM_TIMER消息):
OnTimer( UINT nIDEvent );
3.釋放定時器:
KillTimer( int nIDEvent );
其中:
UINT nIDEvent:定時器的ID,在一個程序中用這個ID來確定是那個定時器發送的消息。
UINT nElapse: 定義刷新時間,即間隔多長時間刷新一次,單位是毫秒。
void (CALLBACK EXPORT* lpfnTimer)( HWND, UINT, UINT, DWORD):回調函數的參數,實現刷新時所做的操作,一般情況下都設爲0。


http://blog.sina.com.cn/s/blog_4aba2dcd010125zz.html

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章