ListView Control
От: Игорь Россия  
Дата: 27.07.03 10:14
Оценка:
Есть диалог, в нем есть ListView Control.
Пытаюсь добавлять элементы в ListView, но что-то не получется. Вернее
элементы добавляются, но текст не отображается. В чем может быть дело?


hList = GetDlgItem(hWnd,IDC_LISTBOX);
AddListColumn(hList,0,"Column 1",100);
AddListColumn(hList,1,"Column 2",100);

AddListItem(hList,0,0,"Item 1");
AddListItem(hList,1,0,"Item 2");

int AddListColumn(HWND hList, int i, LPSTR lpszText, int nWidth)
{
    LVCOLUMN lvc;

    ZeroMemory(&lvc,sizeof(lvc));
    lvc.mask = LVCF_TEXT | LVCF_WIDTH;
    lvc.pszText = lpszText;            
    lvc.cx = nWidth;

    return ListView_InsertColumn(hList,i,&lvc);
}

int AddListItem(HWND hList, int iItem, int iSubItem, LPSTR lpszText)
{
    LVITEM lvi;

    ZeroMemory(&lvc,sizeof(lvi));
    lvi.mask = LVIF_TEXT;
    lvi.iItem = iItem;
    lvi.iSubItem = iSubItem;
    lvi.pszText = lpszText;    
    
    return ListView_InsertItem(hList,&lvi);
}
Sincerely yours,
Igor!
Re: ListView Control
От: Alexey Shirshov Россия http://wise-orm.com
Дата: 27.07.03 11:14
Оценка:
Здравствуйте, Игорь, Вы писали:

[]

1. Используй TCHAR
2. Заполняй поля LVITEM.cchTextMax и LVCOLUMN.cchTextMax
Re[2]: ListView Control
От: Игорь Россия  
Дата: 27.07.03 11:43
Оценка:
AS>1. Используй TCHAR
AS>2. Заполняй поля LVITEM.cchTextMax и LVCOLUMN.cchTextMax

IMHO, эти поля можно не заполнять

MSDN говорит по этому поводу следущее:


сchTextMax
Size of the buffer pointed to by the pszText member. If the structure is not receiving information about a column, this member is ignored.


Вообще не работает. Почему, не пойму
Sincerely yours,
Igor!
Re[3]: ListView Control
От: ua1zcl Россия www.alexklm.ru
Дата: 27.07.03 17:32
Оценка:
Здравствуйте, Игорь, Вы писали:

И>Вообще не работает. Почему, не пойму


Надо в оконной процедуре диалога обрабатывая WM_NOTIFY ответеить на сообщение LVN_GETDISPINFO. Это другая из вероятных причин. А лучше в VC найти примерчик с ипользованием ListView.
Александр
Re[4]: ListView Control
От: B_A_D Израиль  
Дата: 27.07.03 18:19
Оценка:
Здравствуйте, ua1zcl, Вы писали:

U>Здравствуйте, Игорь, Вы писали:


И>>Вообще не работает. Почему, не пойму


U>Надо в оконной процедуре диалога обрабатывая WM_NOTIFY ответеить на сообщение LVN_GETDISPINFO. Это другая из вероятных причин. А лучше в VC найти примерчик с ипользованием ListView.




А как ты догадался, что у него стиль Owner Data ?
Он вроде про это ничего не писал.

И неплохо бы привести все стили, с которыми создавался этот контрол — загадка скорее всего там.
Re[4]: ListView Control
От: Игорь Россия  
Дата: 27.07.03 18:33
Оценка:
Здравствуйте, ua1zcl, Вы писали:

U>Надо в оконной процедуре диалога обрабатывая WM_NOTIFY ответеить на сообщение LVN_GETDISPINFO. Это другая из вероятных причин. А лучше в VC найти примерчик с ипользованием ListView.


Вообще-то должно работать и без этого. LVN_GETDISPINFO посылается только когда pszText структуры
LVITEM установлен в LPSTR_TEXTCALLBACK, если я правильно понял.

Есть одно предположение, но для этого надо знать, что ListView делает с посланной ему структурой LVITEM:
копирует из нее данные или использует ее!
Надо будет попробовать выделить под структуру память из кучи и передать указатель ListView.
Sincerely yours,
Igor!
Re[5]: ListView Control
От: Игорь Россия  
Дата: 27.07.03 18:49
Оценка:
Здравствуйте, B_A_D, Вы писали:

B_A>И неплохо бы привести все стили, с которыми создавался этот контрол — загадка скорее всего там.


Действительно, не заметил как поставил галочку напротив Owner data.
Опыт — его не пропьешь
Sincerely yours,
Igor!
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.