Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекции-ТРПС.doc
Скачиваний:
13
Добавлен:
15.11.2018
Размер:
810.5 Кб
Скачать

8.2.12.2. Сообщения от списка к родительскому окну

Ниже указаны сообщения, которые список посылает своему родительскому окну. Часть из них является самостоятельными Windows сообщениями, а другие приходят в составе сообщения WM_COMMAND. В последнем случае старшее слово параметра wParam соответствует указанному нотификационному значению:

LBN_DBLCLK (WM_COMMAND)

Пользователь сделал двойной щелчок клавишей мыши по строке списка.

LBN_SELCHANGE (WM_COMMAND)

Пользователь выбрал строку списка.

LBN_SELCANCEL (WM_COMMAND)

Пользователь отменил выбор строки.

LBN_SETFOCUS LBN_KILLFOCUS (WM_COMMAND)

Список получает или теряет фокус ввода.

WM_CTLCOLORLISTBOX

Посылается родительскому окну, когда списку требуется перерисовать свой фон. Родительское окно должно вернуть дескриптор кисти для закрашивания фона.

8.2.12.3. Сообщения от родительского окна к списку

Ниже представлены основные сообщения, с помощью которых родительское окно может управлять списком. Напомним, что список может возвращать информацию родительскому окну из некоторых сообщений. Горизонтальная черта отмечает сообщения, относящиеся только к списку с множественным выбором, для которого определен стиль LBS_MULTIPLESEL. В этом случае понятие “текущее выделение” распространяется на несколько строк списка.

LB_ADDSTRING

Добавляет строку szText к списку. Если указан стиль LBS_SORT, то выполняется сортировка списка, если нет, то строка добавляется в конец списка. Параметры сообщения: wParam=0; lParam=(LPARAM)szText;

Возвращает позицию новой строки.

LB_INSERTSTRING

Вставляет строку szText в i-тую позицию, при этом сортировка не выполняется, даже если определен стиль LBS_SORT. Если i=-1, строка добавляется в конец списка. Параметры сообщения: wParam=i; lParam=(LPARAM)szText;

Возвращает позицию строки.

LB_GETCOUNT

Возвращает текущее количество строк в списке. Параметры сообщения: wParam=0; lParam=0;

LB_DELETESTRING

Уничтожает i-тую строку в списке. Параметры сообщения:

wParam=i; lParam=0;

Возвращает количество оставшихся строк.

LB_FINDSTRING

Поиск контекста szFind в строках списка. Поиск начинается с i-той позиции списка. Параметры сообщения: wParam=i; lParam=(LPARAM)szFind;

Возвращает номер строки, включающей szFind, или LB_ERR, если контекст не найден.

LB_GETCURSEL

Возвращает номер выделенной пользователем строки. Если список не содержит выделенной строки, возвращается значение LB_ERR. Параметры сообщения: wParam=0; lParam=0;

LB_SETCURSEL

Пометить i-тую строку в списке как выделенную. Параметры сообщения: wParam=i; lParam=0;

LB_GETTEXTLEN

Возвращает длину текста в i-той строке списка. Параметры сообщения: wParam=i; lParam=0;

LB_GETTEXT

Копирует текст из i-той строки списка в буфер szBuff. Длина буфера должна быть достаточной, чтобы вместить копируемый текст (см. предыдущее сообщение). Параметры сообщения: wParam=i; lParam=(LPARAM)szBuff;

LB_GETSEL

Позволяет определить, выделил ли пользователь i-тую строку списка. Параметры сообщения: wParam=i; lParam=0;

Если возвращается ненулевое значение, строка выделена, если нуль – строка не выделена.

LB_SETSEL

Изменяет выделение для i-той строки списка. Параметры сообщения: wParam=fSel; lParam=i;

Если fSel равно 1, i-тая строка становится выбранной, если fSel=0, то выделение снимается.

LB_SELITEMRANGE

Изменить статус у диапазона строк от nFist до nLast. Параметры сообщения: wParam=fSel; lParam=MAKELPARAM(nFist,nLast);