ListView report (автоматическое выравнивание item-ов по высоте)

Тема в разделе "WASM.WIN32", создана пользователем RDMess, 23 дек 2011.

  1. RDMess

    RDMess Member

    Публикаций:
    0
    Регистрация:
    28 дек 2009
    Сообщения:
    51
    Здравствуйте уважаемые форумчане.
    Беспокоит пустое пространство образовавшееся после прокрутки скрола вниз до упора.
    Игрался с размерами самого контрола, стилями и высоты итемов, не помогло, всё равно хоть и маленькое но пустое пространство снизу остаётся. Как избавиться ?

    [​IMG]

    Стили: LVS_EX_FULLROWSELECT, LVS_ALIGNTOP, LVS_OWNERDRAWFIXED, LVS_REPORT
    Дело скорее всего в том, что при клике на скролл ListView прокручивается ровно на высоту Item-a, можно сделать чтобы чожно было прокручивать частично ? например как на картинке ниже
    [​IMG]

    Спасибо за внимание.
     
  2. RDMess

    RDMess Member

    Публикаций:
    0
    Регистрация:
    28 дек 2009
    Сообщения:
    51
    Наверно я не правильно вопрос задаю :|
     
  3. cresta

    cresta Active Member

    Публикаций:
    0
    Регистрация:
    13 июн 2004
    Сообщения:
    2.257
    добавил бы вместо asdddd номера строк, чтобы видно было, сколько у тебя итемов, и сколько из них отрисовываются на самом деле, чтобы было понятно происхождение полосы снизу. То ли это неотрисованный итем, то ли пустота.
     
  4. RDMess

    RDMess Member

    Публикаций:
    0
    Регистрация:
    28 дек 2009
    Сообщения:
    51
    cresta, высота итема 54, всего итемов 17, на одну страницу помещается 5-6 итемов.
    Высота хидер - контрола 17, + 4 статических пикселя сверху(прорисовка рамки итд.) и +2 снизу, тоже самое. Вроде как рассчет делал, 54*6+17+4+2=347, только дело в том что не получается у ListView установить такой размер, либо на пиксель больше или меньше получается :dntknw: Ещё всё это дело усугубляется тем что ListView находится на диалоге у которого есть стиль child, ну и рассчет размера свой, диалоговский.. всё это я учитываю но ничего не получается.

    Спасибо за внимание.
     
  5. RDMess

    RDMess Member

    Публикаций:
    0
    Регистрация:
    28 дек 2009
    Сообщения:
    51
    Решил покавырять Хидер ListView контрола, и обнаружил несовпадения в объявлениях.
    Код (Text):
    1. commctrl.h
    2. HDN_FIRST = -300
    3. #define HDN_BEGINTRACKW         (HDN_FIRST-26)
    4. #define HDN_BEGINTRACK           HDN_BEGINTRACKW
    5.  
    6. Windows.inc - masm
    7. HDN_FIRST EQU -300
    8. HDN_BEGINTRACKW   equ HDN_FIRST  - 26
    9. HDN_BEGINTRACK     equ HDN_FIRST  -6
    И так почти со всеми HDN_