На главную

On-line справка по Win32 API

Написать письмо
БЕСПЛАТНАЯ ежедневная online лотерея! Выигрывай каждый день БЕСПЛАТНО!
Список всех статей A-B-C-D-E-F-G-H-I-J-K-L-M-N-O-P-Q-R-S-T-U-V-W-X-Y-Z | Скачать Вниз

Callback Items and the Callback Mask



For each of its items, a list view control typically stores the label text, the image list index of the item's icons, and a set of bit flags for the item's state. You can define callback items or change the control's callback mask to indicate that the application ѕ rather than the control ѕ stores some or all of this information. You may want to use callbacks if your application already stores some of this information.

A callback item in a list view control is an item for which the application stores the text, icon index, or both. You can define callback items when you send the LVM_INSERTITEM message to add an item to the list view control. If the application stores the text for the item or subitem, set the pszText member of the item's LV_ITEM structure to LPSTR_TEXTCALLBACK. If the application stores the icon index for an item, set the iImage member of the item's LV_ITEM structure to I_IMAGECALLBACK.

The callback mask of a list view control is a set of bit flags that specify the item states for which the application, rather than the control, stores the current data. The callback mask applies to all of the control's items, unlike the callback item designation, which applies to a specific item. The callback mask is zero by default, meaning that the list view control stores all item state information. After creating a list view control and initializing its items, you can send the LVM_SETCALLBACKMASK message to change the callback mask. To get the current callback mask, send the LVM_GETCALLBACKMASK message.

When a list view control must display or sort a list view item for which the application stores callback information, the control sends the LVN_GETDISPINFO notification message to the control's parent window. This message specifies an LV_DISPINFO structure that specifies the type of information required and identifies the item or subitem of interest. The parent window must process LVN_GETDISPINFO to provide the requested data.
If the list view control detects a change in an item's callback information (that is, a change in the text, icon, or state information being tracked by the application), the control sends an LVN_SETDISPINFO notification message to notify you of the change.

If you change a callback item's attributes or state bits, you can use the LVM_UPDATE message to force the control to repaint the item. This message also causes the control to arrange its items if it has the LVS_AUTOARRANGE style. You can use the LVM_REDRAWITEMS message to redraw a range of items by invalidating the corresponding portions of the list view control's client area.
By effectively using callback items and the callback mask, you can ensure that each item attribute is maintained in only one place. Doing this can simplify your application, but the only space saved is the memory that would otherwise be required to store item labels and subitem text.


Пригласи друзей и счет твоего мобильника всегда будет положительным!
Предыдущая статья
 
Сайт Народ.Ру Интернет
Следующая статья
Пригласи друзей и счет твоего мобильника всегда будет положительным!

Пункты Возврата и Возврат Маскируются



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

Пункт возврата на управлении вида списка - пункт для которого приложение загружает текстовый, иконный индекс, или оба. Вы можете определить пункты возврата когда Вы посылаете сообщение LVM_INSERTITEM, чтобы добавлять пункт к управлению вида списка. Если приложение загружает тексту для пункта или подэлемента, установите элемент pszText структуры пункта LV_ITEM на LPSTR_TEXTCALLBACK. Если приложение загружает иконный индекс для пункта, установите элемент iImage структуры пункта LV_ITEM на I_IMAGECALLBACK.

Маска возврата управления вида списка является установкой битовых флагов, которые определяют состояния пункта для которых приложение, а не управление, загружает текущие данные. Маска возврата относится ко всем управляющим пунктам, в отличие от обозначения пункта возврата, которые относятся к специфическому пункту. Маска возврата является нулем по умолчанию, означая, что управление вида списка загружает всю государственную информацию пункта. После создания управления вида списка и инициализируя пункты, Вы можете послать сообщение LVM_SETCALLBACKMASK, чтобы изменять маску возврата. Для того, чтобы получать текущую маску возврата, пошлите сообщение LVM_GETCALLBACKMASK.

Когда управление вида списка должно отобразить или сортировать пункт вида списка для которого приложение загружает информацию возврата, управление посылает сообщение уведомления LVN_GETDISPINFO в управляющее родительское окно. Это сообщение определяет структуру LV_DISPINFO, которая определяет тип информации требовал и идентифицировал пункт или подэлемент интереса. Родительское окно должно обработать LVN_GETDISPINFO, чтобы обеспечивать запрошенные данные.
Если управление вида списка обнаруживает изменение в информации возврата пункта (то есть, изменение в тексте, иконке, или государственной информации, прослеживанных приложением), управление посылает сообщение уведомления LVN_SETDISPINFO, чтобы уведомлять Вас об изменении.

Если Вы изменяете атрибуты пункта возврата или указываете биты, Вы можете использовать сообщение LVM_UPDATE, чтобы заставлять управление, чтобы перекрашивать пункт. Это сообщение также заставляет управление, чтобы размещать свои пункты если у него есть стиль LVS_AUTOARRANGE. Вы можете использовать сообщение LVM_REDRAWITEMS, чтобы перерисовывать дипазон пунктов аннулируя соответствующие части списка рассматривать управляющую область клиента.
Эффективно используя пункты возврата и маска возврата, Вы можете проверить, что каждый атрибут пункта поддержан на только одном месте. Делая это может упростить ваше приложение, но сохраненное единственное пространство - память, которая было бы в противном случае требуется загружать этикетки пункта и текста подэлемента.


Вверх Version 1.3, Oct 26 2010 © 2007, 2010, mrhx Вверх
 mrhx software  Русский перевод OpenGL  Русский перевод Win32 API
 
Используются технологии uCoz