我新建了对话框程序,对话框类中加了一个CListCtrl 对象 m_list。
   在OnBnClickedOk()函数中调用了create函数就出现错误。我看了下程序
   ASSERT(pWnd->m_hWnd == NULL);   // only do once是在这里显示出错消息的。何解?
   OnBnClickedOk()函数如下:
   void CSortListCtrl_testDlg::OnBnClickedOk()
{
   // TODO: Add your control notification handler code here
  // OnOK();
   CDialog::OnInitDialog();   m_list.Create(WS_CHILD|WS_VISIBLE|WS_BORDER|LVS_REPORT,CRect(15, 10, 432, 291), this, ID_LIST);
   m_list.InsertColumn(0, L"状态", LVCFMT_LEFT, 80);
   m_list.InsertColumn(1, L"网址", LVCFMT_LEFT, 200);
   m_list.InsertColumn(2, L"时间", LVCFMT_LEFT, 200);   m_list.SetItemText(0, 0, L"封堵");
   m_list.SetItemText(0, 0, L"www.sina.com");
   m_list.SetItemText(0, 0, L"2009.07.01");   m_list.SetItemText(0, 0, L"封堵");
   m_list.SetItemText(0, 0, L"www.sohu.com");
   m_list.SetItemText(0, 0, L"2009.06.18");   m_list.SetItemText(0, 0, L"放行");
   m_list.SetItemText(0, 0, L"www.hao123.com");
   m_list.SetItemText(0, 0, L"2009.07.02");
}

解决方案 »

  1.   

    m_list.Create(WS_CHILD|WS_VISIBLE|WS_BORDER|LVS_REPORT,CRect(15, 10, 432, 291), this, 140); 
    m_list.InsertColumn(0, "状态", LVCFMT_LEFT, 80); 
    m_list.InsertColumn(1, "网址", LVCFMT_LEFT, 200); 
    m_list.InsertColumn(2, "时间", LVCFMT_LEFT, 200); 

    int nIndex = m_list.InsertItem(0, "封堵"); 
    m_list.SetItemText(nIndex, 1, "www.sina.com"); 
    m_list.SetItemText(nIndex, 2, "2009.07.01"); 

    nIndex =  m_list.InsertItem(1, "封堵");
    m_list.SetItemText(nIndex, 1, "www.sohu.com"); 
    m_list.SetItemText(nIndex, 2, "2009.06.18"); 

    nIndex = m_list.InsertItem(2, "放行"); 
    m_list.SetItemText(nIndex, 1, "www.hao123.com"); 
    m_list.SetItemText(nIndex, 2, "2009.07.02");我测试了,这样子没有问题,你再试试
      

  2.   

    把这句给去掉  CDialog::OnInitDialog(); 另外是动态创建就不要在对话框模板上添加listCtrl