我正在尝试显示一个对话框,其中列表控件填充了来自父窗口的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();
答案 0 :(得分:2)
在创建对话框之前,不能使用成员列表控件。在您调用DoModal之后,将创建Dialog及其所有子项。
所以正确的方法是填充OnInitDialog或DoDataExchange中的列表框。
Tipp:如果你得到ASSERT
,总是给出答案在这种情况下,我确信m_hWnd句柄是NULL,所以这告诉你原因。