Список рядків List Box

Елемент управління «список рядків» створюється на основі визначеного класу «listbox», яка відповідає за формування вікна, в клієнтській області якого відображається список, з якого можна здійснювати вибір одного або декількох елементів Якщо розміри вікна для списку не дозволяють вмістити всі рядки, то створюється смуга прокрутки У списку можна вибрати або один елемент, або декілька Елементи списку можуть бути видалені або додані

При створенні списку рядків стиль вказується за допомогою комбінації констант, що описують стилі вікон з префіксами WS_ (WSCHILD і WSVISIBLE) і стилі списків з префіксами LBS_:

• LBSSTANDARD рядки в елементі управління класу LISTBOX сортуються в алфавітному порядку, коли користувач робить звичайний або подвійний клацання на рядку, батьківському вікну надсилається повідомлення Елемент управління класу LISTBOX володіє вертикальною смугою прокрутки і рамками

• LBSEXTENDEDSEL допускається вибір кількох елементів списку за допомогою клавіші і миші або за допомогою спеціальних клавіш

• LBSHASSTRINGS використовується для обслуговування памяті і покажчиків на рядки, що зявляються в нестандартному списку Стиль LBSHASSTRINGS дозволяє додатком використовувати повідомлення для списку LBGETTEXT, щоб отримати конкретну рядок

• LBSMULTICOLUMN використовується для списку з кількох колонок, між якими можлива горизонтальна прокрутка

• LBSMUPLTIPLESEL допускається вибір довільної кількості рядків, обрана рядок змінюється щоразу, коли користувач робить звичайний або подвійне клацання на рядку

LBSNOTIFY якщо користувач зробить звичайний або подвійне клацання на рядку списку цього стилю, то батьківське вікно отримає повідомлення

• LBSOWNERDRAWFLXEDза перерисовку вмісту списку цього стилю відповідає вікно-власник, всі елементи списку мають однакову висоту

• LBSOWNERDRAWVARIABLE за перерисовку вмісту списку цього стилю відповідає вікно-власник на відміну від стилю LBSOWNERDRAWFIXED, елементи списку можуть бути різної висоти

• LBSSORTстрокі в елементі управління класу LISTBOX сортуються в алфавітному порядку

• LBSUSETABSTOPS розпізнаються і відображаються всі символи табуляції при виведенні рядків

• LBSWANTKEYBOARDINPUT якщо користувач натискає клавішу і список цього стилю володіє фокусом введення, то власник списку отримує повідомлення WMVKEYTOITEM і WMCHARTOITEM

Якщо стиль списку допускає посилку повідомлення WMCOMMAND батьківському вікну, то молодше слово параметра wParam містить ідентифікатор списку, старше код події зі списком Параметр IParam містить дескриптор списку Приклади кодів подій з елементом ListBox: LBNDBLCLK подвійне клацання лівою кнопкою миші по рядку списку LBNSETFOCUS / LBNKILLFOCUS отримання / втрата фокусу введення LBNSELCANCEL відміна вибору в спи-ську LBNSELCHANGE змінився вибір в списку

Повідомлення, що посилаються списку рядків, мають префікс LB_ Часто вжиті повідомлення наведені в таблиці 32 Відзначимо, що елементи списку номеруются з нуля

Таблиця 32 Повідомлення для List Box

Код повідомлення

Значення wParam

Значення IParam

Призначення

LBADDSTRING

0

szStr

Додавання в список рядки szStr Якщо сортування вимкнена то в кінець

LB DELETESTRING

i

0

Видалення i-того рядка

LBGETCOUNT

0

0

Підрахунок кількості елементів у списку

LBGETTEXT

i

szStr

Копіювання рядка з номером i в szStr

Продовження таблиці 32

Код повідомлення

Значен-ня wParam

Значення lParam

Призначення

LBGETSELITEMS

п

адреса буфе-ра Buf

Запис у буфер Buf індекси виділених елементів (не більше п) Зі списку зі множинним вибором

LBFINDSTRING

i

szStr

Пошук рядка, що починається з szStr в списку, починаючи з i +1 елемента Якщо i =-l, TO з початку списку SendMessage повертає номер рядка або LB ERR при невдачі

LBINSERTSTRING

i

szStr

Вставка рядка szStr після рядка з номером i Використовується для несортованого списку

LB RESETCONTENT

0

0

Очищення списку

LBSELECTSTRING

i

szStr

Пошук аналогічно обробці

LBFINDSTRING і виділення знайденої рядки

LBSETCURSEL

i

0

Вибір рядка з номером i для списку з одиничним вибором

LBSETSEL

TRUE/ FALSE

i

Вибір елемента з номером i в списку зі множинним вибором Якщо i =-l, то вибираються всі елементи списку Якщо wPa-ram = TRUE, то вибрані елементи виділяються, FALSE вибір відміняється

Продовження таблиці 32

LBGETCURSEL

0

0

Для списку з єдиним вибором повертає номер обраного елемента або LB ERR

LBGETSELCOUNT

0

0

Для списку зі множинним вибором повертає кількість обраних елементів

Наприклад, нехай потрібно додати в несортоване список рядків рядок si:

invoke SendMessage,hEditBox,LB_ADDSTRING,0,ADDR sl

Джерело: Сучкова, ЛІ Win32 API: основи програмування: навчальний посібник / ЛІ Сучкова АлтГТУ ім ШІ Ползунова -Барнаул, АлтГТУ, 2010 138 с, іл

Схожі статті:


Сподобалася стаття? Ви можете залишити відгук або підписатися на RSS , щоб автоматично отримувати інформацію про нові статтях.

Коментарів поки що немає.

Ваш отзыв

Поділ на параграфи відбувається автоматично, адреса електронної пошти ніколи не буде опублікований, допустимий HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

*

*