ListView
От: Lopcom  
Дата: 25.12.02 18:03
Оценка:
Есть такая проблема.

В WC_LISTVIEW контроле неправильно выводятся надписи в виде квадратиков:

1) Надписи только на английском.
2) Шрифт я не менял, стоит тот, который по умолчанию.
3) Происходит это только на одной из машин, которые
строят в офисе. На остальных всё работает замечательно.
На машине стоит Win2000.
4) На той же машине, все другие программы использующие
WC_LISTVIEW работают без проблем.
5) Помимо этого, в программе есть WC_TREEVIEW, который обрабатывается
также как и WC_LISTVIEW, и в нём тоже всё работает замечательно.
6) LVITEM'ы добавлены с pszText равным LPSTR_TEXTCALLBACK.
7) Прорисовка происходит при обработке сообщения LVN_GETDISPINFO,
установкой:
mask = LVIF_TEXT;
pszText = str;

где str локальная переменная процедуры обработки сообщений:
char str[number];

Вот код:

case LVN_GETDISPINFO:
    plvi = &(((NMLVDISPINFO *)lParam)->item);
    pcd  = (struct comdev_s *)(plvi->lParam);
    switch(plvi->iSubItem)
    {
        case 0:    fillstr0(str); break;
        case 1: fillstr1(str); break;
        case 2:    fillstr2(str); break;
        case 3:    fillstr3(str); break;
        case 4:    fillstr4(str); break;
    }
    plvi->mask = LVIF_TEXT;
    plvi->pszText = str;
    break;



Особое внимание обратите на пункты 1,2 и, особенно, 3.

Мистика?
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.