void CUserList::OnPaint()
{
CPaintDC dc(this); // device context for painting
// TODO: 在此处添加消息处理程序代码
// 不为绘图消息调用 CDialog::OnPaint()
m_userlist.SetRedraw(FALSE);
_RecordsetPtr rec;
rec.CreateInstance("ADODB.Recordset");
rec->Open("select * from oj_users",_variant_t((IDispatch*)m_db),
adOpenDynamic,adLockOptimistic,adCmdText);
m_userlist.DeleteAllItems();
int i=0;
CString temp;
while(!rec->adoEOF && !rec->BOF)
{
temp = (LPCTSTR)(_bstr_t)(rec->GetCollect("oj_userno"));
temp.Trim();
m_userlist.InsertItem(i,temp);
for(int j = 1; j < rec->Fields->GetCount(); j++)
{
temp = (LPCTSTR)(_bstr_t)rec->GetCollect((long)j);
temp.Trim();
m_userlist.SetItemText(i,j,temp);
}
i++;
rec->MoveNext();
}
rec->Close();
rec.Release();
m_userlist.SetRedraw(TRUE);
}
重要的是这两句话
m_userlist.SetRedraw(FALSE);
……
m_userlist.SetRedraw(TRUE);