MFC列表控件调试断言失败

时间:2014-10-01 07:55:27

标签: mfc

我正在尝试显示一个对话框,其中列表控件填充了来自父窗口的CString数组中的值,但是在ListControl的InsertItem命令上获取了debg断言失败错误。

Csheetnamesdlg是子对话框类。 和m_sheetnames是listcontrol变量。

Csheetnamesdlg tempdlg;

    LVITEM lvItem;

    for(int j=0;j<tempsheetnames.GetSize();j++)
    {
        lvItem.mask = LVIF_TEXT;
        lvItem.iItem = 0;
        lvItem.iSubItem = 0;
        tempstring=tempsheetnames.GetAt(j);
        lvItem.pszText = const_cast<LPTSTR>((LPCTSTR)tempstring);
        tempdlg.m_sheetnames.InsertItem(&lvItem);
    }


    tempdlg.DoModal(); 

1 个答案:

答案 0 :(得分:2)

在创建对话框之前,不能使用成员列表控件。在您调用DoModal之后,将创建Dialog及其所有子项。

所以正确的方法是填充OnInitDialog或DoDataExchange中的列表框。

Tipp:如果你得到ASSERT

,总是给出答案

在这种情况下,我确信m_hWnd句柄是NULL,所以这告诉你原因。