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


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


/p>

Сообщение TCM_SETITEMEXTRA может в работе окна с закладками использоваться только один раз и только до момента добавления первой закладки. Некоторые сообщения в этом списке, которые могут использо­вать параметры как в Unicode, так и в ANSI-кодировках, сами являются макросами. В таких случаях в графе «Значение» оставлен пропуск. Для примера ниже приведено описание макроса TCM_GETITEM:

#defme TCM_GETITEM/\

#deime TCM_GETITEMW

ffifdef UNICODE

#defme TCM_GETITEM

#eise

«define TCM_GETITEM

#endif

(TCM_FIRST + 5)

(TCM_FIRST + 60)

TCM GETITEMW TCM GETITEMA

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

Имя каждого макроса образуется из имени сообщения:

1. От имени сообщения отбрасывается префикс ТСМ_.

2. Все слова оставшейся части изменяются таким образом, что про­писной остается только первая буква слова, а все остальные делаются строчными, например, Getltem, Insertltem и т. д.

3. К полученному добавляется префикс TabCtrl_, например, TabCtrl Getltem, TabCtrl Insertltem.

186

Сообщение, которое посылается тем или иным макросом, определяет­ся именем этого макроса. Каждый макрос может содержать один, два или три параметра. Число аргументов определяется очень просто - (число параметров сообщения, не равных нулю) + I. Если у сообщения wParam и IParam равны 0, то у макроса определен только первый аргумент, если определен только wParam - макрос требует наличия двух аргументов. Первым аргументом макроса всегда является хэндл окна, которому посылается сообщение, т. е. хэндл окна с закладками. Второй и третий аргументы (при необходимости) - это wParam и IParam сообщения соот­ветственно. К примеру, макрос TabCtrl_DeleteAHItems() имеет один аргумент, макрос TabCtrl Deleteltem() - два аргумента, TabCtrl Insertltem() - все три аргумента.

Итак, с управляющими сообщениями и макросами все ясно. А как об­стоит дело с получением информации о том, что выбрана одна из закла­док'.' Если пользователь что-то сделал с закладкой, то закладка посылает родительскому окну сообщение WMJNOTIFY, при этом wParam этого сообщения содержит идентификатор элемента управления, a




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



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