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


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


Поле cChildren имеет значение, равное единице, в том случае, когда у элемента есть дочерние элементы. В противном случае значение этого поля равно нулю.

И наконец, последнее поле - IParam - хранит данные, связанные с эле­ментом. Об этих данных мы уже говорили при обсуждении окон списков.

На этом заканчивается рассмотрение параметров сообщения TVMJNSERTITEM. Много ли еще подобных структур ждет нас? Ко­нечно^ работает все это эффективно и эффектно (самоё Wmdows'95 и Windows NT тому подтверждение!), но, по-моему, иногда фирме Microsoft неплохо было бы подумать и о тех, кто будет изучать ее творе­ния! ( © )

Мы изучили только параметры сообщения. Еще нужно узнать, что возвращает функция, с помощью которой было послано данное сообще­ние. А возвращает она при успешном завершении хэндл элемента, а в случае неудачи - NULE.

Те же действия, как читатель уже догадался, могут быть произведены с помощью макроса TreeViewJmsertItem().

После изучения структуры типа TVJTEM, рекомендую читателю са­мостоятельно изучить работу сообщений TVM GETITEM и TVM SETITEM. В них тоже используется структура этого типа, поэтому никаких сложностей встретиться не должно.

В каждый момент элемент, у которого есть дочерние элементы, может быть «свернут» или «распахнут». Элемент автоматически меняет свое состояние либо при двойном щелчке мышью на нем, либо при щелчке мышью на кнопке элемента, если, конечно, у элемента установлен стиль TVSJ-IASBUTTONS. Программа может изменять состояние элемента с помощью посылки окну просмотра деревьев сообщений TVM_EXPAND или, что то же самое, обращением к макросу TreeView_Expand(). IParam этого сообщения определяет хэндл элемента, с которым производится

198

действие, a wParam определяет, что нужно произвести с элементом. В данном случае wParam

может принимать значения, приведенные в табл. 50.

В случае изменения состояния элемента окно просмотра деревьев по­сылает родительскому окну сообщение WMJNOTIFY, посредством которого передает информацию о том, что состояние элемента каким-то образом изменилось. В случае «распахивания» или «сворачивания» элемента родительскому окну посылаются сообщения TVN_ITEMEXPANDING до «распахивания» или «сворачивания» и TVNJTEMEXPANDED - после.




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



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