Азбука программирования в Win32 API


Азбука программирования в Win32 API - стр. 107


/p>

IParam сообщения LB_DIR указывает на строку, которая определяет, какие файлы необходимо добавить в список. Строка формируется по правилам, принятым ещё в MS DOS, то есть, к примеру, для того, чтобы отобразить все файлы в директории MyDir на диске С: необходимо записать «c:\VMyDir\\*.*»

Удаление элемента из списка производится посредством посылки списку сообщения LB DELETESTRING. В wParam этого сообщения необходимо указать номер удаляемого элемента. При анализе возвра­щаемого значения необходимо учесть, что при нормальном удалении возвращается число оставшихся элементов списка. Значение LB ERR должно указать программисту на то, что он неверно указал номер уда­ляемого элемента.

Вторая большая группа сообщений - это

Сообщения, обеспечивающие навигацию в списке

Под навигацией в списке я понимаю возможность программы опреде­лить, где ешходится указатель (выделенный элемент) списка и/или уста­новить указатель на тот элемент, который в данный момент требуется программе. Возможности здесь достаточно обширные.

Наверное, наиболее часто для определения места выделенного эле­мента в списке будет использоваться сообщение LB_GETCURSEL. Никаких параметров это сообщение не использует, и wParam, и IParam должны быть равны 0. Если возвращаемое значение равно LB_ERR, в списке нет выделенных элементов.

Сделать элемент выделенным позволяет сообщение LB_SETCURSEL, wParam которого должен содержать номер элемента, который должен

124

стать текущим. Это сообщение имеет дело только со списками, позво­ляющими одиночный выбор.

Узнать, какая строка или какие данные хранятся в элементе списка, можно с помощью сообщения EB_GETTEXT. wParam должно хранить индекс интересующего нас элемента, a IParam должно указывать на буфер, в который будут записаны строка или указатель на ассоциирован­ные данные.

Число элементов в списке может быть определено посредством сооб­щения LB GETCOUNT. Параметры этого сообщения не используются и должны быть установлены в 0, а возвращает оно число элементов в списке. Одна тонкость - число элементов всегда на 1 больше индекса последнего элемента списка. Например, в списке один элемент. Его помер будет равным нулю, но EB_GETCOUNT вернет 1.




Начало  Назад  Вперед



Книжный магазин