|
| БЕСПЛАТНАЯ ежедневная online лотерея! Выигрывай каждый день БЕСПЛАТНО! |
|
|
Owner-Drawn Combo Boxes
An application can create an owner-drawn combo box to take responsibility for painting list items. The parent window or dialog box of an owner-drawn combo box (its owner) receives WM_DRAWITEM messages when a portion of the combo box needs to be painted. An owner-drawn combo box can list information other than, or in addition to, text strings. Owner-drawn combo boxes can be of any type. However, the edit control in a simple or drop-down combo box can only display text, while the owner paints the selection field in a drop-down list box.
The owner of an owner-drawn combo box must process the WM_DRAWITEM message. This message is sent whenever a portion of the combo box must be redrawn. The owner may need to process other messages, depending on the styles specified for the combo box. An application can create an owner-drawn combo box by specifying the CBS_OWNERDRAWFIXED or CBS_OWNERDRAWVARIABLE style. If all list items in the combo box are the same height, such as strings or icons, an application can use the CBS_OWNERDRAWFIXED style. If list items are of varying height, bitmaps of different size, for example, an application can use the CBS_OWNERDRAWVARIABLE style.
The owner of an owner-drawn combo box can process a WM_MEASUREITEM message to specify the dimensions of list items in the combo box. If the application creates the combo box by using the CBS_OWNERDRAWFIXED style, Windows sends the WM_MEASUREITEM message only once. The dimensions specified by the owner are used for all list items. If the CBS_OWNERDRAWVARIABLE style is used, Windows sends a WM_MEASUREITEM message for each list item added to the combo box. The owner can determine or set the height of a list item at any time by using the CB_GETITEMHEIGHT and CB_SETITEMHEIGHT messages, respectively.
If the information displayed in an owner-drawn combo box includes text, an application can keep track of the text for each list item by specifying the CBS_HASSTRINGS style. Combo boxes with the CBS_SORT style are sorted based on this text. If a combo box is sorted and not of the CBS_HASSTRINGS style, the owner must process the WM_COMPAREITEM message. In an owner-drawn combo box, the owner must keep track of list items containing information other than or in addition to text. One convenient way to do this is to save the handle of the information as item data. For more information about item data, see Data Associated with List Items. To free data objects associated with items in a combo box, the owner can process the WM_DELETEITEM message.
For an example of an owner-drawn combo box, see Creating an Owner-Drawn Combo Box.
| Пригласи друзей и счет твоего мобильника всегда будет положительным! |
| Пригласи друзей и счет твоего мобильника всегда будет положительным! |
Owner-Drawn Combo БОКСИРУЕТ
Приложение может создать сделанного владельца combo ящик, чтобы принимать ответственность за живопись пунктов списка. Родительское окно или диалоговый ящик сделанного владельца combo боксируют приемники ( владелец) сообщения WM_DRAWITEM когда часть ящика combo должна быть закрашена. Сделанный владелец combo блок может указать информацию кроме, или дополнительно к, текстовые строки. Сделанный Владелец combo блоки может быть любого типа. Тем не менее, управление редактирования в простой или капле-вниз combo блок может только отобразить текст, тогда как владелец закрашивает область выбора в блоке капли-вниз список.
Владелец сделанного владельца combo блок должен обработать сообщение WM_DRAWITEM. Это сообщение послано всякий раз, когда часть блока combo должна быть redrawn. Владелец возможно нужно обрабатывать другие сообщения, в зависимости от стилей определенных для блока combo. Приложение может создать сделанного владельца combo блок определяя CBS_OWNERDRAWFIXED или стиль CBS_OWNERDRAWVARIABLE. Если все пункты списка в блоке combo - та же высота, как например, строки или иконки, приложение может использовать стиль CBS_OWNERDRAWFIXED. Если пункты списка - переменной высоты, побитовых отображений другого размера, например, приложение может использовать стиль CBS_OWNERDRAWVARIABLE.
Владелец сделанного владельца combo блок может обработать сообщение WM_MEASUREITEM, чтобы определять измерения пунктов списка в блоке combo. Если приложение создает блока combo используя стиль CBS_OWNERDRAWFIXED, Windows посылает сообщение WM_MEASUREITEM только как только. Измерения определенные владельцем использованы для всех пунктов списка. Если стиль CBS_OWNERDRAWVARIABLE использован, Windows посылает сообщение WM_MEASUREITEM для каждого пункта списка добавленного к блоку combo. Владелец может определить или устанавливать высоту пункта списка в любое время используя CB_GETITEMHEIGHT и сообщения CB_SETITEMHEIGHT, соответственно.
Если информация отображенная в сделанном владельце combo блок включает текст, приложение может следить текста для каждого пункта списка определяя стиль CBS_HASSTRINGS. Combo Боксирует со стилем CBS_SORT отсортированы основанное в этом тексте. Если блок combo отсортирован и не стиля CBS_HASSTRINGS, владелец должен обработать сообщение WM_COMPAREITEM. В сделанном владельце combo блок, владелец должен следить пунктов списка, содержащих информацию кроме или дополнительно к тексту. Один удобный путь делать это должно сохранять ручку информации как данные пункта. Более подробно о данных пункта, смотри Данные Связанные Пунктами Списка. Чтобы освобождать объекты данных связанные пунктами в блока combo, владелец может обработать сообщение WM_DELETEITEM.
Для примера сделанного владельца combo блок, смотри Создавая Блока Owner-Drawn Combo.
|
|
|
|
| |