Привет. Как установить текст в ListView? Код (Text): void CResultDlg::DoDataExchange(CDataExchange* pDX) { CDialog::DoDataExchange(pDX); //DDX_LBStringExact(pDX,IDC_LIST1,m_str); DDX_LBString(pDX,IDC_LIST1,m_str); // <--- error //DDX_Text(pDX,IDOK,m_str); // <--- worked } По идее надо сначала вставить колонки: Код (Text): void CResultDlg::InsertColumnInList() { LV_COLUMN lvc; LPWSTR szColumns[3] = { L"zzz",L"xxx",L"yyy" }; lvc.mask = LVCF_TEXT+LVCF_WIDTH; lvc.cx = 100; //width of the column in px for (int i=0; i<3; i++) { lvc.pszText = szColumns[i]; m_wndList->InsertColumn(i,&lvc); } } InsertColumnInList() до вызова DoModal() смысла нет.
Код (Text): void CResultDlg::DoDataExchange(CDataExchange* pDX) { CDialog::DoDataExchange(pDX); DDX_Control(pDX, IDC_LIST1, m_wndList); } BOOL CResultDlg::OnInitDialog() { LPCTSTR szColumns[] = { _T("xxx"), _T("yyy"), _T("zzz") }; int width = 100; for (size_t i = 0; i < sizeof(szColumns) / sizeof(szColumns[0]); ++i) { m_wndList.InsertColumn(i, szColumns[i], LVCFMT_LEFT, width); } m_wndList.SetColumnWidth(i - 1, LVSCW_AUTOSIZE); ... std::vector<my_data> v; ... int index = 0; BOOST_FOREACH(const my_data &data, v) { int nItem = m_wndList.InsertItem(index++, data.xxx.c_str()); ASSERT(nItem != -1); m_wndList.SetItemText(nItem, 1, data.yyy.c_str()); m_wndList.SetItemText(nItem, 2, data.zzz.c_str()); m_wndList.SetItemData(nItem, reinterpret_cast<DWORD_PTR>(&data)); } return TRUE; }