Шаг 39.
Редактор Resource Workshop.
Список

    На этом шаге мы рассмотрим блоки списка.

    Список - это управляющий элемент, содержащий прямоугольную область со списком текстовых строк. Обычно пользователь может просматривать то, что выводится в списке, и выбирать один или более элементов. Список посылает порождающему окну сообщение о выборе элемента (элементов). Списки часто выводятся в диалоговом окне File Open (Открытие файла).

    Если размер списка элементов превышает длину списка, вы можете добавить в список полосу прокрутки.

    Кроме других описанных ранее параметров диалоговое окно List Box Style имеет параметры Owner Drawing и List Box.


Рис.1. Диалоговое окно List Box Style

    Параметр Owner Drawing (Отображение пользователя) определяет, будет ли содержащийся в блоке список отображаться самим списком или прикладной программой. Выберите атрибуты из следующей таблицы:

Таблица 1. Параметры отображения пользователя
Параметр Описание
Not Owner Draw (Не пользовательское отображение) Отображением списка управляет сам список.
Fixed (Фиксированный) Прикладная программа отображает список в ответ на сообщение WM_DRAWIТЕМ. Прикладная программа отвечает также на сообщение WM_COMPAREITEM, WM_DELETEITEM, WM_MEASUREITEM. Блок списка управляет передачей сообщения WM_MEASUREITEM прикладной программе только когда блок списка первоначально отображается, фиксируя высоту элемента блока списка.
Variable (Переменный) Прикладная программа отображает блок списка в ответ на сообщение WM_DRAWIТЕМ. Прикладная программа отвечает также на cообщение WM_COMPAREITEM, WM_DELETEITEM, WM_MEASUREITEM. Блок списка управляет передачей сообщения WM_MEASUREITEM прикладной программе для каждого элемента списка. Каждый элемент списка может иметь различную высоту.
Has Strings (Имеет строки) Если вы выбрали параметр Fixed или Variable блок списка сохраняет текст каждого элемента списка в сообщении LB_INSERTSTRING или LB_ADDSTRING. Блок списка может также получать элементы списка из сообщения LB_GETTEXT.

    Параметры списка позволяют вам выполнить его дальнейшее определение. Выберите один иди более параметров из следующей таблицы:

Таблица 2. Параметры блока списка
Параметр Описание
Notify (Уведомление) Когда пользователь щелкает на элементе списка кнопкой мыши, посылает порождающему окну сообщение ввода (по умолчанию).
Sort (Сортировка) Сортирует список в алфавитном порядке.
Multiple Select (Множественный выбор) Позволяет пользователю выбирать более одного элемента за один раз. Пользователь может также включать и выключать отдельные элементы.
Don't Redraw (Не нужно повторного отображения) Предотвращает повторное отображение блока списка при его изменении.
Tab Stops (Позиции табуляции) Организует информацию в блоке списка по столбцам. По умолчанию ширина столбца равна 32 диалоговым единицам или 8 символам. Вы можете для форматирования текста использовать символы Tab (\х09). (Если вы хотите изменить ширину столбца, прикладная программа устанавливает свои собственные позиции табуляции с помощью сообщения LB_SETTABSTOPS.)
Integral Height (Полная высота) Приводит к тому, что во время выполнения приложения каждый элемент списка будет виден целиком (по умолчанию). Если параметр Integral Height установлен, и размер списка нужно изменить, чтобы вывести элементы полностью, блок списка уменьшается в размере. Например, во время выполнения полностью выводятся три элемента, но еще один элемент вмещается не полностью, то блок списка уменьшится, так что выводиться будут только три элемента.
Multi Column (Несколько столбцов) Позволяет пользователю горизонтально прокручивать блок списка для работы с несколькими столбцами. Если вы включите данный параметр, прикладная программа должна передать сообщение LB_SETCOLWIDTH, чтобы установить ширину столбца в элементах изображения.
Pass Keyboard Input (Передача ввода с клавиатуры) Передает то, что пользователь набирает на клавиатуре.
Expend Select (Расширенный выбор) Когда данный параметр используется для списка с множественным выбором, данный атрибут модифицирует характер выделения пользователем более одного элемента в списке.

    На следующем шаге мы рассмотрим строки редактирования.




Предыдущий шаг Содержание Следующий шаг