Listview

Тема в разделе "WASM.BEGINNERS", создана пользователем zxcc, 26 фев 2007.

  1. zxcc

    zxcc New Member

    Публикаций:
    0
    Регистрация:
    21 окт 2006
    Сообщения:
    172
    Подскажите пожалуйста.В listview в основном item заголовок смещен влево и его не видно.Как сделать чтобы заголовок был по центру ни зависимо от ширины колонки.
    И ещё проблема с сортировкой (стиль LVS_SORTASCENDING ) в item сортировка проходит нормально.А в subitem не отображается новая запись.
     
  2. DelExe

    DelExe New Member

    Публикаций:
    0
    Регистрация:
    22 авг 2005
    Сообщения:
    165
    Если речь идёт о заголовке listview то получи его функцией ListView_GetHeader, а потом добавь стиль HDF_CENTER.

    Вообще: с терминологией поконкретней - что собственно не так? Что за основной item заголовок? Какой номер колонки?(с 0-ым могут быть проблеммы)
     
  3. rmn

    rmn Well-Known Member

    Публикаций:
    0
    Регистрация:
    23 ноя 2004
    Сообщения:
    2.348
    1.
    Код (Text):
    1. LVCOLUMN lvc;
    2. lvc.mask = LVCF_FMT|LVCF_TEXT;
    3. lvc.fmt = LVCFMT_CENTER;
    4. lvc.pszText = "Header";
    5. SendMessage(..., LVC_INSERTCOLUMN, ...);
    msdn:
    2.
    Используешь счетчик цикла в качестве индекса итема?
    Код (Text):
    1. int ItemIndex;
    2.  
    3. for ()
    4. {
    5.   // заполняем структуру LVITEM для очередного итема
    6.   ItemIndex = SendMessage(..., LVM_INSERTITEM, ...);
    7.  
    8.   // заполняем структуру LVITEM для сабитема.
    9.   // LVITEM.iItem присваиваем не значение счетчика цикла, а ItemIndex,
    10.   // так как в сортированном списке индекс итема после вставки будет отличаться от того,
    11.   // который указан в LVITEM.iItem перед вставкой.
    12.   SendMessage(..., LVM_SETITEMTEXT, ...);
    13. }
     
  4. zxcc

    zxcc New Member

    Публикаций:
    0
    Регистрация:
    21 окт 2006
    Сообщения:
    172
    Номер колонки с заголовком осовного item 0.И с ним проблема.
     
  5. DelExe

    DelExe New Member

    Публикаций:
    0
    Регистрация:
    22 авг 2005
    Сообщения:
    165
    1. Добавить 0-ю колонку, настройки значения не имеют.
    2. Добавить 1-ю с нужным выравниванием.
    3. Потом 0-ю удалить (LVM_DELETECOLUMN), а дальше добавлять все остальные как обычно
    Вырезка с мсдн которую привёл rmn говорит приблизительно об этом.

    Для ленивых: в гугле строчку "стиль LVCFMT_LEFT" и первый пост. Чловек на rsdn задал похожий вопросс.
     
  6. zxcc

    zxcc New Member

    Публикаций:
    0
    Регистрация:
    21 окт 2006
    Сообщения:
    172
    Извините,но может кто подскажет как добавлять иконки в listview?В поисковике искал но не нашел для masm.
     
  7. rmn

    rmn Well-Known Member

    Публикаций:
    0
    Регистрация:
    23 ноя 2004
    Сообщения:
    2.348
    zxcc
    а какая разница, для masm или нет?

    Сначала создаешь Image List (ImageList_Create) и заполняешь его иконками.
    Потом отправляешь списку LVM_SETIMAGELIST и при добавлении элементов в список указываешь в LVITEM.iImage индекс нужной иконки в созданном Image List. И не забываем флаг LVIF_IMAGE в LVITEM.mask указать...
     
  8. zxcc

    zxcc New Member

    Публикаций:
    0
    Регистрация:
    21 окт 2006
    Сообщения:
    172
    Спасибо только не всё понял буду разбираться.