Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Borland C++ 3.0

 Глава 4. Создание диалоговых окон
       -----------------------------------------------------------------

            Диалоговые окна дают пользователю возможность взаимодейство-
       вать с вашей прикладной программой. Диалоговое окно обычно предс-
       тавляет собой всплывающее окно,  которое  позволяет  пользователю
       вводить информацию  (задавать  открываемые  файлы,  цвета экрана,
       текст для поиска и т.д.).

            Когда в прикладной программе выводится диалоговое  окно, оно
       появляется в  виде  окна экрана.  Диалоговое окно содержит обычно
       некоторые управляющие элементы, например, командные кнопки, текс-
       товые блоки и полосы прокрутки. Элементы управления обычно позво-
       ляют пользователю задавать информацию,  но могут также  использо-
       ваться  в диалоговом окне для вывода статического текста и графи-
       ки.

       ----T-----------------------------------------------------------¬
       ¦ - ¦                    Options                                ¦
       +---+-----------------------------------------------------------+
       ¦                                                               ¦
       ¦     --Shape-----------¬    --Colors-------------------------¬ ¦
       ¦     ¦                 ¦    ¦  --¬             --¬           ¦ ¦
       ¦     ¦ 0 Square        ¦    ¦  ¦X¦ Blue ¦      ¦ ¦ Red       ¦ ¦
       ¦     ¦                 ¦    ¦  L-- ------      L--           ¦ ¦
       ¦     ¦                 ¦    ¦  --¬             --¬           ¦ ¦
       ¦     ¦ O Circle        ¦    ¦  ¦X¦ Yelow       ¦ ¦ White     ¦ ¦
       ¦     ¦                 ¦    ¦  L--             L--           ¦ ¦
       ¦     ¦                 ¦    L--------------------------------- ¦
       ¦     ¦ O Triangle      ¦                                       ¦
       ¦     ¦                 ¦                                       ¦
       ¦     L------------------                                       ¦
       ¦                                                               ¦
       ¦  ---------------¬     ---------------¬     ---------------¬   ¦
       ¦  ¦              ¦-    ¦              ¦-    ¦              ¦-  ¦
       ¦  ¦      OK      ¦-    ¦     Cancel   ¦-    ¦     Help     ¦-  ¦
       ¦  ¦              ¦-    ¦              ¦-    ¦              ¦-  ¦
       ¦  L----------------    L----------------    L----------------  ¦
       ¦    ---------------      ---------------      ---------------  ¦
       ¦                                                               ¦
       L----------------------------------------------------------------

            Рис. 4.1 Типичное диалоговое окно

            Options -  параметры;  Shape - форма;  Colors - цвета;  OK -
       выполнить; Cancel - отменить; Help - справка

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

            С точки  зрения программиста диалоговое окно - это родитель-
       ское окно, а каждый управляющий элемент представляет собой дочер-
       нее окно и действует как устройство ввода. Чтобы создать диалого-
       вое окно, нужно заполнить пустое диалоговое окно нужными управля-
       ющими элементами.  Каждый  диалоговый элемент ответственен за ин-
       формацию, поступающую от "мыши" или с клавиатуры,  в  зависимости
       от того, что нажимает пользователь.

            Редактор диалогов  Пакета  разработчика  ресурсов  облегчает
       создание и редактирование диалоговых окон  прикладной  программы.
       При работе с диалоговыми окнами выполняются четыре основных зада-
       чи. Вам нужно:

            - запустить редактор диалогов;
            - настроить диалоговое окно;
            - проверить диалоговое окно;
            - сохранить его.

            Первая задача, запуск диалогового окна, выводит на экран ди-
       алоговое окно, которое вы можете настроить. Вторая и третья зада-
       ча (настройка диалогового окна и его проверка) - это функции  са-
       мого редактора  диалогов.  Четвертая  задача сохраняет диалоговое
       окно, которое вы создали или отредактировали.

            В конце  данной  главы приведен пример проекта,  который ил-
       люстрирует редактор диалогов.

                          Запуск редактора диалогов
       -----------------------------------------------------------------

            Независимо от того, хотите вы создать новое диалоговое окно,
       или отредактировать существующее, нужно использовать редактор ди-
       алогов. При запуске редактора диалогов выводится диалоговое окно,
       которое можно  редактировать в соответствии с потребностями вашей
       прикладной программы. Характер запуска редактора диалогов зависит
       от того, хотите вы создать новое диалоговое окно или отредактиро-
       вать существующее.
                      Создание нового диалогового окна
       -----------------------------------------------------------------

            Чтобы запустить редактор для создания нового диалогового ок-
       на, сделайте следующее:

            1. Откройте проект.

            2. Выберите команду Resource¦New  (Ресурс¦Новый).  Выводится
               диалоговое окно New Resource (Новый ресурс).


       ----T-----------------------------------------------------------¬
       ¦ - ¦                     New Resource                          ¦
       +---+-------------------------------------------T---------------+
       ¦   Resource type                               ¦               ¦
       ¦   ------------------------------------------¬ ¦ ------------¬ ¦
       ¦   ¦ DIALOG                                  ¦ ¦ ¦  _        ¦-¦
       ¦   ¦ -------------------------------T-¬      ¦ ¦ ¦ V    OK   ¦-¦
       ¦   ¦ ¦ ACCELERATORS                 ¦^¦      ¦ ¦ L-------------¦
       ¦   ¦ ¦ BITMAP                       +-+      ¦ ¦   ------------¦
       ¦   ¦ ¦ CURSOR                       ¦-¦      ¦ ¦               ¦
       ¦   ¦ ¦------------------------------+-¦      ¦ ¦               ¦
       ¦   ¦ ¦¦DIALOG                       ¦-¦      ¦ ¦               ¦
       ¦   ¦ ¦L-----------------------------+-¦      ¦ ¦ ------------¬ ¦
       ¦   ¦ ¦ FONT                         +-+      ¦ ¦ ¦           ¦-¦
       ¦   ¦ ¦                              ¦v¦      ¦ ¦ ¦ X  Cancel ¦-¦
       ¦   ¦ L------------------------------+--      ¦ ¦ L-------------¦
       ¦   L------------------------------------------ ¦   ------------¦
       ¦   Place resource in                           ¦               ¦
       ¦   ------------------------------------------¬ ¦               ¦
       ¦   ¦                                         ¦ ¦ ------------¬ ¦
       ¦   ¦  -----------------------------------T-¬ ¦ ¦ ¦..  New    ¦-¦
       ¦   ¦  ¦ TYPICAL.RC                       ¦v¦ ¦ ¦ ¦... Type   ¦-¦
       ¦   ¦  L----------------------------------+-- ¦ ¦ L-------------¦
       ¦   ¦                                         ¦ ¦   ------------¦
       ¦   L------------------------------------------ ¦               ¦
       ¦                                               ¦ ------------¬ ¦
       ¦                                               ¦ ¦           ¦-¦
       ¦                                               ¦ ¦ ?  Help   ¦-¦
       ¦                                               ¦ L-------------¦
       ¦                                               ¦   ------------¦
       ¦                                               ¦               ¦
       L-----------------------------------------------+----------------

            Рис. 4.2 Диалоговое окно New Resource

            New Resource - новый ресурс;  Place resource in -  поместить
       ресурс в...;  Resource type - тип ресурса; OK - выполнить; Cancel
       - отмена; New type - новый тип; Help - справка

            3. В  блоке  списка  Resource  Type  (Тип  ресурса) выберите
               DIALOG, затем выберите командную кнопку OK.

               Теперь вы находитесь в редакторе диалогов.  В левой части
               находится  пустое диалоговое окно,  которое вы будете за-
               полнять.  В правой части находятся окна Caption  (Заголо-
               вок), палитра Aligment (Выравнивание) и Tools (Инструмен-
               тальные средства). В нижней части окна редактора диалогов
               находится строка состояния.

       ----T---------------------------------------------------T---T---¬
       ¦ - ¦----------------Resource-Workshop------------------¦ v ¦ v ¦
       +---+---------------------------------------------------+---+---+
       ¦   File Edit Resource Control Options Window Help          ¦   ¦
       +-----------------------------------------------------------+-T-+
       ¦--T--------------------------------------¬ --T-----------¬   ¦^¦
       ¦¦=¦             DIALOG_1                 ¦ ¦=¦ Caption   ¦   +-+
       ¦+-+--------------------------------------+ +-+-----------+   ¦-¦
       ¦¦                                        ¦ +-T-----T-----+   ¦-¦
       ¦¦                                        ¦ ¦=¦Align¦Tools¦   ¦-¦
       ¦¦                                        ¦ +-+-T-T-+-T-T-+   ¦-¦
       ¦¦                                        ¦ ¦>¦<¦>¦<¦^¦С¦О¦   ¦-¦
       ¦¦                                        ¦ +-+-+-+-+-+-+-+   ¦-¦
       ¦¦                                        ¦ ¦v¦^¦v¦^¦+¦¦¦-¦   ¦-¦
       ¦¦                                        ¦ L-+-+-+-+-+-+-+   ¦-¦
       ¦¦                                        ¦         ¦G¦"¦x¦   ¦-¦
       ¦¦                                        ¦         +-+-+-+   ¦-¦
       ¦¦                                        ¦         ¦1¦-¦¬¦   ¦-¦
       ¦¦                                        ¦         +-+-+-+   ¦-¦
       ¦¦                                        ¦         ¦T¦Г¦U¦   ¦-¦
       ¦¦                                        ¦         +-+-+-+   ¦-¦
       ¦L-----------------------------------------         ¦ш¦:¦ ¦   ¦-¦
       ¦                                                   +-+-+-+   ¦-¦
       ¦                                                   ¦u¦ ¦ф¦   ¦-¦
       ¦                                                   L-+-+--   +-+
       ¦                                                             ¦v¦
       +-T---------------------------------------------------------T-+-+
       ¦>¦---------------------------------------------------------¦<¦ ¦
       +-+-----------------------T---------------------------------+-+-+
       ¦ Ready                   ¦ Modify                              ¦
       L-------------------------+--------------------------------------

            Рис. 4.3 Редактор диалогов (см.  также в оригинале руководс-
       тва)

            Resource Workshop -  Пакет  разработчика  ресурсов;  File  -
       файл; Edit - редактирование;  Resource - ресурс; Control - управ-
       ление; Options - параметры Window - окно Help -  справка; Caption
       - заголовок;  Alignment - выравнивание;  Tools - инструментальные
       средства; Ready - готов; Modify - модификация

                Редактирование существующего диалогового окна
       -----------------------------------------------------------------

            Чтобы запустить  редактор диалогов для редактирования диало-
       гового окна,  которое уже существует в  файле  проекта,  сделайте
       следующее:

            1. Откройте файл проекта,  содержащий диалоговое окно, кото-
               рое вы хотите редактировать.

            2. Найдите в окне проекта диалоговое окно, которое вы будете
               редактировать, и дважды щелкните на нем кнопкой "мыши".

                  Примечание: Об открытии файла описания проекта расска-
             зывается в Главе 3.

            Редактор диалогов открывает выбранное вами диалоговое окно и
       выводит  его  слева для редактирования.  В правой части находятся
       окна Caption (Заголовок), палитра Aligment (Выравнивание) и Tools
       (Инструментальные средства). В нижней части окна редактора диало-
       гов находится строка состояния.

                         Настройка диалогового окна
       -----------------------------------------------------------------

            Находясь в редакторе диалогов, вы можете определить свое ди-
       алоговое окно.  Вы можете также добавить,  изменить, переупорядо-
       чить. переместить,  изменить  в  размере  или  удалить диалоговые
       элементы управления, благодаря чему диалоговое окно будет функци-
       онировать так, как вы хотите.
                        Определение диалогового окна
       -----------------------------------------------------------------

            С помощью Пакета разработчика ресурсов  вы  можете  задавать
       заголовок диалогового окна,  определить тип этого окна,  выбрать,
       какой шрифт будет в нем выводиться и т.д.

            Щелкните кнопкой "мыши", позиционировашись на строке заголо-
       вка  на внешнем крае диалогового окна,  чтобы выбрать его.  Когда
       диалоговое окно выбрано, Пакет разработчика ресурсов выводит вок-
       руг него рамку изменения размера.

            Теперь вы можете вносить в диалоговое окно необходимые изме-
       нения. Вы можете:

            - Изменить размер диалогового окна путем  буксировки  с  по-
              мощью "мыши" соответствующего края или угла.

            - Перемещать  окно,  буксируя  курсор "мыши" вне диалогового
              окна или используя клавиши стрелок.

            - Нажать клавишу Enter или дважды  щелкнуть  кнопкой  "мыши"
              где-либо  в  окне для вывода диалогового окна Window Style
              (Стиль окна).  (Если окно еще  не  выбрано,  нужно  дважды
              щелкнуть  кнопкой "мыши" на его строке заголовка или внеш-
              ней границе.)


       ----T-----------------------------------------------------------¬
       ¦ - ¦                   Window Style                            ¦
       +---+-------------------------------------------T---------------+
       ¦---------T------------T¬ Dialog style          ¦               ¦
       ¦¦Caption ¦-DIALOG-----¦¦---------------------¬ ¦               ¦
       ¦¦        +------------+¦¦--¬                 ¦ ¦               ¦
       ¦¦Clases  ¦            ¦¦¦¦v¦ System menu     ¦ ¦               ¦
       ¦¦        +------------+¦¦L--                 ¦ ¦ ------------¬ ¦
       ¦¦Menu    ¦            ¦¦¦--¬                 ¦ ¦ ¦  _        ¦-¦
       ¦L--------+------------+-¦¦ ¦ Thick frame     ¦ ¦ ¦ V    OK   ¦-¦
       ¦                        ¦L--                 ¦ ¦ L-------------¦
       ¦Window type  Frame style¦--¬                 ¦ ¦   ------------¦
       ¦------------¬----------¬¦¦ ¦ Vertical Scroll ¦ ¦               ¦
       ¦¦>o Popup   ¦¦< Dialog ¦¦L--                 ¦ ¦               ¦
       ¦¦           ¦¦  frame  ¦¦--¬                 ¦ ¦               ¦
       ¦¦ < Child   ¦¦< Border ¦¦¦ ¦ Minimize box    ¦ ¦               ¦
       ¦¦           ¦¦         ¦¦L--                 ¦ ¦ ------------¬ ¦
       ¦¦ < Overlapp¦¦>oCaption¦¦--¬                 ¦ ¦ ¦           ¦-¦
       ¦¦           ¦¦         ¦¦¦ ¦ Maximize box    ¦ ¦ ¦ X  Cancel ¦-¦
       ¦¦ < Iconic  ¦¦< No     ¦¦L--                 ¦ ¦ L-------------¦
       ¦¦   popup   ¦¦  Border ¦¦--¬                 ¦ ¦   ------------¦
       ¦L------------L----------¦¦ ¦ Absolute align  ¦ ¦               ¦
       ¦                        ¦L--                 ¦ ¦               ¦
       ¦ Font                   ¦--¬                 ¦ ¦               ¦
       ¦-----------------------¬¦¦ ¦ System modal    ¦ ¦               ¦
       ¦¦       --------------¬¦¦L--                 ¦ ¦ ------------¬ ¦
       ¦¦ Face  ¦             ¦¦¦--¬                 ¦ ¦ ¦  _        ¦-¦
       ¦¦       L--------------¦¦¦ ¦ Local edit      ¦ ¦ ¦./  Fonts  ¦-¦
       ¦¦       ---------¬     ¦¦L--                 ¦ ¦ L-------------¦
       ¦¦ Size  ¦        ¦     ¦¦--¬                 ¦ ¦   ------------¦
       ¦¦       L---------     ¦¦¦v¦ Modal frame     ¦ ¦               ¦
       ¦¦                      ¦¦L--                 ¦ ¦               ¦
       ¦¦                      ¦¦--¬                 ¦ ¦               ¦
       ¦L-----------------------¦¦ ¦ No idle messages¦ ¦               ¦
       ¦                        ¦L--                 ¦ ¦               ¦
       ¦                        ¦--¬                 ¦ ¦ ------------¬ ¦
       ¦                        ¦¦ ¦ Clip children   ¦ ¦ ¦           ¦-¦
       ¦                        ¦L--                 ¦ ¦ ¦ ?  Help   ¦-¦
       ¦                        ¦--¬                 ¦ ¦ L-------------¦
       ¦                        ¦¦ ¦ Clip sibling    ¦ ¦   ------------¦
       ¦                        ¦L--                 ¦ ¦               ¦
       ¦                        L--------------------- ¦               ¦
       L-----------------------------------------------+----------------

            Рис. 4.4 Диалоговое окно Window Style

            Window Style - стиль  окна;  Dialog  style  -  тип  диалога;
       Caption - заголовок;  Clases - классы; Menu - меню; System menu -
       системное меню;  Thick frame - жирная граница;  Vertical Scroll -
       вертикальная прокрутка; Minimize box - блок минимизации; Maximize
       box - блок максимизации;  Absolute align - абсолютное  выравнива-
       ние;  System modal - системное модальное;  Local edit - локальное
       редактируемое;  Modal frame - модальная рамка; No idle messages -
       нет холостых сообщений;  Clip children - вырезание дочерних окон;
       Clip sibling - вырезание окон равного уровня;  Popup -  всплываю-
       щее;  Child - дочернее;  Overlapped - перекрывающееся; Iconic - с
       пиктограммой;  Popup - всплывающее; Dialog frame - рамка диалого-
       вого окна; Border - граница; Caption - заголовок; No Border - нет
       границы;  OK - выполнить; Cancel - отмена; Fonts - шрифты; Help -
       справка

            С помощью диалогового окна Window Style вы можете задать бо-
       лее подробную  информацию о таких параметрах, как заголовок, типы
       рамок и шрифты диалогового окна.
                            Добавление заголовка
       -----------------------------------------------------------------

            Задать заголовок нового диалогового окна  можно  несколькими
       способами. Вы  можете  использовать  окно Caption (Заголовок) или
       диалоговое окно Window Style (Стиль окна).

                            ----T----------------¬
                            ¦ - ¦    Caption     ¦
                            +---+----------------+
                            ¦DIALOG_1            ¦
                            L---------------------

            Чтобы добавить к диалоговому окну заголовок, нужно:

            1. Щелкнуть кнопкой "мыши", позиционировавшись на строке за-
               головка для его выбора.

            2. Наберите  новый заголовок (диалоговое окно остается выде-
               ленным),  и вы увидите,  что он появляется в строке заго-
               ловка,  либо  нажмите  клавишу  F6 для перемещения в окно
               Caption (Заголовок) и  замените  имя,  выбранное  Пакетом
               разработчика ресурсов, набрав новый заголовок.

            3. Нажмите клавишу Enter.

            Чтобы добавить  заголовок  с помощью диалогового окна Window
       Style (Стиль окна), сделайте следующее:

            1. Откройте диалоговое окно  Window  Style,  дважды  щелкнув
               кнопкой "мыши" на заголовке окна или внешней границе диа-
               логового окна, или выбрав диалоговое окно и нажав клавишу
               Enter.

            2. После Caption наберите заголовок, который вы хотите выво-
               дить в диалоговом окне, и нажмите Enter.

            3. Во Frame Style (тип рамки) выберите Caption  (С  заголов-
               ком).  Если вы выберите любой другой тип рамки, заголовок
               выводиться не будет.

            4. Активизируйте командную кнопку OK.


                               Выбор типа окна
       -----------------------------------------------------------------

            Для выбора  типа вашего диалогового окна откройте диалоговое
       окно Window Style. Следующая таблица позволит вам сделать выбор.

                                   Типы окна                 Таблица 4.1
       ---------------------T------------------------------------------¬
       ¦   Тип              ¦ Описание                                 ¦
       +--------------------+------------------------------------------+
       ¦   Popup            ¦ Всплывающее окно. Поскольку  всплывающими¦
       ¦   (Всплывающее)    ¦ является большинство  окон, это  значение¦
       ¦                    ¦ используется по умолчанию.               ¦
       ¦                    ¦                                          ¦
       +--------------------+------------------------------------------+
       ¦   Child            ¦ Дочернее окно текущего окна.             ¦
       ¦   (Дочернее)       ¦                                          ¦
       ¦                    ¦                                          ¦
       +--------------------+------------------------------------------+
       ¦   Overlapped       ¦ Перекрывающееся всплывающее окно, которое¦
       ¦   (Перекрывающееся)¦ частично или полностью может  закрываться¦
       ¦                    ¦ другим окном. Определить диалоговое  окно¦
       ¦                    ¦ как  перекрывающееся  можно только в  том¦
       ¦                    ¦ случае, если это основное окно прикладной¦
       ¦                    ¦ программы.                               ¦
       ¦                    ¦                                          ¦
       +--------------------+------------------------------------------+
       ¦   Iconic Popup     ¦ Всплывающее окно,  которое  первоначально¦
       ¦   (Окно с          ¦ выводилось в виде пиктограммы.           ¦
       ¦   пиктограммой)    ¦                                          ¦
       ¦                    ¦                                          ¦
       L--------------------+-------------------------------------------
                               Выбор типа окна
       -----------------------------------------------------------------

            Тип рамки диалогового окна определяет внешний вид рамки диа-
       логового окна,  и  будет ли диалоговое окно выводить строку заго-
       ловка в верхней части окна.

            Тип рамки диалогового окна можно выбрать с помощью  диалого-
       вого окна  Window  Style.  Возможные  варианты выбора приведены с
       следующей таблице:


                                 Типы рамки                  Таблица 4.2
       -----------------------T----------------------------------------¬
       ¦   Тип                ¦     Описание                           ¦
       +----------------------+----------------------------------------+
       ¦   Dialog Frame       ¦ Двойная рамка без строки заголовка.    ¦
       ¦   (диалоговая рамка) ¦                                        ¦
       ¦                      ¦                                        ¦
       +----------------------+----------------------------------------+
       ¦   Border (Граница)   ¦ Одинарная тонкая рамка без заголовка.  ¦
       ¦                      ¦                                        ¦
       +----------------------+----------------------------------------+
       ¦   Caption (Заголовок)¦ Одинарная тонкая рамка и строка  заго- ¦
       ¦                      ¦ ловка, где  можно  выводить  заголовок ¦
       ¦                      ¦ (по умолчанию).                        ¦
       ¦                      ¦                                        ¦
       +----------------------+----------------------------------------+
       ¦   No Border (Без     ¦ Нет рамки и строки заголовка.          ¦
       ¦   рамки)             ¦                                        ¦
       ¦                      ¦                                        ¦
       L----------------------+-----------------------------------------
                            Задание стиля диалога
       -----------------------------------------------------------------

            Стиль диалога определяет, как будет выглядеть диалоговое ок-
       но, и как пользователь будет с ним работать. Для диалогового окна
       вы можете выбрать один или более из следующих стилей:

                            Стили диалогового окна           Таблица 4.3
       ----------------------T-----------------------------------------¬
       ¦   Стиль             ¦ Описание                                ¦
       +---------------------+-----------------------------------------+
       ¦   System Menu       ¦ Включает в левой части строки  заголовка¦
       ¦   (Системное меню)  ¦ блок системного меню. Системное меню на-¦
       ¦                     ¦ зывают также управляющим меню. Системное¦
       ¦                     ¦ меню выводится только в том случае, если¦
       ¦                     ¦ в качестве типа рамки окна  вы выбираете¦
       ¦                     ¦ Caption   (С   заголовком).  (Caption  и¦
       ¦                     ¦ System Menu используются по умолчанию.  ¦
       ¦                     ¦                                         ¦
       ¦                     ¦ Если диалоговое окно определено, как до-¦
       ¦                     ¦ чернее  окно,  вместо  управляющего меню¦
       ¦                     ¦ вам выведется блок закрытия.            ¦
       ¦                     ¦                                         ¦
       +---------------------+-----------------------------------------+
       ¦   Thick Frame       ¦ Рисует вокруг  диалогового  окна  жирную¦
       ¦   (Жирная рамка)    ¦ рамку.  Этот  параметр  определяет,  что¦
       ¦                     ¦ увидит пользователь,  когда данное  окно¦
       ¦                     ¦ выведется  в  прикладной программе.  Ис-¦
       ¦                     ¦ пользуйте данный параметр, если вы хоти-¦
       ¦                     ¦ те, чтобы диалоговое окно имело изменяе-¦
       ¦                     ¦ мый размер.                             ¦
       ¦                     ¦                                         ¦
       ¦                     ¦ (Не путайте данный параметр с параметром¦
       ¦                     ¦ Thick Frame в команде редактора диалогов¦
       ¦                     ¦ Preferences. Данный параметр определяет,¦
       ¦                     ¦ как  будет  выглядеть  диалоговое  окно,¦
       ¦                     ¦ когда вы выбираете его в редакторе  диа-¦
       ¦                     ¦ логов.)                                 ¦
       ¦                     ¦                                         ¦
       +---------------------+-----------------------------------------+
       ¦   Vertical Scroll   ¦ Добавляет к рамке диалогового окна поло-¦
       ¦   (Вертикальная     ¦ су вертикальной прокрутки.              ¦
       ¦   прокрутка)        ¦                                         ¦
       ¦                     ¦                                         ¦
       +---------------------+-----------------------------------------+
       ¦   Horisontal Scroll ¦ Добавляет к рамке диалогового окна поло-¦
       ¦   (Горизонтальная   ¦ су горизонтальной прокрутки.            ¦
       ¦   прокрутка)        ¦                                         ¦
       ¦                     ¦                                         ¦
       +---------------------+-----------------------------------------+
       ¦   Minimize Box      ¦ Добавляет с правой стороны строки  заго-¦
       ¦   (Блок минимизации)¦ ловка командную кнопку минимизации.  Ко-¦
       ¦                     ¦ мандная кнопка   минимизации   выводится¦
       ¦                     ¦ только в том случае,  если вы  выбираете¦
       ¦                     ¦ также  в качестве типа рамки диалогового¦
       ¦                     ¦ окна Caption.                           ¦
       ¦                     ¦                                         ¦
       +---------------------+-----------------------------------------+
       ¦   Maximize Box      ¦ Добавляет с правой стороны строки  заго-¦
       ¦   (Блок             ¦ ловка командную кнопку максимизации. Ко-¦
       ¦   максимизации)     ¦ мандная кнопка  максимизации   выводится¦
       ¦                     ¦ только в том случае,  если вы  выбираете¦
       ¦                     ¦ также  в качестве типа рамки диалогового¦
       ¦                     ¦ окна Caption.                           ¦
       ¦                     ¦                                         ¦
       +---------------------+-----------------------------------------+
       ¦   Absolute Align    ¦ Делает координаты диалогового окна отно-¦
       ¦   (Абсолютное       ¦ сительными по отношению к  экрану  дисп-¦
       ¦   выравнивание)     ¦ лея, а не порождающего окна.            ¦
       ¦                     ¦                                         ¦
       +---------------------+-----------------------------------------+
       ¦   System Modal      ¦ Делает диалоговое  окно  модальным.  Это¦
       ¦   (Системное        ¦ означает, что пока окно не будет убрано,¦
       ¦   модальное)        ¦ пользователь не может  переключаться  ни¦
       ¦                     ¦ на что другое.                          ¦
       ¦                     ¦                                         ¦
       +---------------------+-----------------------------------------+
       ¦   Local Edit        ¦ Выделяет  в  динамически  распределяемой¦
       ¦   (Локальное        ¦ памяти  прикладной   задачи  управляющие¦
       ¦   редактирование)   ¦ элементы текстового редактирования.     ¦
       ¦                     ¦                                         ¦
       ¦                     ¦ Выберите Local Edit, если в вашей  прик-¦
       ¦                     ¦ ладной задаче требуется использовать со-¦
       ¦                     ¦ общения EM_SETHANDLE и EM_GETHANDLE.    ¦
       ¦                     ¦                                         ¦
       +---------------------+-----------------------------------------+
       ¦   Modal Frame       ¦ Обрамляет  рамку,  используя  комбинацию¦
       ¦   (Модальная        ¦ диалоговой рамки и  типа  заголовка  (по¦
       ¦   рамка)            ¦ умолчанию). Используйте Modal Frame, ес-¦
       ¦                     ¦ ли вы хотите, чтобы пользователь мог пе-¦
       ¦                     ¦ ремещать диалоговое окно.               ¦
       ¦                     ¦                                         ¦
       +---------------------+-----------------------------------------+
       ¦   No Idle Messages  ¦ Подавляет передачу в главное окно  прик-¦
       ¦   (Нет холостых     ¦ ладной программы сообщений WM_ENTERIDLE.¦
       ¦   сообщений)        ¦ Чтобы данный параметр действовал, диало-¦
       ¦                     ¦ говое окно должно быть модальным.       ¦
       ¦                     ¦                                         ¦
       +---------------------+-----------------------------------------+
       ¦   Clip Children     ¦ Предотвращает вывод  в  диалоговом  окне¦
       ¦   (Отсечение        ¦ дочерних окон области пользователя.     ¦
       ¦   дочерних окон)    ¦                                         ¦
       ¦                     ¦                                         ¦
       +---------------------+-----------------------------------------+
       ¦   Clip Sibling      ¦ Предотвращает вывод окон того же уровня,¦
       ¦   (Отсечение окон   ¦ что и данное окно. Отображение запрещено¦
       ¦   того же уровня)   ¦ только для данного окна. Во  всплывающем¦
       ¦                     ¦ окне данный параметр не требуется, но он¦
       ¦                     ¦ может оказаться  полезным  для  дочерних¦
       ¦                     ¦ диалоговый окон.                        ¦
       ¦                     ¦                                         ¦
       L---------------------+------------------------------------------

                               Задание шрифтов
       -----------------------------------------------------------------

            Для выбора шрифта в диалоговом окне сделайте следующее:

            1. Откройте диалоговое окно Window Style.

            2. Щелкните  кнопкой "мыши",  позиционировашись на командной
               кнопке Fonts  (Шрифты),  для  открытия  диалогового  окна
               Select Font (Выбор шрифта).


       ----T-----------------------------------------------------------¬
       ¦ - ¦                   Select font                             ¦
       +---+-----------------------------------------------------------+
       ¦--------------------¬  Size              Style                 ¦
       ¦¦ Face name         ¦ -----------------¬---------------------¬ ¦
       ¦¦ --------------T-¬ ¦ ¦ -------------¬ ¦¦--¬                 ¦ ¦
       ¦¦ ¦ Courier     ¦^¦ ¦ ¦ ¦ 10         ¦ ¦¦¦v¦ Bold            ¦ ¦
       ¦¦ ¦             +-+ ¦ ¦ L------------- ¦¦L--                 ¦ ¦
       ¦¦ ¦ Helv        ¦-¦ ¦ ¦ -----------T-¬ ¦¦--¬                 ¦ ¦
       ¦¦ ¦             ¦-¦ ¦ ¦ ¦-Step-----¦^¦ ¦¦¦ ¦ Italic          ¦ ¦
       ¦¦ ¦ Modern      ¦-¦ ¦ ¦ ¦----------+-+ ¦¦L--                 ¦ ¦
       ¦¦ ¦             ¦-¦ ¦ ¦ ¦----------¦-¦ ¦¦--¬                 ¦ ¦
       ¦¦ ¦ Roman       ¦-¦ ¦ ¦ ¦-10-------¦-¦ ¦¦¦ ¦ Undescore       ¦ ¦
       ¦¦ ¦             ¦-¦ ¦ ¦ ¦----------¦-¦ ¦¦L--                 ¦ ¦
       ¦¦ ¦ Script      ¦-¦ ¦ ¦ ¦----------¦-¦ ¦¦--¬                 ¦ ¦
       ¦¦ ¦             ¦-¦ ¦ ¦ ¦----------¦-¦ ¦¦¦ ¦ Strikeout       ¦ ¦
       ¦¦ ¦ Symbol      ¦-¦ ¦ ¦ ¦----------¦-¦ ¦¦L--                 ¦ ¦
       ¦¦ ¦             ¦-¦ ¦ ¦ ¦----------¦-¦ ¦L--------------------- ¦
       ¦¦ +-------------+-¦ ¦ ¦ ¦----------¦-¦ ¦                       ¦
       ¦¦ ¦-------------¦-¦ ¦ ¦ ¦----------¦-¦ ¦                       ¦
       ¦¦ +-------------+-+ ¦ ¦ ¦----------+-+ ¦                       ¦
       ¦¦ ¦ Terminal    ¦v¦ ¦ ¦ ¦ Terminal ¦v¦ ¦                       ¦
       ¦¦ L-------------+-- ¦ ¦ L----------+-- ¦                       ¦
       ¦L-------------------- L-----------------                       ¦
       ¦  Text                                                         ¦
       ¦--------------------------------------------------------------¬¦
       ¦¦ ABCDEFGHIJKLMNOPQRSTUVWXYZ                                  ¦¦
       ¦¦ abcdefghijklmnopqrstuvwxyz                                  ¦¦
       ¦¦                                                             ¦¦
       ¦¦                                                             ¦¦
       ¦¦                                                             ¦¦
       ¦L--------------------------------------------------------------¦
       +---------------------------------------------------------------+
       ¦   ------------¬         ------------¬       ------------¬     ¦
       ¦   ¦  _        ¦-        ¦           ¦-      ¦           ¦-    ¦
       ¦   ¦ V  OK     ¦-        ¦ X  Cancel ¦-      ¦ ?  Help   ¦-    ¦
       ¦   L-------------        L-------------      L-------------    ¦
       ¦     ------------          ------------        ------------    ¦
       ¦                                                               ¦
       L----------------------------------------------------------------

            Рис. 4.5 Диалоговое окно Select Font

            Select font - выбор шрифта;  Face name - начертание;  Size -
       размер; Style - тип; Bold - жирный; Italic - наклонный; Undescore
       - с подчеркиванием;  Strikeout - с надчеркиванием;  Text - текст;
       OK - выполнение; Cancel - отмена; Help - справка

            3. Используйте диалоговое окно Select Font для выбора начер-
               тания шрифта,  его размера и типа текста в диалоговом ок-
               не.

               Обратите внимание  на  символы,  выводимые в нижней части
               диалогового окна Select Font.  Они изменяются в соответс-
               твии с выбранными параметрами начертания шрифта, его раз-
               мера и типа.
                               Включение меню
       -----------------------------------------------------------------

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

            Чтобы включить в диалоговое окно меню, сделайте следующее:

            1. Определите меню, как отдельный ресурс и обеспечьте ее до-
               бавление к проекту. Не забудьте отметить имя ресурса чис-
               ловым идентификатором, который идентифицирует меню.

            2. Откройте для диалогового окна,  к которому вы хотите при-
               соединить меню, редактор диалогов.

            3. Откройте диалоговое окно Window Style.

            4. В поле ввода Menu  наберите  имя  ресурса  меню  или  его
               числовой идентификатор.

            Редактор диалогов  не  будет выводить ресурс меню точно так,
       как вы его определили. Вместо этого он выводит всплывающее окно с
       именем "Menu",  которое включает в себя единственный элемент меню
       с именем "Item".

          Присваивание диалоговому окну специализированного класса
       -----------------------------------------------------------------

            Если вы  имеете  опыт программирования в Windows,  то иногда
       желательно присвоить диалоговому окну специализированный (пользо-
       вательский) класс.  После этого вы сможете обрабатывать сообщения
       диалогового окна с помощью ваших собственных оконных  процедур, а
       не процедур Windows 3.0

            Чтобы присвоить диалоговому окну  специализированный  класс,
       нужно сделать следующее:

            - Дважды щелкнув кнопкой "мыши" на строке заголовка  или  на
              внешней граница диалогового окна или с помощью выбора окна
              и нажатия клавиши Enter открыть диалоговое окно.

            - В поле ввода Class наберите имя класса.

            Если вы не понимаете,  что такое  специализированные  классы
       или оператор CLASS,  наверное лучше не присваивать окну специали-
       зированный класс.

                       Работа с элементами управления
       -----------------------------------------------------------------

            Элементы управления позволяют пользователю взаимодействовать
       с данными диалогового окна.

            В общем случае элементы управления подразделяются на следую-
       щие категории:

            - командные кнопки;
            - полосы прокрутки;
            - блоки списка;
            - текст редактирования;
            - статические элементы управления (текст,  пиктограммы, пря-
              моугольники, рамки);
            - комбинированные блоки;
            - пользовательские элементы управления.

            В редакторе диалогов легко задать тип желаемого элемента уп-
       равления с помощью палитры инструментальных средств.


                               ------¬
                               ¦Tools¦
                               +-T-T-+
                               ¦^¦С¦О¦
                               +-+-+-+
                               ¦+¦¦¦-¦
                               +-+-+-+
                               ¦G¦"¦x¦
                               +-+-+-+
                               ¦1¦-¦¬¦
                               +-+-+-+
                               ¦T¦Г¦U¦
                               +-+-+-+
                               ¦ш¦:¦ ¦
                               +-+-+-+
                               ¦u¦ ¦ф¦
                               L-+-+--
            ---------------------  L--------------¬
       ---------¬                        ---------T--------¬
       ¦-¦\.----¦                        ¦ .......¦  ....  ¦
       ¦--\\----¦ Выбор        Командная ¦: Ok   :¦ ( *  ) ¦ Селектив-
       ¦-- -----¦              кнопка    ¦ ...... ¦  ....  ¦ ная кнопка
       +--------+                        +--------+--------+
       ¦ ====<  ¦              Горизон-  ¦        ¦   ^    ¦ Вертикаль-
       ¦        ¦ Установка    тальная   ¦ >---<  ¦   -    ¦ ная полоса
       ¦ >====  ¦ табуляции    полоса    ¦        ¦   v    ¦ прокрутки
       +--------+              прокрутки +--------+--------+
       ¦  ....  ¦                        ¦ ------¬¦ ------¬¦ Кнопка с
       ¦ .      ¦ Установка    Блок      ¦ ¦    -¦¦ ¦  X  ¦¦ независи-
       ¦  ...v  ¦ групп        списка    ¦ L------¦ L------¦ мой фик-
       +--------+                        +--------+--------+ сацией
       ¦        ¦                        ¦ ------¬¦ -=====¬¦ Комбини-
       ¦  1.2   ¦ Установка    Групповой ¦ ¦:::::¦¦ ¦    -¦¦ рованный
       ¦        ¦ порядка      блок      ¦ L------¦ L------¦ блок
       +--------+                        +--------+--------+
       ¦        ¦              Редакти-  ¦  -¬--  ¦  -¬--  ¦ Текстовое
       ¦ Test   ¦ Проверка     руемое    ¦   ¦¦   ¦   ¦¦   ¦ статичес-
       ¦        ¦ диалога      управле-  ¦  --L-  ¦   ¦¦   ¦ кое управ-
       +--------+              ние       +--------+--------+ ление
       ¦        ¦              Статичес- ¦ ----¬  ¦------¬¬¦ Черная
       ¦ -¬--<-¬¦ Дублирование кая пикто-¦ L----  ¦¦¦    ¦¦¦ рамка
       ¦        ¦              грамма    ¦======= ¦LL------¦ (статич.)
       +--------+                        +--------+--------+
       ¦        ¦              Черный    ¦        ¦ _      ¦ Пользова-
       ¦ Undo   ¦ Отмена       прямоу-   ¦        ¦(.)===¬ ¦ тельское
       ¦        ¦              гольник   ¦        ¦        ¦ управле-
       L---------                        L--------+--------- ние

            Рис. 4.1 Палитра инструментальных средств (см.  также в ори-
       гинале руководства)


            Два правых  столбца палитры - это управляющие инструменталь-
       ные средства.  Левый столбец содержит инструментальные  средства,
       которые переводят  редактор  диалогов  в различные режимы.  О них
       подробнее рассказывается далее. Приведем краткое описание элемен-
       тов управления диалогом, которые вы можете поместить в диалоговое
       окно с помощью управляющих средств палитры.

       ---------¬                 Прямоугольная "кнопка", которую  поль-
       ¦ .......¦  Командная      зователь "нажимает" при выборе  дейст-
       ¦: Ok   :¦  кнопка         вия. Командные кнопки всегда  содержат
       ¦ ...... ¦                 текст, поэтому для  них  всегда  нужно
       L---------                 задавать заголовок (содержимое).

       ---------¬                 Круглая "кнопка" с текстом  слева  или
       ¦  ....  ¦                 справа. При выборе кнопки (которую на-
       ¦ ( *  ) ¦ Селектив-       зывают также кнопкой с зависимой  фик-
       ¦  ....  ¦ ная кнопка      сацией) в ее центре появляется точка.
       L---------

       ---------¬  Горизон-       Горизонтальный прямоугольник со стрел-
       ¦        ¦  тальная        ками направления в каждом конце.
       ¦ >---<  ¦  полоса
       ¦        ¦  прокрутки
       L---------

       ---------¬                 Вертикальный  прямоугольник со  стрел-
       ¦   v    ¦ Вертикаль-      ками направления в каждом конце.
       ¦   -    ¦ ная полоса
       ¦   v    ¦ прокрутки
       L---------

       ---------¬                 Прямоугольник, обычно содержащий  спи-
       ¦ ------¬¦  Блок           сок текстовых строк. Если вы использу-
       ¦ ¦    -¦¦  списка         ете стиль изображения владельца,  блок
       ¦ L------¦                 списка может также содержать  визуаль-
       L---------                 ное представление списка данных. Обыч-
                                  но  пользователь  может  просматривать
                                  то, что выводится в  блоке  списка,  а
                                  затем выбирать один или более  элемен-
                                  тов. Эти  элементы часто  используются
                                  в диалоговом окне File Open.


       ---------¬                 Прямоугольная кнопка с  текстом  слева
       ¦ ------¬¦ Кнопка с        или справа. При выборе блока  проверки
       ¦ ¦  X  ¦¦ независимой     (блоки проверки называются также кноп-
       ¦ L------¦ фиксацией       ками с независимой фиксацией) в  блоке
       L---------                 появляется X. При отмене  Х  исчезает.
                                  Блоки проверки часто используются  для
                                  представления булевских  данных (Вклю-
                                  но/Выключено).

       ---------¬                 Прямоугольный блок,  используемый  для
       ¦ ------¬¦  Групповой      визуального объединения других  управ-
       ¦ ¦:::::¦¦  блок           ляющих элементов.  Вы  можете  указать
       ¦ L------¦                 заголовок (содержимое), который  будет
       L---------                 выводиться в верхнем левом углу  груп-
                                  пового блока.

       ---------¬                 Комбинация блока списка и  редактируе-
       ¦ -=====¬¦ Комбини-        мого текстового управляющего  элемента
       ¦ ¦    -¦¦ рованный        или блока списка и статического управ-
       ¦ L------¦ блок            ления.
       L---------

       ---------¬  Редакти-       Прямоугольник, в котором пользователь
       ¦  -¬--  ¦  руемый         может вводить текст с клавиатуры.
       ¦   ¦¦   ¦  управляющий
       ¦  --L-  ¦  элемент
       L---------

       ---------¬                 Текст, который выводится в диалоговом
       ¦  -¬--  ¦ Текстовое       окне.
       ¦   ¦¦   ¦ статичес-
       ¦   ¦¦   ¦ кое управ-
       L--------- ление

       ---------¬                 Пиктограмма.
       ¦ ----¬  ¦  Статичес-
       ¦ L----  ¦  кая пикто-
       ¦======= ¦  грамма
       L---------

       ---------¬                 Пустая прямоугольна рамка, цвет кото-
       ¦--====¬¬¦ Черная          рой соответствует цвету рамки текуще-
       ¦¦¦    ¦¦¦ рамка           го окна.
       ¦LL====--¦ (статич.)
       L---------

       ---------¬                 Статическая управляющая пиктограмма,
       ¦--------¦  Черный         которая выводится с тем  же  цветом,
       ¦--------¦  прямоу-        что и рамка текущего окна.
       ¦--------¦  гольник
       L---------

       ---------¬                 Управляющий элемент, который не по-
       ¦ _      ¦ Пользова-       падает ни в один из типов,  предоп-
       ¦(.)===¬ ¦ тельское        ределенных  в  Windows и, таким об-
       ¦        ¦ управле-        разом имеет другой  тип  окна,  чем
       L--------- ние             предопределеные типы.
                       Добавление элементов управления
       -----------------------------------------------------------------

            Наиболее простой  способ добавления в диалоговое окно нового
       элемента управления состоит в нажатии кнопки "мыши" после позици-
       онирования на  нужном элементе управления инструментальной палит-
       ры. Курсор изменится, чтобы показать тип выбранного вами элемента
       управления. Щелкните  кнопкой "мыши" в том месте,  куда вы хотите
       поместить элемент управления.

                         ---------¬
                         ¦-¦\.----¦
                         ¦--\\----¦ Выбор
                         ¦-- -----¦
                         L---------

            Если вы  выберете элемент управления из инструментальной па-
       литры, а затем измените свое решение,  нужно выбрать элемент "Вы-
       бор" (направленная  вверх  и  влево стрелка).  Курсор изменится и
       приобретет знакомую вам форму стрелки, после чего вы снова сможе-
       те выбирать элементы управления в диалоговом окне. Нажатие клави-
       ши Esc также отменяет размещение элемента управления и возвращает
       вас в режим выбора.

            Для добавления  элементов управления в диалоговое окно можно
       также использовать меню Control (Управление):

            1. Для открытия меню Control используйте "мышь"  или нажмите
               клавиши Alt+C.

            2. Выберите тип элемента управления, который вы хотите доба-
               вить в диалоговое окно.

            3. Щелкните кнопкой "мыши" в том месте диалогового окна, ку-
               да вы хотите поместить управляющий элемент.
              Добавление нескольких копий управляющего элемента
       -----------------------------------------------------------------

            После помещения в диалоговое окно управляющего  элемента  вы
       можете поместить в него дополнительные копии того же управляющего
       элемента. Переместитесь в то место,  куда вы хотите поместить но-
       вую копию управляющего элемента и щелкните правой кнопкой "мыши".
       В  столбцах и строках вы можете помещать несколько идентичных ко-
       пий управляющего элемента.  Например,  вы можете поместить в свое
       диалоговое окно два столбца из четырех  управляющих  элементов  -
       блоков проверки. Вы можете поместить каждый блок проверки отдель-
       но, но Пакет разработчика ресурсов предоставляет вам более легкий
       путь - команду Edit¦Duplicate (Редактирование¦Дублирование).

            Чтобы поместить в строки и столбцы несколько копий управляю-
       щего элемента, сделайте следующее:

            1. В диалоговом окне выберите управляющий элемент, копию ко-
               торого вы хотите создать.


                               ---------¬
                               ¦        ¦
                               ¦ -¬---¬ ¦ Дублирование
                               ¦        ¦
                               L---------

            2. Выберите инструментальное средство "Дублирование" или ис-
               пользуйте команду Edit¦Duplicate (Редактирование¦Дублиро-
               вание).

       ----T-----------------------------------------------------------¬
       ¦ - ¦                   Duplicate control                       ¦
       +---+-----------------------------------------------------------+
       ¦                                                               ¦
       ¦             -----------------------------------¬              ¦
       ¦             ¦                     -----------¬ ¦              ¦
       ¦             ¦ Rows                ¦          ¦ ¦              ¦
       ¦             ¦                     L----------- ¦              ¦
       ¦             ¦                     -----------¬ ¦              ¦
       ¦             ¦ Columns             ¦ 1        ¦ ¦              ¦
       ¦             ¦                     L----------- ¦              ¦
       ¦             ¦                     -----------¬ ¦              ¦
       ¦             ¦ Row spacing         ¦ 0        ¦ ¦              ¦
       ¦             ¦                     L----------- ¦              ¦
       ¦             ¦                     -----------¬ ¦              ¦
       ¦             ¦ Column spacing      ¦ 0        ¦ ¦              ¦
       ¦             ¦                     L----------- ¦              ¦
       ¦             L-----------------------------------              ¦
       ¦                                                               ¦
       ¦                                                               ¦
       +---------------------------------------------------------------+
       ¦   ------------¬         ------------¬       ------------¬     ¦
       ¦   ¦  _        ¦-        ¦           ¦-      ¦           ¦-    ¦
       ¦   ¦ V  OK     ¦-        ¦ X  Cancel ¦-      ¦ ?  Help   ¦-    ¦
       ¦   L-------------        L-------------      L-------------    ¦
       ¦     ------------          ------------        ------------    ¦
       ¦                                                               ¦
       L----------------------------------------------------------------

            Рис. 4.7 Диалоговое окно Duplicate Control

            Duplicate Control - дублирование управляющего элемента; Rows
       - число строк;  Columns - число столбцов;  Row spacing - разбивка
       строк;  Column  spacing  -  разбивка  столбцов;  OK - выполнение;
       Cancel - отмена; Help - справка.

            3. Задайте нужное число строк и столбцов, а также расстояние
               (в единицах) между строками и столбцами.  Например,  если
               вы хотите получить шесть блоков проверки, помещенных в два
               столбца, нужно задать четыре строки и два столбца.

            4;. Выберите командную кнопку OK.  В вашем  диалоговом  окне
                выведутся выровненные копии управляющего элемента.
                    Редактирование управляющих элементов
       -----------------------------------------------------------------

            Вы можете  модифицировать  управляющий элемент,  который уже
       добавлен в ваше диалоговое окно.  Для этого нужно дважды щелкнуть
       на управляющем  кнопкой "мыши".  После этого выведется диалоговое
       окно Style (Тип). Параметры данного диалогового окна изменяются в
       соответствии с типом управляющего элемента, с которым вы работае-
       те.

            Если вы используете клавиатуру,  используйте для выбора  уп-
       равляющего элемента,  который  вы  хотите редактировать,  клавишу
       Tab, затем для вывода для выбранного элемента управления диалого-
       вого окна Style нажмите клавишу Enter.

                    Выбор нескольких управляющих элементов

            Когда вы редактируете элементы управления, иногда желательно
       выполнить операцию  редактирования  одновременно  для  нескольких
       элементов. Пакет разработчика ресурсов имеет несколько параметров
       редактирования,  которые  можно  использовать  для редактирования
       нескольких управляющих элементов.  Однако перед тем,  как их  ис-
       пользовать, нужно знать, как можно одновременно выбрать несколько
       управляющих элементов.

            Для одновременного  выбора  нескольких  элементов управления
       нужно сделать следующее:

                         ---------¬
                         ¦-¦\.----¦
                         ¦--\\----¦ Выбор
                         ¦-- -----¦
                         L---------

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

            2. Щелкните  кнопкой  "мыши"  в  диалоговом окне,  продолжая
               удерживать левую кнопку "мыши".  Позиция,  на которой  вы
               щелкните кнопкой,  будет начальной позицией рамки измене-
               ния размера, которая появляется при перемещении "мыши.

            3. Выполните с помощью "мыши" буксировку,  чтобы рамка изме-
               нения размера  окружала все управляющие элементы, которые
               вы хотите выделить.

            4. Отпустите кнопку "мыши".  Вокруг каждого выделенного эле-
               мента появится рамка.

            Если вы  выбрали группу управляющих элементов и ходите доба-
       вить к группе один или несколько элементов или удалить  один  или
       более элементов из группы, нажмите клавишу Shift и, удерживая ее,
       щелкните кнопкой "мыши" на элементе управления, который вы хотите
       добавить к группе или удалить из нее.
          Перемещение управляющих элементов и изменение их размера
       -----------------------------------------------------------------

            После того,  как вы выделите элемент управления, щелкните на
       нем кнопкой  "мыши".  Перемещайте  управляющий  элемент с помощью
       буксировки "мышью" (позиционировавшись внутри  управляющего  эле-
       мента). Либо  переместите курсор на соответствующий край или угол
       управляющего элемента (он превратится в двойную  стрелку),  затем
       выполните буксировку для изменения размера управляющего элемента.

            Для "тонкой настройки" размера вы можете использовать клави-
       атуру и "мышь":

            1. Переместите курсор "мыши" на соответствующий край.

            2. Нажмите и удерживайте левую кнопку "мыши".

            3. Нажмите клавишу стрелки,  перемещая курсор "мыши" в  оди-
               ночный диалоговый элемент.

            Если вы  хотите использовать только клавиатуру,  используйте
       клавишу Tab для выделения управляющего элемента. Затем используй-
       те клавиши  стрелок  для перемещения выделенного элемента.  Чтобы
       завершить перемещение и подтвердить его,  нажмите клавишу  Enter.
       Если вы измените решение, нажмите вместо Enter клавишу Esc.

            Когда вы  добавите элемент управления в диалоговое окно, для
       этого управляющего элемента можно задать точные координаты x и y.
       Эти координаты управляют не только позиционированием, но и разме-
       ром элемента.

            Задать координаты можно следующим образом:

            1. Выберите управляющий элемент,  для которого вы хотите за-
               дать координаты.  Для этого можно щелкнуть на управляющем
               элементе кнопкой "мыши" или использовать для его  выделе-
               ния клавишу Tab.

            2. Выберите команду Align¦Size Control или удерживайте  кла-
               вишу Alt, дважды щелкнув кнопкой "мыши". Выводится диало-
               говое окно Size Control (Управление размером).

            3. Задайте координаты x,  cx, y и cy в диалоговых элементах.
               В диалоговых элементах y равно 1/8  высоты  шрифта,  а  x
               равно 1/4 ширины шрифта.

            Координаты x и  y  определяют  начальную  точку  диалогового
       управляющего элемента, cx определят горизонтальную ширину диалого-
       вого управляющего элемента, а значение cy определяет вертикальный
       размер диалогового элемента:


                    x,y  --------           cx
                                 \----------+----------¬
                                - ---------------------¬
                                ¦ ¦                    ¦
                                ¦ ¦                    ¦
                             cy + ¦                    ¦
                                ¦ ¦                    ¦
                                ¦ ¦                    ¦
                                ¦ ¦                    ¦
                                L L---------------------

            Рис. 4.8 Координаты диалогового окна
       Выравнивание управляющих элементов с помощью координатной сетки
       -----------------------------------------------------------------

            При перемещении  управляющих  элементов вы можете вывести на
       экран в диалоговом окне координатную сетку, которую можно исполь-
       зовать для выравнивание управляющих элементов.

            Для вывода координатной сетки сделайте следующее:

            1. Выберите  команду  Align¦Grid  (Выравнивание¦Сетка).  При
               этом выводится диалоговое окно Set Grid (Задание  коорди-
               натной сетки).

       ----T-----------------------------------------------------------¬
       ¦ - ¦                   Set grid attributes                     ¦
       +---+-----------------------------------------------------------+
       ¦                                                               ¦
       ¦     ------------------------------------------------¬         ¦
       ¦     ¦           -----------¬           -----------¬ ¦         ¦
       ¦     ¦ Width     ¦          ¦  Height   ¦          ¦ ¦         ¦
       ¦     ¦           L-----------           L----------- ¦         ¦
       ¦     L------------------------------------------------         ¦
       ¦                                                               ¦
       ¦      ------------------------------------------------¬        ¦
       ¦      ¦                                               ¦        ¦
       ¦      ¦  Grid type                                    ¦        ¦
       ¦      ¦                                               ¦        ¦
       ¦      ¦                                               ¦        ¦
       ¦      ¦  >*  Absolute             --¬  Show grid      ¦        ¦
       ¦      ¦                           L--                 ¦        ¦
       ¦      ¦   <  Relative                                 ¦        ¦
       ¦      ¦                                               ¦        ¦
       ¦      ¦                                               ¦        ¦
       ¦      L------------------------------------------------        ¦
       +---------------------------------------------------------------+
       ¦   ------------¬         ------------¬       ------------¬     ¦
       ¦   ¦  _        ¦-        ¦           ¦-      ¦           ¦-    ¦
       ¦   ¦ V  OK     ¦-        ¦ X  Cancel ¦-      ¦ ?  Help   ¦-    ¦
       ¦   L-------------        L-------------      L-------------    ¦
       ¦     ------------          ------------        ------------    ¦
       ¦                                                               ¦
       L----------------------------------------------------------------

            Рис. 4.7 Диалоговое окно Duplicate Control

            Set Grid Attributes - задание атрибутов сетки; Width - шири-
       на; Height - высота;  Grid type - тип сетки;  Absolute - абсолют-
       ная;  Relative - относительная; Show grid - вывод сетки; OK - вы-
       полнение; Cancel - отмена; Help - справка.

            2. Задайте нужную ширину и высоту сетки.

            3. Выберите тип сетки. Здесь имеются следующие возможности:

                             Параметры типа сетки            Таблица 4.4
            ---------------T-------------------------------------------¬
            ¦ Тип сетки    ¦ Описание                                  ¦
            +--------------+-------------------------------------------+
            ¦ Absolute     ¦ Располагает управляющий элемент на ближай-¦
            ¦ (Абсолютная) ¦ шей линии сетки.                          ¦
            ¦              ¦                                           ¦
            +--------------+-------------------------------------------+
            ¦ Relative     ¦ Перемещает управляющий элемент  только  на¦
            ¦ (Относитель- ¦ размер ширины ячейки сетки в  горизонталь-¦
            ¦ ная)         ¦ ном направлении и на высоту ячейки сетки в¦
            ¦              ¦ вертикальном  направлении.  Таким образом,¦
            ¦              ¦ если элемент  управления  не  был первона-¦
            ¦              ¦ чально размещен на линии сетки, при выборе¦
            ¦              ¦ данного  параметра  вы не сможете перемес-¦
            ¦              ¦ тить его на линию сетки.                  ¦
            ¦              ¦                                           ¦
            ¦              ¦ Например, если вы  задали  сетку  4х4, и у¦
            ¦              ¦ вас есть управляющий элемент, позициониро-¦
            ¦              ¦ ванный в точке (1,1),  то при  перемещении¦
            ¦              ¦ управляющего элемента он перейдет на пози-¦
            ¦              ¦ цию, отстоящую от данной точки на 4 едини-¦
            ¦              ¦ цы в любом направлении. Возможными коорди-¦
            ¦              ¦ натами будут (5,5), (5,9), (9,5) и т.д.   ¦
            ¦              ¦                                           ¦
            L--------------+--------------------------------------------

            4. Выберите  параметр  Show  Grid  (Вывод сетки) и командную
               кнопку OK.
                Изменение внешнего вида управляющих элементов
       -----------------------------------------------------------------

            С помощью  диалогового  окна  Style (Тип) вы можете изменить
       внешний вид управляющих элементов. Чтобы вывести для управляющего
       элемента диалоговое окно Style,  нужно, позиционировавшись на уп-
       равляющем элементе,  дважды  щелкнуть кнопкой  "мыши".  Например,
       двойное  нажатие кнопки "мыши" на управляющем элементе, представ-
       ляющем собой командную кнопку, приводит к выводу диалогового окна
       Button Style (Тип кнопки).

            Хотя типы  диалоговых  окон отличаются один от другого,  они
       имеют много общих параметров.  Если вы поймете,  как использовать
       эти параметры в одном диалоговом окне Style, то легко догадаться,
       как сделать это в других.

            Перечислим параметры, общие для большинства диалоговых окон:

          Параметры, общие для всех диалоговых окон  Style  Таблица 4.5
       -----------------T----------------------------------------------¬
       ¦   Параметр     ¦ Описание                                     ¦
       +----------------+----------------------------------------------+
       ¦   Caption      ¦ Позволяет вам вводить заголовок (содержимое),¦
       ¦   (Заголовок)  ¦ которое   требуется  выводить  в  управляющем¦
       ¦                ¦ элементе. Различные типы управляющих  элемен-¦
       ¦                ¦ тов выводят  заголовки (содержимое) в различ-¦
       ¦                ¦ ных областях. Например, в групповом блоке за-¦
       ¦                ¦ головок  выводится  в верхней левой части.  В¦
       ¦                ¦ командной  кнопке содержимое выводится внутри¦
       ¦                ¦ кнопки.                                      ¦
       ¦                ¦                                              ¦
       ¦                ¦ Заголовок выводится  не  во  всех управляющих¦
       ¦                ¦ элементах.  Например, в блоке списка заданный¦
       ¦                ¦ в заголовке текст не выводится.              ¦
       ¦                ¦                                              ¦
       ¦                ¦ Справа от того места,  где вы вводите заголо-¦
       ¦                ¦ вок,  выберите  параметр  Text  (Текст)   или¦
       ¦                ¦ Number (Число).  Выберите Text, если вы хоти-¦
       ¦                ¦ те,  чтобы заголовок заключался в  файле  .RC¦
       ¦                ¦ или исходном коде диалога. Если символы кавы-¦
       ¦                ¦ чек не нужны, выберите Number.               ¦
       ¦                ¦                                              ¦
       ¦                ¦ Заголовок к управляющему элементу можно также¦
       ¦                ¦ добавить с помощью окна Caption.             ¦
       ¦                ¦                                              ¦
       +----------------+----------------------------------------------+
       ¦   Control ID   ¦ Позволяет вам задавать уникальный идентифика-¦
       ¦   (Идентифика- ¦ тор элемента управления. Идентификатор управ-¦
       ¦   тор управ-   ¦ ляющего элемента может  быть  коротким  целым¦
       ¦   ляющего      ¦ значением или целочисленным выражением. Набе-¦
       ¦   элемента)    ¦ рите идентификатор управляющего элемента, ко-¦
       ¦                ¦ торый вы хотите присвоить данному управляюще-¦
       ¦                ¦ му элементу.                                 ¦
       ¦                ¦                                              ¦
       ¦                ¦ По соглашению статическим управляющим элемен-¦
       ¦                ¦ там, которые не модифицируются во  время  вы-¦
       ¦                ¦ полнения, присваивается идентификатор -1.    ¦
       ¦                ¦                                              ¦
       ¦                ¦ Если вы наберете алфавитно-цифровой идентифи-¦
       ¦                ¦ катор Пакет разработчика ресурсов  проверяет,¦
       ¦                ¦ не создано ли для данного идентификатора  оп-¦
       ¦                ¦ ределений #define или описаний констант.  Ес-¦
       ¦                ¦ ли нет, то Пакет разработчика  ресурсов  зап-¦
       ¦                ¦ рашивает, хотите  ли  вы  создать его.  Более¦
       ¦                ¦ подробно об  алфавитно-цифровых идентификато-¦
       ¦                ¦ рах рассказывается в Главе 3.                ¦
       ¦                ¦                                              ¦
       +----------------+----------------------------------------------+
       ¦   Scroll Bar   ¦ Позволяет вам выбрать, хотите ли вы  включить¦
       ¦   (Полоса      ¦ в свой управляющий элемент горизонтальную или¦
       ¦   прокрутки)   ¦ вертикальную полосу прокрутки.               ¦
       ¦                ¦                                              ¦
       L----------------+-----------------------------------------------


            Большинство управляющих элементов имеют следующие общие эле-
       менты:

                        Атрибуты управляющих элементов       Таблица 4.6
       ----------------T-----------------------------------------------¬
       ¦   Атрибут     ¦ Описание                                      ¦
       +---------------+-----------------------------------------------+
       ¦   Tab Stop    ¦ Позволяет пользователю использовать для досту-¦
       ¦   (Табуляция) ¦ па к  данному  управляющему  элементу  клавишу¦
       ¦               ¦ Tab.                                          ¦
       ¦               ¦                                               ¦
       +---------------+-----------------------------------------------+
       ¦   Group       ¦ Идентифицирует первый  управляющий  элемент  в¦
       ¦   (Группа)    ¦ группе. Более подробно об объединении и досту-¦
       ¦               ¦ пе к  управляющим элементам рассказывается ни-¦
       ¦               ¦ же.                                           ¦
       ¦               ¦                                               ¦
       +---------------+-----------------------------------------------+
       ¦   Disabled    ¦ Делает управляющий  элемент "тусклым",  запре-¦
       ¦   (Запрещен-  ¦ щенным (таким образом  управляющий  элемент не¦
       ¦   ный)        ¦ отвечает на ввод пользователя).               ¦
       ¦               ¦                                               ¦
       +---------------+-----------------------------------------------+
       ¦   Border      ¦ Рисует вокруг управляющего  элемента рамку (по¦
       ¦   (Граница)   ¦ умолчанию).                                   ¦
       ¦               ¦                                               ¦
       L---------------+------------------------------------------------

            Каждый тип диалогового окна  Style  имеет  также  параметры,
       специфические для данного типа управляющего элемента.  Они обсуж-
       даются ниже при описании различных типов управляющих элементов.

                   Задание заголовка управляющего элемента
       -----------------------------------------------------------------

            Хотя для  добавления  к  управляющему элементу вы можете ис-
       пользовать диалоговое окно Style (Тип),  это можно также делать с
       помощью диалогового окна Caption (Заголовок).

            Чтобы добавить  к  управляющему элементу заголовок с помощью
       диалогового окна Caption, сделайте следующее:

            1. Выберите управляющий элемент,  к которому вы хотите доба-
               вить заголовок,  переместившись на него с помощью табуля-
               ции или щелкнув на нем кнопкой "мыши".

            2. При выбранном управляющем элементе введите новый  заголо-
               вок  или  нажмите клавишу F6,  чтобы переместиться в окно
               Caption и наберите новый заголовок.

            3. Нажмите клавишу Enter.

                   Изменение класса управляющих элементов
       -----------------------------------------------------------------

            Если вы  работаете  со специализированными управляющими эле-
       ментами, то может  оказаться  полезным  диалоговое  окно  Generic
       Control Style (Общий тип управляющего элемента). Его можно вывес-
       ти, если нажав и удерживая клавишу Ctrl,  дважды щелкнув  кнопкой
       "мыши" на  управляющем элементе.  Либо используйте для выбора уп-
       равляющего элемента клавишу Tab,  затем нажмите клавишу  Ctrl  и,
       удерживая ее, нажмите Enter.

       ----T-----------------------------------------------------------¬
       ¦ - ¦                   Set grid attributes                     ¦
       +---+-------------------------------------------T---------------+
       ¦                                               ¦               ¦
       ¦   Caption                                     ¦               ¦
       ¦ ---------------------------------------------¬¦ ------------¬ ¦
       ¦ ¦-----------------------------¬   >*  Text   ¦¦ ¦  _        ¦-¦
       ¦ ¦¦-OK-                        ¦              ¦¦ ¦ V  OK     ¦-¦
       ¦ ¦L-----------------------------    <  Number ¦¦ L-------------¦
       ¦ L---------------------------------------------¦   ------------¦
       ¦                                               ¦               ¦
       ¦  Control ID                                   ¦               ¦
       ¦ ---------------------------------------------¬¦               ¦
       ¦ ¦-----------------------------¬------------¬ ¦¦               ¦
       ¦ ¦¦ 102                        ¦¦           ¦ ¦¦ ------------¬ ¦
       ¦ ¦L-----------------------------L------------ ¦¦ ¦           ¦-¦
       ¦ L---------------------------------------------¦ ¦ X  Cancel ¦-¦
       ¦ ---------------------------------------------¬¦ L-------------¦
       ¦ ¦              -----------------------------¬¦¦   ------------¦
       ¦ ¦ Class        ¦ "BUTTON"                   ¦¦¦               ¦
       ¦ ¦              L-----------------------------¦¦               ¦
       ¦ ¦              -----------------------------¬¦¦               ¦
       ¦ ¦ Style        ¦ BS_PUSHBUTTON ¦ WS_TAB     ¦¦¦ ------------¬ ¦
       ¦ ¦              L-----------------------------¦¦ ¦           ¦-¦
       ¦ ¦              -----------------------------¬¦¦ ¦ ?  Help   ¦-¦
       ¦ ¦ Info         ¦                            ¦¦¦ L-------------¦
       ¦ ¦              L-----------------------------¦¦   ------------¦
       ¦ L---------------------------------------------¦               ¦
       L-----------------------------------------------+----------------

            Рис. 4.10 Диалоговое окно Generic Control Style

            Generic Control  Style  -  общий  тип управляющего элемента;
       Caption - заголовок; Text - текстовый; Number - числовой; Control
       ID - идентификатор управляющего элемента;  Class - класс; Style -
       тип;  Info - информация; OK - выполнение; Cancel - отмена; Help -
       справка

            В диалоговом  окне  Generic Control Style вы можете изменить
       класс управляющего элемента.  Можно также задать заголовок, иден-
       тификатор управляющего  элемента  и  его  тип.  Если  вы  введете
       что-либо в поле Info,  то диалоговое окно не будет  совместимо  с
       компилятором ресурсов фирмы Microsoft.

                 Примечание: Более подробно о специализированных пользо-
            вательских управляющих элементах рассказывается ниже.
                       Задание управляющих элементов,
               на которые можно перемещаться с помощью табуляции
       -----------------------------------------------------------------

            По умолчанию когда вы добавляете в диалоговое окно управляю-
       щий элемент,  на  него можно переходить с помощью клавиши табуля-
       ции. Эту установку можно изменить таким образом,  что клавиша та-
       буляции будет  перемещать  вас  только  на  некоторые управляющие
       элементы.

            Изменить данную установку можно тремя способами:

            - с помощью средства Tab Set;
            - с помощью диалогового окна Style;
            - используя команду Set Tabs.

                               Средство Set Tab

                               ---------¬
                               ¦ ====<  ¦
                               ¦        ¦ Установка
                               ¦ >====  ¦ табуляции
                               L---------

            Чтобы изменить установку табуляции с  помощью  средства  Tab
       Set (Установка табуляции), сделайте следующее:

            1. Щелкните кнопкой "мыши" на пиктограмме "Установка табуля-
               ции".  Пакет разработчика ресурсов  рисует  рамку  вокруг
               каждого управляющего элемента,  на который можно позицио-
               нироваться с помощью табуляции.

            2. Средство Tab Set представляет собой переключатель:

                  - чтобы задать остановку табуляции,  щелкните  кнопкой
                    "мыши" на любом управляющем элементе, который не ок-
                    ружен рамкой.

                  - чтобы удалить остановку табуляции, щелкните  кнопкой
                    "мыши" на управляющем элементе,  который уже окружен
                    рамкой (имеет остановку табуляции).

            3. После изменения всех позиций табуляции  щелкните  кнопкой
               "мыши" на пиктограмме "Выбор", после чего вы сможете сно-
               ва вернуться к настройке диалогового окна.

                             Тип диалогового окна

            Для изменения остановок табуляции можно  также  использовать
       диалоговое окно Style (Тип), для чего:

            1. Откройте  для управляющего элемента диалоговое окно Style
               (дважды щелкнув кнопкой "мыши" на этом элементе или нажав
               клавишу Enter).

            2. Установите  параметр  Tab  Stop под заголовком Attributes
               (Атрибуты), либо отмените Tab Stop, чтобы выключить уста-
               новку.

                               Команда Set Tabs

            Третий способ  установки  табуляции  состоит в использовании
       команды меню Set Tabs:

            1. Выберите команду  Options¦Set  Tabs  (Параметры¦Установка
               табуляции).  Курсор "мыши" превращается в пиктограмму та-
               буляции.  Пакет разработчика ресурсов окружает каждый уп-
               равляющий  элемент,  на  который можно перемещаться с по-
               мощью табуляции, рамкой.

            2. Чтобы изменить установку табуляции для какого-либо управ-
               ляющего элемента,  щелкните на нем кнопкой "мыши".  Пара-
               метр Set Tabs работает  как  переключатель,  включая  или
               выключая атрибут Tab Stop.

            3. Когда вы закончите устанавливать позиции табуляции, выбе-
               рите команду Options¦Modify Controls (Параметры¦Модифика-
               ция управляющих элементов). При этом вы вернетесь в режим
               редактирования.

            Как описывается ниже,  вы можете проверить  свой  диалоговый
       элемент и посмотреть, как работает табуляция.

                   Определение группы управляющих элементов

            Вы можете определять группы управляющих элементов.  При этом
       пользователи могут перемещаться в такие группы с  помощью  клавиш
       стрелок. Можно, например, объединить вместе группу кнопок с зави-
       симой фиксацией (селективной кнопкой). При этом с помощью табуля-
       ции можно переходить только на первый элемент данной группы. Пос-
       ле этого  пользователи  могут  использовать   клавишу   Tab   для
       перемещения к  новой группе,  а для перемещения внутри группы ис-
       пользовать клавиши стрелок.

            Чтобы определить группу управляющих элементов, сделайте сле-
       дующее:

            1. Если необходимо,  переместите управляющие элементы, чтобы
               они находились вместе.

                        ---------¬
                        ¦  ....  ¦
                        ¦ .      ¦ Установка
                        ¦  ...v  ¦ группы
                        L---------

            2. Щелкните кнопкой "мыши" на пиктограмме  "Установка  груп-
               пы" палитры инструментальных средств.  Курсор "мыши" при-
               обретает вид пиктограммы G,  и все управляющие  элементы,
               которые  являются первым элементом группы,  заключаются в
               рамку.

            3. Для каждой группы, которую вы хотите определить, щелкните
               кнопкой "мыши" на первом элементе, заключенном в рамку.

               Если в рамку заключен какой-либо управляющий элемент, ко-
               торый вы не хотите определять как первый  элемент группы,
               для  удаления  первой  установки в группе щелкните на нем
               кнопкой "мыши".

               Идентифицировать последний элемент группы не нужно. Щелк-
               нув  кнопкой "мыши" на первом элементу каждой группы,  вы
               можете также идентифицировать последний элемент  предыду-
               щей  группы.  Если вы хотите получить только одну группу,
               выделите первый элемент этой группы. Все остальные управ-
               ляющие элементы станут при этом частью группы.

            4. Когда  вы закончите идентификацию первого элемента каждой
               группы,  выберите инструментальное средство "Выбор".  Это
               позволит вам вернуться в режим редактирования.

            Для определения  групп  вы можете также использовать команду
       меню Options¦Set Groups (Параметры¦Установка групп). Когда вы за-
       кончите определение групп, вернитесь в режим редактирования, выб-
       рав команду Options¦Modify Controls (Параметры¦Модификация управ-
       ляющих элементов).

           Как описывается   ниже,   вы   можете  также  проверить  свое
       диалоговое окно и посмотреть,  работают ли группы так как задума-
       но.
                  Переупорядочивание управляющих элементов
       -----------------------------------------------------------------

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

            Для определения порядке управляющих элементов  в  диалоговом
       окне сделайте следующее:

            1. Выделите  управляющие  элементы,  которые вы хотите изме-
               нить.  Вы можете щелкнуть кнопкой "мыши" на группе управ-
               ляющих элементов и буксировать ее.

               Если вы хотите задать все элементы в диалоговом  окне, то
               нет необходимости выделять какие-либо управляющие элемен-
               ты.
                                 ---------¬
                                 ¦        ¦
                                 ¦  1.2   ¦ Установка
                                 ¦        ¦ порядка
                                 L---------

            2. Щелкните кнопкой "мыши" на пиктограмме палитры инструмен-
               тальных средств "Установка порядка". Курсор "мыши" прини-
               мает соответствующий вид.

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

               Обратите внимание  на подсказку Next Item (Следующий эле-
               мент) в нижней части редактора диалогов. В ней Пакет раз-
               работчика ресурсов сообщает вам порядковый номер, который
               присваивается следующему элементу, на котором вы щелкните
               кнопкой "мыши".

            3. Щелкните  кнопкой "мыши" на элементах,  которым вы хотите
               присвоить новые порядковые номера.  Вокруг всех управляю-
               щих элементов,  которые вы уже выбрали, редактор диалогов
               рисует рамку.

               В процессе присваивания новых порядковых номеров вы може-
               те  "вернуться  назад",  вновь  щелкнув кнопкой "мыши" на
               последнем выбранном элементе. Порядковый номер  изменится
               на предыдущий. Вы можете продолжать выполнение процесса в
               обратном направлении, щелкая кнопкой "мыши" на элементах,
               которые были ранее выбраны.

            4. Когда  вы завершите присваивание новых номеров,  щелкните
               кнопкой "мыши" на пиктограмме "Выбор" палитры  инструмен-
               тальных средств.  После этого вы можете продолжить редак-
               тирование.

            Вы можете также упорядочить управляющие элементы  с  помощью
       команды меню  Options¦Set Order (Параметры¦Упорядочивание). Когда
       вы завершите действия, выберите команду Options¦Modify (Параметры
       ¦Модификация), после  чего можно продолжать редактирование диало-
       гового элемента.

            После того,  как ваши управляющие элементы будут должным об-
       разом упорядочены,  проверьте  свое  диалоговое окно и убедитесь,
       что оно работает корректно.

                  Примечание: Подробнее  о  проверке  диалогового   окна
            рассказывается ниже.
                 Редактирование групп управляющих элементов
       -----------------------------------------------------------------

            После того,  как добавили управляющий элемент  в  диалоговое
       окно, для выравнивания и изменения размера групп управляющих эле-
       ментов и размещения их по строкам и столбцам  можно  использовать
       меню редактора диалогов.

            Перед тем как вы будете готовы выравнивать и изменять разме-
       ры групп управляющих элементов,  необходимо понять,  как одновре-
       менно выбирать несколько управляющих элементов.

            Чтобы выбрать несколько управляющих элементов, сделайте сле-
       дующее:

            1. Щелкните кнопкой "мыши" на  пиктограмме  "Выбор"  палитры
               инструментальных  средств.  Этот  режим  используется  по
               умолчанию,  поэтому вы уже можете находиться в режиме вы-
               бора. (В этом режиме пиктограмма "Выбор" выделена, а кур-
               сор имеет форму стрелки.)

            2. Щелкните кнопкой "мыши" в диалоговом окне  и  продолжайте
               нажимать  левую  кнопку  "мыши".  Позиция,  на которой вы
               щелкните кнопкой,  будет начальной позицией рамки измене-
               ния размера,  которая выводится, когда вы выполняете бук-
               сировку "мышью".

            3. Выполните буксировку с помощью "мыши",  чтобы рамка изме-
               нения  размера окружала все управляющие элементы, которые
               вы хотите выделить.

            4. Освободите кнопку  "мыши".  Вокруг  каждого  управляющего
               элемента появляется рамка.

            Если вы выделили группу управляющих элементов и хотите доба-
       вить к этой группе еще один управляющий элемент или  удалить один
       или более  элементов из группы,  удерживая клавишу Shift щелкните
       кнопкой "мыши" на элементе,  который вы хотите добавить в  группу
       или удалить из нее.
                Выравнивание нескольких управляющих элементов
       -----------------------------------------------------------------

            Редактор диалогов с  помощью  команды  Align¦Align  Controls
       (Выравнивание¦Выравнивание управляющих элементов) позволяет легко
       выровнять группу управляющих элементов.

            Для выравнивания управляющих элементов сделайте следующее:

            1. Выберите  управляющий  элемент,  который вы хотите выров-
               нять.

               При выборе группы управляющих элементов обратите внимание
               на рамку изменения размера. Она достаточна высока и широ-
               ка, чтобы включить в себя внешние края всех выбранных уп-
               равляющих элементов. Параметр выравнивания перемещает уп-
               равляющие элементы в данных границах.

            2. Выберите команду Align¦Align  Controls  (Выравнивание¦Вы-
               равнивание  управляющих элементов).  Вы увидите следующее
               диалоговое окно:

       ----T-----------------------------------------------------------¬
       ¦ - ¦                   Align controls                          ¦
       +---+-----------------------------------------------------------+
       ¦                                                               ¦
       ¦ Horizontal alignment           Vertical alignment             ¦
       ¦ -----------------------------¬-----------------------------¬  ¦
       ¦ ¦ >* No change¦      Ctrl    ¦¦ >* No change¦      Ctrl    ¦  ¦
       ¦ ¦    ----------    --------¬ ¦¦    ----------    --------¬ ¦  ¦
       ¦ ¦ <  Left sides    ¦   L   ¦ ¦¦ <  Tops          ¦   T   ¦ ¦  ¦
       ¦ ¦                  ¦       ¦ ¦¦                  ¦       ¦ ¦  ¦
       ¦ ¦ <  Centers       ¦   H   ¦ ¦¦ <  Centers       ¦   V   ¦ ¦  ¦
       ¦ ¦                  ¦       ¦ ¦¦                  ¦       ¦ ¦  ¦
       ¦ ¦ <  Right sides   ¦   R   ¦ ¦¦ <  Bottoms       ¦   B   ¦ ¦  ¦
       ¦ ¦                  ¦       ¦ ¦¦                  ¦       ¦ ¦  ¦
       ¦ ¦ <  Space equally ¦ Srtch ¦ ¦¦ <  Space equally ¦ Srtch ¦ ¦  ¦
       ¦ ¦                  ¦       ¦ ¦¦                  ¦       ¦ ¦  ¦
       ¦ ¦ <  Center in     ¦   D   ¦ ¦¦ <  Center in     ¦   C   ¦ ¦  ¦
       ¦ ¦    dialog        L-------- ¦¦    dialog        L-------- ¦  ¦
       ¦ L-----------------------------L-----------------------------  ¦
       ¦                                                               ¦
       +---------------------------------------------------------------+
       ¦   ------------¬         ------------¬       ------------¬     ¦
       ¦   ¦  _        ¦-        ¦           ¦-      ¦           ¦-    ¦
       ¦   ¦ V  OK     ¦-        ¦ X  Cancel ¦-      ¦ ?  Help   ¦-    ¦
       ¦   L-------------        L-------------      L-------------    ¦
       ¦     ------------          ------------        ------------    ¦
       ¦                                                               ¦
       L----------------------------------------------------------------

            Рис. 4.11 Диалоговое окно Duplicate Control

            Align controls   -   выравнивание   управляющих   элементов;
       Horizontal  alignment  -  горизонтальное  выравнивание;  Vertical
       alignment - вертикальное выравнивание; No change - без изменения;
       Left sides - левый стороны; Centers - центр; Right sides - правые
       стороны; Space  equally  -  равное  расстояние;  Center in dialog
       центр в диалоге;  OK - выполнение; Cancel - отмена; Help - справ-
       ка.

            3. Для перемещения выделенных управляющих элементов выберите
               параметры  Vertical Alignment (Вертикальное выравнивание)
               и Horizontal Alignment (Горизонтальное выравнивание).

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

                 Параметры горизонтального выравнивания      Таблица 4.7
       --------------------------T-------------------------------------¬
       ¦   Параметр              ¦ Описание                            ¦
       +-------------------------+-------------------------------------+
       ¦   No Change             ¦ Управляющие элементы не будут  пере-¦
       ¦   (без изменения)       ¦ мещаться в горизонтальном  направле-¦
       ¦                         ¦ нии.                                ¦
       ¦                         ¦                                     ¦
       +-------------------------+-------------------------------------+
       ¦   Left Sides            ¦ Управляющие   элементы  перемещаются¦
       ¦   (левые стороны)       ¦ горизонтально, так что они будут вы-¦
       ¦                         ¦ равниваться вдоль левой стороны рам-¦
       ¦                         ¦ ки изменения размера.               ¦
       ¦                         ¦                                     ¦
       +-------------------------+-------------------------------------+
       ¦   Right Sides           ¦ Управляющие   элементы  перемещаются¦
       ¦   (правые стороны)      ¦ горизонтально, так что они будут вы-¦
       ¦                         ¦ равниваться вдоль   правой   стороны¦
       ¦                         ¦ рамки изменения размера.            ¦
       ¦                         ¦                                     ¦
       +-------------------------+-------------------------------------+
       ¦   Space Equally         ¦ Перемещает управляющие элементы  го-¦
       ¦   (с равным расстоянием)¦ ризонтально, так что они  располага-¦
       ¦                         ¦ ются в  рамке  изменения  размера на¦
       ¦                         ¦ одинаковом расстоянии.              ¦
       ¦                         ¦                                     ¦
       +-------------------------+-------------------------------------+
       ¦   Center in Dialog      ¦ Перемещает рамку  изменения  размера¦
       ¦   (центрирование в      ¦ горизонтально, так что  она  центри-¦
       ¦   диалоговом окне)      ¦ руется в диалоговом окне.           ¦
       ¦                         ¦                                     ¦
       L-------------------------+--------------------------------------

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

                   Параметры вертикального выравнивания      Таблица 4.8
       --------------------------T-------------------------------------¬
       ¦   Параметр              ¦ Описание                            ¦
       +-------------------------+-------------------------------------+
       ¦    No Change            ¦ Управляющие элементы не перемещаются¦
       ¦    (без изменения)      ¦ в вертикальном направлении.         ¦
       ¦                         ¦                                     ¦
       +-------------------------+-------------------------------------+
       ¦    Tops                 ¦ Управляющие элементы перемещаются  в¦
       ¦    (вверху)             ¦ вертикальном направлении и  выравни-¦
       ¦                         ¦ ваются вдоль верхней  границы  рамки¦
       ¦                         ¦ изменения размера.                  ¦
       ¦                         ¦                                     ¦
       +-------------------------+-------------------------------------+
       ¦    Centers              ¦ Управляющие элементы перемещаются  в¦
       ¦    (по центру)          ¦ вертикальном направлении и  выравни-¦
       ¦                         ¦ ваются  по  центру  рамки  изменения¦
       ¦                         ¦ размера.                            ¦
       +-------------------------+-------------------------------------+
       ¦    Space Equally        ¦ Управляющие элементы перемещаются  в¦
       ¦    (на равном           ¦ вертикальном направлении и  выравни-¦
       ¦    расстоянии)          ¦ ваются в рамке изменения  размера  с¦
       ¦                         ¦ на равном расстоянии друг от друга. ¦
       +-------------------------+-------------------------------------+
       ¦    Center in Dialog     ¦ Управляющие элементы перемещаются  в¦
       ¦    (центрирование в     ¦ вертикальном направлении и  выравни-¦
       ¦    диалоговом окне)     ¦ ваются по центру диалогового окна.  ¦
       L-------------------------+--------------------------------------

            После того  как  вы  выберите нужное горизонтальное и верти-
       кальное выравнивание, активизируйте командную кнопку OK.

            Обратите внимание на акселераторы или командные клавиши, ко-
       торые перечислены в диалоговом окне Align Control. Вместо исполь-
       зования команды Align¦Align Controls вы  можете  выделить  группу
       управляющих элементов,  а  затем  использовать акселераторы Align
       Controls. Например,  нажатие клавиш Ctrl+L выравнивает группу уп-
       равляющих элементов  горизонтально  вдоль левой стороны рамки,  а
       нажатие Ctrl+B выравнивает их вертикально  вдоль  нижней  стороны
       рамки.
                                 ---------¬
                                 ¦        ¦
                                 ¦ Undo   ¦ Отмена
                                 ¦        ¦
                                 L---------

            Отменить выравнивание можно с помощью команды Edit¦Undo (Ре-
       дактирование¦Отмена), нажатия клавиш Alt+пробел или  выбора  пик-
       тограммы "Отмена" палитры инструментальных средств.

            Наиболее простой  способ  выравнивания управляющих элементов
       состоит в использовании палитры инструментальных средств. Выбери-
       те управляющий элемент,  который вы хотите выровнять,  щелкнув на
       нем кнопкой "мыши" и выполнив буксировку.  Затем выберите из  па-
       литры инструментальное средство "Выравнивание".

                 --------T-----------------------¬
                 ¦   =   ¦       Alignment       ¦
                 +-------+-------T-------T-------+
                 ¦       ¦       ¦       ¦       ¦
                 ¦  >==  ¦  >=<  ¦ ¦<=>¦ ¦  ==<  ¦
                 ¦       ¦       ¦       ¦       ¦
                 +-------+-------+-------+-------+ Рис. 4.12  Палитра
                 ¦   ^   ¦   ^   ¦   ^   ¦   ¦   ¦            Alignment
                 ¦   ¦   ¦   ¦   ¦   ¦   ¦   ¦   ¦
                 ¦   ¦   ¦   v   ¦   v   ¦   v   ¦
                 L-------+-------+---=---+--------

            В данной палитре вы можете выбирать следующие инструменталь-
       ные средства:

            --------¬
            ¦       ¦  Перемещает управляющий элемент горизонтально, так
            ¦  >==  ¦  что они выравниваются вдоль левой стороны рамки.
            ¦       ¦
            L--------
            --------¬
            ¦       ¦  Перемещает управляющий элемент горизонтально, так
            ¦  >=<  ¦  что они выравниваются по центру рамки.
            ¦       ¦
            L--------
            --------¬
            ¦       ¦  Перемещает управляющий элемент горизонтально, так
            ¦  ==<  ¦  что они выравниваются вдоль правой стороны рамки.
            ¦       ¦
            L--------
            --------¬
            ¦       ¦  Перемещает рамку и выделенные управляющие элемен-
            ¦ ¦<=>¦ ¦  ты горизонтально, так что они центрируются в диа-
            ¦       ¦  логовой рамке.
            L--------
            --------¬
            ¦   ^   ¦  Перемещает управляющие элементы вертикально,  так
            ¦   ¦   ¦  что они выравниваются вдоль верхней стороны рамки.
            ¦   ¦   ¦
            L--------
            --------¬
            ¦   ^   ¦  Перемещает управляющие элементы вертикально,  так
            ¦   ¦   ¦  что они выравниваются по центру рамки.
            ¦   v   ¦
            L--------
            --------¬
            ¦   ¦   ¦  Перемещает управляющие элементы вертикально,  так
            ¦   ¦   ¦  что они выравниваются вдоль нижней стороны рамки.
            ¦   v   ¦
            L--------
            --------¬
            ¦   ^   ¦  Перемещает рамку и выделенные управляющие элемен-
            ¦   ¦   ¦  ты вертикально,  так  что они центрируются в диа-
            ¦   v   ¦  логовой рамке.
            L---=----

            Имеется один параметр выравнивания, который не встречается в
       палитре инструментальных средств.  Это параметр Space Equally  (С
       равным расстоянием).  Вы,  конечно, всегда можете воспользоваться
       управляющим окном Align Controls,  но существует другой способ, с
       помощью которого вы можете расположить элементы в рамке на равном
       расстоянии друг от друга.

                  Примечание: Расположить  элементы  в  рамке  с  равным
             расстоянием друг от друга вы можете "вытягивая" рамку.

            Для этого сделайте следующее:

            1. Выберите группу управляющих элементов, для которых вы хо-
               тите применить данный параметр. При этом вокруг выбранных
               элементов отобразится рамка.

            2. "Вытяните" рамку,  удерживая клавишу Ctrl и буксируя край
               рамки изменения размера в нужном направлении.

                 - чтобы  разместить управляющие элементы с равным расс-
                   тоянием горизонтально, вытяните правую или левую гра-
                   ницу рамки.

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

            Если вы вытяните угол рамки,  то выводится  диалоговое  окно
       Array (Массив), с помощью которого вы можете упорядочить управля-
       ющие элементы по столбцам и строкам.

                  Примечание: Подробнее о диалоговом окне Array  расска-
             зывается ниже.
             Изменение размера нескольких управляющих элементов
       -----------------------------------------------------------------

            Чтобы изменить размер управляющего элемента, вы можете выде-
       лить его  и буксировать соответствующий край или угол.  С помощью
       параметра Size Controls (Размер управляющего элемента)  вы можете
       изменить размер группы управляющих элементов.

            1. Выделите управляющие элементы,  которые вы хотите настро-
               ить.

               При выборе группы управляющих элементов обратите внимание
               на рамку изменения размера. Она достаточна высока и широ-
               ка, чтобы включить в себя внешние края всех выбранных уп-
               равляющих элементов.  Параметр изменения размера изменяет
               размер управляющих элементы в данных границах.

            2. Выберите команду Align¦Size Controls (Выравнивание¦Вырав-
               нивание управляющих элементов). Вы увидите следующее
              диалоговое окно:

       ----T-----------------------------------------------------------¬
       ¦ - ¦                    Size controls                          ¦
       +---+-----------------------------------------------------------+
       ¦                                                               ¦
       ¦ Horizontal size                Vertical size                  ¦
       ¦ -----------------------------¬-----------------------------¬  ¦
       ¦ ¦ >* No change¦              ¦¦ >* No change¦              ¦  ¦
       ¦ ¦    ----------              ¦¦    ----------              ¦  ¦
       ¦ ¦ <  Shrink to smallest      ¦¦ <  Shrink to smallest      ¦  ¦
       ¦ ¦                            ¦¦                            ¦  ¦
       ¦ ¦ <  Grow to largest         ¦¦ <  Grow to largest         ¦  ¦
       ¦ ¦                            ¦¦                            ¦  ¦
       ¦ ¦ <  Width of size box       ¦¦ <  Height of size box      ¦  ¦
       ¦ ¦                            ¦¦                            ¦  ¦
       ¦ ¦ <  Width of dialog         ¦¦ <  Height of dialog        ¦  ¦
       ¦ ¦                            ¦¦                            ¦  ¦
       ¦ ¦ <  Enter values            ¦¦ <  Enter values            ¦  ¦
       ¦ ¦                            ¦¦                            ¦  ¦
       ¦ L-----------------------------L-----------------------------  ¦
       ¦ -----------------------------¬-----------------------------¬  ¦
       ¦ ¦    ---------¬   ---------¬ ¦¦    ---------¬   ---------¬ ¦  ¦
       ¦ ¦ X  ¦        ¦ CX¦        ¦ ¦¦ Y  ¦        ¦ CY¦        ¦ ¦  ¦
       ¦ ¦    L---------   L--------- ¦¦    L---------   L--------- ¦  ¦
       ¦ L-----------------------------L-----------------------------  ¦
       +---------------------------------------------------------------+
       ¦   ------------¬         ------------¬       ------------¬     ¦
       ¦   ¦  _        ¦-        ¦           ¦-      ¦           ¦-    ¦
       ¦   ¦ V  OK     ¦-        ¦ X  Cancel ¦-      ¦ ?  Help   ¦-    ¦
       ¦   L-------------        L-------------      L-------------    ¦
       ¦     ------------          ------------        ------------    ¦
       ¦                                                               ¦
       L----------------------------------------------------------------

            Рис. 4.13 Диалоговое окно Duplicate Control

            Align size  -  изменение  размера   управляющих   элементов;
       Horizontal  size - размер по горизонтали;  Vertical size - размер
       по вертикали;  No change - без изменения;  Shrink to  smallest  -
       сжатие до наименьшего; Grow to largest - увеличение до наибольше-
       го; Width of size box ширина рамки размера: Width of dialog - ши-
       рина диалога;  Height of size box - высота рамки размера;  Height
       of dialog - высота диалога;  Enter values - ввод значений;  OK  -
       выполнение; Cancel - отмена; Help - справка

            3. Для перемещения выделенных управляющих элементов выберите
               параметры   Vertical   Size   (Размер   по  вертикали)  и
               Horizontal Size (Размер по горизонтали).

               Параметры изменения размера по горизонтали делают следую-
       щее (большинство параметров разрешено только если вы выделите два
       или более управляющих элемента):


                 Параметры изменения размера по горизонтали  Таблица 4.9
       -----------------------T----------------------------------------¬
       ¦   Параметр           ¦ Описание                               ¦
       +----------------------+----------------------------------------+
       ¦   No Change          ¦ Размер по горизонтали управляющих  эле-¦
       ¦   (без изменения)    ¦ ментов изменяться не будет.            ¦
       ¦                      ¦                                        ¦
       +----------------------+----------------------------------------+
       ¦   Shrink to smallest ¦ Изменяется размер  управляющих  элемен-¦
       ¦   (сжатие до наимень-¦ тов по  горизонтали - их  ширина  будет¦
       ¦   щего)              ¦ соответствовать самому узкому  элементу¦
       ¦                      ¦ в группе.                              ¦
       ¦                      ¦                                        ¦
       +----------------------+----------------------------------------+
       ¦   Grow to Largest    ¦ Изменяется размер  управляющих  элемен-¦
       ¦   (увеличение до     ¦ тов по  горизонтали - их  ширина  будет¦
       ¦   наибольшего)       ¦ соответствовать самому широкому элемен-¦
       ¦                      ¦ ту в группе.                           ¦
       ¦                      ¦                                        ¦
       +----------------------+----------------------------------------+
       ¦   Width of Size Box  ¦ Изменяет размер  управляющих  элементов¦
       ¦   (ширина рамки      ¦ таким образом, что он будет  соответст-¦
       ¦   размера)           ¦ вовать рамке изменения размера.        ¦
       ¦                      ¦                                        ¦
       +----------------------+----------------------------------------+
       ¦   Width of Dialog    ¦ Изменяет размер  управляющих  элементов¦
       ¦   (ширина диалого-   ¦ таким образом, что он будет  соответст-¦
       ¦   вого окна)         ¦ вовать размеру диалогового окна.       ¦
       ¦                      ¦                                        ¦
       L----------------------+-----------------------------------------

               Параметры изменения размера по вертикали делают следующее
       (большинство параметров разрешено только если вы выделите два или
       более управляющих элемента):


                 Параметры изменения размера по вертикали   Таблица 4.10
       -----------------------T----------------------------------------¬
       ¦   Параметр           ¦ Описание                               ¦
       +----------------------+----------------------------------------+
       ¦   No Change          ¦ Размер  по  вертикали управляющих  эле-¦
       ¦   (без изменения)    ¦ ментов изменяться не будет.            ¦
       ¦                      ¦                                        ¦
       +----------------------+----------------------------------------+
       ¦   Shrink to smallest ¦ Изменяется размер  управляющих  элемен-¦
       ¦   (сжатие до наимень-¦ тов  по   вертикали - их толщина  будет¦
       ¦   щего)              ¦ соответствовать самому тонкому элементу¦
       ¦                      ¦ в группе.                              ¦
       ¦                      ¦                                        ¦
       +----------------------+----------------------------------------+
       ¦   Grow to Largest    ¦ Изменяется размер  управляющих  элемен-¦
       ¦   (увеличение до     ¦ тов  по вертикали - их  толщина   будет¦
       ¦   наибольшего)       ¦ соответствовать самому толстому элемен-¦
       ¦                      ¦ ту в группе.                           ¦
       ¦                      ¦                                        ¦
       +----------------------+----------------------------------------+
       ¦   Height of Size Box ¦ Изменяет размер  управляющих  элементов¦
       ¦   (ширина рамки      ¦ таким образом, что он будет  соответст-¦
       ¦   размера)           ¦ вовать рамке изменения размера.        ¦
       ¦                      ¦                                        ¦
       +----------------------+----------------------------------------+
       ¦   Height of Dialog   ¦ Изменяет размер  управляющих  элементов¦
       ¦   (ширина диалого-   ¦ таким образом, что он будет  соответст-¦
       ¦   вого окна)         ¦ вовать размеру диалогового окна.       ¦
       ¦                      ¦                                        ¦
       L----------------------+-----------------------------------------

            После того  как  вы  выберите нужное горизонтальное и верти-
       кальное выравнивание, активизируйте командную кнопку OK.

            Выбрав команду Edit¦Undo (Редактирование¦Отмена), нажав кла-
       виши Alt+пробел,  или выбрав пиктограмму "Отмена" палитры инстру-
       ментальных средств, вы можете отменить параметры изменения разме-
       ра.
           Размещение управляющих элементов по столбцам и строкам
       -----------------------------------------------------------------

            Если вы хотите упорядочить управляющие элементы в массиве по
       столбцам и строкам, используйте команду Align¦Array (Выравнивание
       ¦Массив). Кроме  форматирования управляющих элементов по столбцам
       и строкам,  команда Align¦Array также нумерует каждый управляющий
       элемент, как элемент группы-массива.

            Команда Array используется следующим образом:

            1. Выберите управляющие элементы, которые вы хотите упорядо-
               чить по столбцам и строкам.

               Когда вы выбираете группу управляющих элементов, обратите
               внимание на рамку изменения размера, которая окружает все
               эти элементы. Она имеет достаточную ширину и высоту, что-
               бы охватить внешние края всех выделенных управляющих эле-
               ментов.

            2. Если необходимо,  расширьте размер рамки изменения разме-
               ра, чтобы в ней оказались нужные строки и столбца.

                               ---------¬
                               ¦        ¦
                               ¦ -¬--<-¬¦ Дублирование
                               ¦        ¦
                               L---------

            3. Выберите  команду  Align¦Array  (Выравнивание¦Массив) или
               выберите пиктограмму инструментального средства "Дублиро-
               вание". Вы увидите следующее диалоговое окно:

       ----T-----------------------------------------------------------¬
       ¦ - ¦               Form controls into an array                 ¦
       +---+-----------------------------------------------------------+
       ¦                                                               ¦
       ¦   Array layout                  Order                         ¦
       ¦ -----------------------------¬-----------------------------¬  ¦
       ¦ ¦                            ¦¦                            ¦  ¦
       ¦ ¦                 ---------¬ ¦¦                            ¦  ¦
       ¦ ¦  Rows           ¦        ¦ ¦¦  >* Left to right          ¦  ¦
       ¦ ¦                 L--------- ¦¦                            ¦  ¦
       ¦ ¦                            ¦¦                            ¦  ¦
       ¦ ¦                 ---------¬ ¦¦                            ¦  ¦
       ¦ ¦  Columns        ¦        ¦ ¦¦  <  Top to bottom          ¦  ¦
       ¦ ¦                 L--------- ¦¦                            ¦  ¦
       ¦ ¦                            ¦¦                            ¦  ¦
       ¦ L-----------------------------L-----------------------------  ¦
       +---------------------------------------------------------------+
       ¦   ------------¬         ------------¬       ------------¬     ¦
       ¦   ¦  _        ¦-        ¦           ¦-      ¦           ¦-    ¦
       ¦   ¦ V  OK     ¦-        ¦ X  Cancel ¦-      ¦ ?  Help   ¦-    ¦
       ¦   L-------------        L-------------      L-------------    ¦
       ¦     ------------          ------------        ------------    ¦
       ¦                                                               ¦
       L----------------------------------------------------------------

            Рис. 4.14 Диалоговое окно Form controls into an array

            Form controls  into an array - формирование управляющих эле-
       ментов в массив;  Array layout - схема массива;  Order - порядок;
       Rows - строки;  Columns - столбцы; Left to right - слева-направо;
       Top to bottom - сверху вниз;  OK - выполнение;  Cancel -  отмена;
       Help - справка

            4. В блоке под заголовком Array Layout (Схема массива),  за-
               дайте нужное число строк и столбцов.

            5. В блоке под заголовком Order выберите, как вы хотите упо-
               рядочивать управляющие элементы в группе. Например, пред-
               положим,  вы упорядочиваете управляющие  элементы  в  три
               столбца.

               Если вы выберите Left to Right (Слева-направо), то редак-
               тор диалогов нумерует управляющие элементы следующим  об-
               разом.

          ------------¬         ------------¬       ------------¬
          ¦           ¦-        ¦           ¦-      ¦           ¦-
          ¦     1     ¦-        ¦     2     ¦-      ¦     2     ¦-
          ¦           ¦-        ¦           ¦-      ¦           ¦-
          L-------------        L-------------      L-------------
            ------------          ------------        ------------

          ------------¬         ------------¬       ------------¬
          ¦           ¦-        ¦           ¦-      ¦           ¦-
          ¦     4     ¦-        ¦     5     ¦-      ¦     6     ¦-
          ¦           ¦-        ¦           ¦-      ¦           ¦-
          L-------------        L-------------      L-------------
            ------------          ------------        ------------

          ------------¬         ------------¬       ------------¬
          ¦           ¦-        ¦           ¦-      ¦           ¦-
          ¦     7     ¦-        ¦     8     ¦-      ¦     9     ¦-
          ¦           ¦-        ¦           ¦-      ¦           ¦-
          L-------------        L-------------      L-------------
            ------------          ------------        ------------


            Рис. 4.15 Управляющие элементы, упорядоченные слева-направо


               Если вы выберите Top to Bottom (Сверху-вниз), то редактор
               диалогов нумерует управляющие элементы следующим образом.

          ------------¬         ------------¬       ------------¬
          ¦           ¦-        ¦           ¦-      ¦           ¦-
          ¦     1     ¦-        ¦     2     ¦-      ¦     7     ¦-
          ¦           ¦-        ¦           ¦-      ¦           ¦-
          L-------------        L-------------      L-------------
            ------------          ------------        ------------

          ------------¬         ------------¬       ------------¬
          ¦           ¦-        ¦           ¦-      ¦           ¦-
          ¦     2     ¦-        ¦     5     ¦-      ¦     8     ¦-
          ¦           ¦-        ¦           ¦-      ¦           ¦-
          L-------------        L-------------      L-------------
            ------------          ------------        ------------

          ------------¬         ------------¬       ------------¬
          ¦           ¦-        ¦           ¦-      ¦           ¦-
          ¦     3     ¦-        ¦     6     ¦-      ¦     9     ¦-
          ¦           ¦-        ¦           ¦-      ¦           ¦-
          L-------------        L-------------      L-------------
            ------------          ------------        ------------


            Рис. 4.15 Управляющие элементы, упорядоченные сверху-вниз

            6. После того,  как вы выберите параметры для массива, акти-
               визируйте командную кнопку OK.

                              Отмена изменений
       -----------------------------------------------------------------

                               ---------¬
                               ¦        ¦
                               ¦  Undo  ¦ Отмена
                               ¦        ¦
                               L---------

            С помощью инструментального средства  "Отмена"  или  команды
       Edit¦Undo (Редактирование¦Отмена) вы можете "отменить" все редак-
       тирование, выполненное в редакторе диалогов (размещение управляю-
       щих элементов, их выравнивание, удаление и т.д.). Отмена действу-
       ет на команды, которые влияют на группы или управляющие элементы,
       а также  на команды,  которые изменяют отдельный управляющий эле-
       мент.
                         Управление с помощью кнопок
       -----------------------------------------------------------------

            Управление с помощью кнопок позволяет выполнять кнопки с не-
       зависимой фиксацией (селективные кнопки), кнопки с зависимой фик-
       сацией (которые называют также параметрами или блоками проверки),
       командные кнопки и групповые кнопки. Хотя вы можете добавить их в
       диалоговое окно с помощью палитры инструментальных  средств,  для
       модификации  существующих  кнопочных  управляющих элементов нужно
       использовать диалоговое окно Button Style (Тип кнопки). Для выво-
       да этого диалогового окна,  дважды щелкните кнопкой "мыши" на том
       кнопочном элементе управления, который вы хотите изменить.

            Измените  тип  кнопки,  выбрав новый параметр в блоке Button
       Type (Тип кнопки).

                                  Типы кнопок               Таблица 4.11
       ----------------------------T-----------------------------------¬
       ¦   Тип кнопки              ¦ Описание                          ¦
       +---------------------------+-----------------------------------+
       ¦   Push Button             ¦ Кнопка,  которая  содержит  текст.¦
       ¦   (командная кнопка)      ¦ Если пользователь щелкнет  на  ней¦
       ¦                           ¦ кнопкой  "мыши",  то  порождающему¦
       ¦                           ¦ окну посылается          сообщение¦
       ¦                           ¦ BN_CLICKED.                       ¦
       +---------------------------+-----------------------------------+
       ¦   Default Push Button     ¦ Идентична   командной  кнопке,  но¦
       ¦   (командная кнопка, ис-  ¦ заключена в жирную рамку, что ука-¦
       ¦   пользуемая по умолчанию)¦ зывает на ее активизацию  по умол-¦
       ¦                           ¦ чанию  при  нажатии  пользователем¦
       ¦                           ¦ клавиши Enter.                    ¦
       +---------------------------+-----------------------------------+
       ¦   Check Box (кнопка с     ¦ Прямоугольная кнопка  с  указанным¦
       ¦   независимой фиксацией)  ¦ слева или справа текстом.  При вы-¦
       ¦                           ¦ боре данной кнопки она  отмечается¦
       ¦                           ¦ символом Х (установлено). Отслежи-¦
       ¦                           ¦ вать состояние установки,  изменя-¦
       ¦                           ¦ емое пользователем,  должна  прик-¦
       ¦                           ¦ ладная программа.                 ¦
       +---------------------------+-----------------------------------+
       ¦   Auto Check Box (авто-   ¦ Идентична   кнопке  с  независимой¦
       ¦   матическая кнопка с     ¦ фиксацией,  но  вместо  прикладной¦
       ¦   независимой фиксацией)  ¦ программы ее состояние  отслежива-¦
       ¦                           ¦ вается Windows.                   ¦
       +---------------------------+-----------------------------------+
       ¦   3-state (с тремя        ¦ Идентична   кнопке  с  независимой¦
       ¦   состояниями)            ¦ фиксацией, но имеет третье возмож-¦
       ¦                           ¦ ное состояние: кнопка может  стать¦
       ¦                           ¦ тусклой, что  показывает,  что  ее¦
       ¦                           ¦ состояние неизвестно или не  опре-¦
       ¦                           ¦ делено. Отслеживать все три состо-¦
       ¦                           ¦ яния   кнопки   должна  прикладная¦
       ¦                           ¦ программа.                        ¦
       +---------------------------+-----------------------------------+
       ¦   Auto 3-state            ¦ Идентична   кнопке  с  независимой¦
       ¦   (автоматическая кнопка  ¦ фиксацией с тремя состояниями,  но¦
       ¦   с тремя состояниями)    ¦ на состояние изменяется  не  прик-¦
       ¦                           ¦ ладной программой, а Windows.     ¦
       +---------------------------+-----------------------------------+
       ¦   Radio Button (кнопка с  ¦ Круглая кнопка с  идентифицирующим¦
       ¦   зависимой фиксацией)    ¦ текстом слева  или  справа.  Когда¦
       ¦                           ¦ эта кнопка выбирается, в ее центре¦
       ¦                           ¦ появляется   жирная  точка.  Когда¦
       ¦                           ¦ пользователь выбирает кнопку,  вы-¦
       ¦                           ¦ водить в ее  центре  точку  должна¦
       ¦                           ¦ прикладная программа.             ¦
       ¦                           ¦                                   ¦
       ¦                           ¦ Кнопки с зависимой фиксацией  (се-¦
       ¦                           ¦ лективные кнопки) должны выводить-¦
       ¦                           ¦ ся группами. Обычно набор кнопок с¦
       ¦                           ¦ зависимой фиксацией  предоставляет¦
       ¦                           ¦ пользователю выбор взаимноисключа-¦
       ¦                           ¦ ющих параметров.                  ¦
       ¦                           ¦ Когда пользователь щелкает кнопкой¦
       ¦                           ¦ "мыши" на кнопке с зависимой  фик-¦
       ¦                           ¦ сацией, то порождающему окну посы-¦
       ¦                           ¦ лается сообщение BN_CLICKED.      ¦
       +---------------------------+-----------------------------------+
       ¦   Auto Radio Button       ¦ Идентична   кнопке  с  независимой¦
       ¦   (автоматическая кнопка  ¦ фиксацией, но вывод  или  стирание¦
       ¦   с зависимой фиксацией)  ¦ жирной точки выполняет Windows.   ¦
       +---------------------------+-----------------------------------+
       ¦   Group Box               ¦ Прямоугольный  блок,  объединяющий¦
       ¦   (групповой блок)        ¦ вместе группу  кнопок.  Вы  можете¦
       ¦                           ¦ также использовать заголовок,выво-¦
       ¦                           ¦ димый в левом верхнем углу блока. ¦
       +---------------------------+-----------------------------------+
       ¦   User Button             ¦ Специализированная  кнопка,  пред-¦
       ¦   (кнопка пользователя)   ¦ назначенная  для  совместимости  с¦
       ¦                           ¦ Windows 2.0. Мы не  рекомендуем  в¦
       ¦                           ¦ Windows 3.0 использовать  управле-¦
       ¦                           ¦ ние   с  помощью  пользовательских¦
       ¦                           ¦ кнопок. Вместо этого  следует  ис-¦
       ¦                           ¦ пользовать   отображаемые   кнопки¦
       ¦                           ¦ владельца.                        ¦
       +---------------------------+-----------------------------------+
       ¦   Owner draw (отобража-   ¦ Кнопки, которые позволяют приклад-¦
       ¦   емые кнопки владельца)  ¦ ной программе самой рисовать кноп-¦
       ¦                           ¦ ку.  Когда  требуется  отображение¦
       ¦                           ¦ кнопки,   она  посылает  сообщение¦
       ¦                           ¦ WM_DRAWITEM.                      ¦
       L---------------------------+------------------------------------

            Характер вывода  текста для кнопок с зависимой и независимой
       фиксацией определяет параметр выравнивания.


                            Параметры выравнивания          Таблица 4.12
       --------------------T-------------------------------------------¬
       ¦   Параметр        ¦ Описание                                  ¦
       +-------------------+-------------------------------------------+
       ¦   Left (слева)    ¦ Текст располагается слева от кнопки.      ¦
       ¦                   ¦                                           ¦
       ¦   Right (справа)  ¦ Текст располагается справа от кнопки.     ¦
       L-------------------+--------------------------------------------
                    Управление с помощью полос прокрутки
       -----------------------------------------------------------------

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

            Вертикальные и  горизонтальные  полосы  прокрутки  вы можете
       включать в любое место диалогового окна.

            Хотя вы можете разместить полосы прокрутки с помощью палитры
       инструментальных средств или команды Controls¦Scrollbar (Управля-
       ющие элементы¦Полосы  прокрутки),  полосы  прокрутки   необходимо
       настроить с помощью диалогового окна Scroll Bar Style (Тип полосы
       прокрутки). Чтобы вывести данное диалоговое окно,  щелкните кноп-
       кой "мыши" на той полосе прокрутки, которую вы хотите модифициро-
       вать.

            Диалоговое окно Scroll Bar Style включает в себя общие и уп-
       равляющие параметры (атрибуты), приведенные в таблицах 4.4 - 4.6,
       а также параметры выравнивания, настраивающие полосу прокрутки.


                            Параметры выравнивания          Таблица 4.13
       ----------------------T-----------------------------------------¬
       ¦   Параметр          ¦ Описание                                ¦
       +---------------------+-----------------------------------------+
       ¦   None              ¦ Полоса прокрутки заполняет  всю  прямоу-¦
       ¦   (отсутствует )    ¦ гольную область (по умолчанию).         ¦
       ¦                     ¦                                         ¦
       ¦   Top Left          ¦ Полоса прокрутки выводится в верхнем ле-¦
       ¦   (верхний левый)   ¦ вом углу прямоугольника.                ¦
       ¦                     ¦                                         ¦
       ¦   Bottom Right      ¦ Полоса прокрутки выводится в нижнем пра-¦
       ¦   (нижний правый)   ¦ вом углу прямоугольника.                ¦
       L---------------------+------------------------------------------
                                Блоки списка
       -----------------------------------------------------------------

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

            Блоки списка часто выводятся в диалоговом окне File Open.

                            Files:
                           ----------------------T-¬
                           ¦katznjmr.ico         ¦^¦
                           ¦kitty.ico            +-+
                           ¦ledger2.ico          ¦-¦
                           ¦ledger3.ico          ¦-¦
                           ¦ledger4.ico          ¦-¦
                           ¦lgricons.ico         ¦-¦
                           ¦mouse.ico            +-+
                           ¦netmail.ico          ¦v¦
                           L---------------------+--

            Рис. 4.17 Блок списка в диалоговом окне File Open

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

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

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

                      Параметры отображения пользователя    Таблица 4.14
       ----------------------T-----------------------------------------¬
       ¦   Параметры         ¦ Описание                                ¦
       +---------------------+-----------------------------------------+
       ¦   Not Owner         ¦ Отображением   списка   управляет   блок¦
       ¦   Draw (не поль-    ¦ списка.                                 ¦
       ¦   зовательское      ¦                                         ¦
       ¦   отображение       ¦                                         ¦
       +---------------------+-----------------------------------------+
       ¦   Fixed             ¦ Прикладная  программа   отображает  блок¦
       ¦   (фиксированный)   ¦ списка в ответ на сообщение WM_DRAWITEM.¦
       ¦                     ¦ Прикладная программа отвечает  также  на¦
       ¦                     ¦ сообщение WM_COMPAREITEM, WM_DELETEITEM,¦
       ¦                     ¦ WM_MEASUREITEM.                         ¦
       ¦                     ¦                                         ¦
       ¦                     ¦ Блок списка управляет передачей  сообще-¦
       ¦                     ¦ ния WM_MEASUREITEM прикладной  программе¦
       ¦                     ¦ только когда блок  списка  первоначально¦
       ¦                     ¦ отображается,  фиксируя  высоту элемента¦
       ¦                     ¦ блока списка.                           ¦
       +---------------------+-----------------------------------------+
       ¦   Variable          ¦ Прикладная  программа   отображает  блок¦
       ¦   (переменный)      ¦ списка в ответ на сообщение WM_DRAWITEM.¦
       ¦                     ¦ Прикладная программа отвечает  также  на¦
       ¦                     ¦ сообщение WM_COMPAREITEM, WM_DELETEITEM,¦
       ¦                     ¦ WM_MEASUREITEM.                         ¦
       ¦                     ¦                                         ¦
       ¦                     ¦ Блок списка управляет передачей  сообще-¦
       ¦                     ¦ ния WM_MEASUREITEM прикладной  программе¦
       ¦                     ¦ для каждого элемента списка. Каждый эле-¦
       ¦                     ¦ мент  списка может иметь различную высо-¦
       ¦                     ¦ ту.                                     ¦
       +---------------------+-----------------------------------------+
       ¦   Has Strings       ¦ Если   вы  выбрали  параметр  Fixed  или¦
       ¦   (имеет строки)    ¦ Variable,  блок  списка  сохраняет текст¦
       ¦                     ¦ каждого элемента   списка   в  сообщении¦
       ¦                     ¦ LB_INSERTSTRING или  LB_ADDSTRING.  Блок¦
       ¦                     ¦ списка  может  также  получать  элементы¦
       ¦                     ¦ списка из сообщения LB_GETTEXT.         ¦
       L---------------------+------------------------------------------

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

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


                Редактируемые текстовые управляющие элементы
       -----------------------------------------------------------------

            Редактируемый текстовый  управляющий элемент позволяет поль-
       зователю вводить с клавиатуры текст.  Обычно эти управляющие эле-
       менты применяются в диалоговом окне File Open.

            -----------------------------------------------------------¬
            ¦---------------------------------------------------------¬¦
            ¦--File-name-¦*.rc                                        ¦¦
            ¦------------L---------------------------------------------¦
            L-----------------------------------------------------------

            Рис. 4.18 Редактируемый текстовый управляющий элемент диало-
       гового окна File Open

            Чтобы настроить редактируемый текстовый управляющий элемент,
       дважды щелкните на нем кнопкой "мыши". При этом выводится диалого-
       вое окно Edit Text Style (Тип редактируемого  текстового  элемен-
       та).

            Данное диалоговое окно включает в себя общие параметры и уп-
       равляющие атрибуты,  перечисленные в таблицах,  начиная с таблицы
       4.4, а также следующие параметры:

            - Justification (выравнивание);
            - Automatic Scroll (автоматическая прокрутка);
            - Line (строка);
            - Case (регистр символов);
            - Other (прочие).

            Параметр Justification (выравнивание) определяет,  как наби-
       рается текст в текстовом элементе и как выводится текст.

                            Параметры выравнивания          Таблица 4.16
       ----------------T-----------------------------------------------¬
       ¦   Параметр    ¦ Описание                                      ¦
       +---------------+-----------------------------------------------+
       ¦   Left        ¦ Текст из нескольких строк выравнивается слева.¦
       ¦   (слева)     ¦                                               ¦
       ¦               ¦                                               ¦
       ¦   Right       ¦ Текст из нескольких строк выравнивается  спра-¦
       ¦   (справа)    ¦ ва.                                           ¦
       ¦               ¦                                               ¦
       ¦   Center      ¦ Центрирует текст из нескольких строк.         ¦
       ¦   (центриро-  ¦                                               ¦
       ¦   вание)      ¦                                               ¦
       ¦               ¦                                               ¦
       L---------------+------------------------------------------------

            Параметр Automatic Scroll управляет автоматической  прокрут-
       кой.

                      Параметры автоматической прокрутки    Таблица 4.17
       ---------------------T------------------------------------------¬
       ¦   Параметр         ¦ Описание                                 ¦
       +--------------------+------------------------------------------+
       ¦   Horizontal       ¦ Когда пользователь набирает символ у пра-¦
       ¦   (горизонтальная) ¦ вого края границы  редактируемого текста,¦
       ¦                    ¦ текст автоматически прокручивается на  10¦
       ¦                    ¦ символов вправо. Когда пользователь нажи-¦
       ¦                    ¦ мает клавишу Enter, текст  прокручивается¦
       ¦                    ¦ обратно к нулевой позиции.               ¦
       ¦                    ¦                                          ¦
       +--------------------+------------------------------------------+
       ¦   Vertical         ¦ Когда пользователь нажимает клавишу Enter¦
       ¦   (вертикальная)   ¦ на последней строке редактируемого управ-¦
       ¦                    ¦ ляющего  элемента,  текст  прокручивается¦
       ¦                    ¦ вверх на полную страницу.  Например, если¦
       ¦                    ¦ управляющий элемент имеет  размер  в пять¦
       ¦                    ¦ строк, нажатие на последней строке клави-¦
       ¦                    ¦ ши Enter  приводит к  прокрутке  на  пять¦
       ¦                    ¦ строк вверх. Курсор возвращается к  верх-¦
       ¦                    ¦ ней строке.                              ¦
       ¦                    ¦                                          ¦
       ¦                    ¦ Чтобы этот параметр действовал, вы должны¦
       ¦                    ¦ также задать, что редактируемый управляю-¦
       ¦                    ¦ щий текстовый элемент  может  состоять из¦
       ¦                    ¦ нескольких строк.                        ¦
       ¦                    ¦                                          ¦
       L--------------------+-------------------------------------------


            Параметр Line (строка) определяет,  можно ли в редактируемом
       текстовом управляющем элементе вводить несколько строк  или одну.

                                Параметры Line              Таблица 4.18
       ----------------------T-----------------------------------------¬
       ¦   Параметр          ¦ Описание                                ¦
       +---------------------+-----------------------------------------+
       ¦   Single Line       ¦ Ограничивает   редактируемый   текстовый¦
       ¦   (одна строка)     ¦ элемент одной строкой.                  ¦
       ¦                     ¦                                         ¦
       +---------------------+-----------------------------------------+
       ¦   Multiple Line     ¦ Позволяет пользователю вводить текст  из¦
       ¦   (несколько строк) ¦ нескольких строк. (Возможно вы  захотите¦
       ¦                     ¦ выбрать характер прокрутки  текста.  См.¦
       ¦                     ¦ параметр Vertical Automatic Scroll.)    ¦
       ¦                     ¦                                         ¦
       L---------------------+------------------------------------------

            Параметры Case (регистр символов) определяет, будет в редак-
       тируемом текстовом управляющем элементе текст вводится  в верхнем
       регистре, в нижнем регистре или без изменения (как вводится).

                                Параметры Case              Таблица 4.19
       ---------------------T------------------------------------------¬
       ¦   Параметр         ¦ Описание                                 ¦
       +--------------------+------------------------------------------+
       ¦   Case Insensitive ¦ Текст выводится также,  как  он  вводится¦
       ¦   (регистр не      ¦ (по умолчанию).                          ¦
       ¦   различается)     ¦                                          ¦
       ¦                    ¦                                          ¦
       +--------------------+------------------------------------------+
       ¦   Upper Case       ¦ Весь текст выводится в  верхнем  регистре¦
       ¦   (верхний регистр)¦ независимо от того, как он вводится.     ¦
       ¦                    ¦                                          ¦
       +--------------------+------------------------------------------+
       ¦   Lower Case       ¦ Весь текст выводится в  нижнем   регистре¦
       ¦   (нижний регистр) ¦ независимо от того, как он вводится.     ¦
       ¦                    ¦                                          ¦
       L--------------------+-------------------------------------------


            Приведем еще три параметра, доступные в редактируемом управ-
       ляющем элементе:

                               Другие параметры             Таблица 4.20
       ---------------------T------------------------------------------¬
       ¦   Параметр         ¦ Описание                                 ¦
       +--------------------+------------------------------------------+
       ¦   Password         ¦ Когда  этот  параметр  установлен,  вывод¦
       ¦   (пароль)         ¦ каждой буквы при ее  наборе  подавляется.¦
       ¦                    ¦ вместо этого на ее месте выводится  звез-¦
       ¦                    ¦ дочка. Это полезно использовать при вводе¦
       ¦                    ¦ пароля и другой секретной информации.    ¦
       ¦                    ¦                                          ¦
       +--------------------+------------------------------------------+
       ¦   Convert OEM      ¦ Преобразует текст, набранный в  управляю-¦
       ¦   (преобразование  ¦ щем элементе  в  текущий  набор  символов¦
       ¦   OEM)             ¦ OEM, после чего текст  преобразуется  об-¦
       ¦                    ¦ ратно в ANSI. Этот параметр  полезно  ис-¦
       ¦                    ¦ пользовать в блоках  ввода,  так  как  он¦
       ¦                    ¦ обеспечивает, что введенное имя файла бу-¦
       ¦                    ¦ дет преобразовываться  в  набор  символов¦
       ¦                    ¦ OEM, который используется в файловой сис-¦
       ¦                    ¦ теме DOS.                                ¦
       ¦                    ¦                                          ¦
       +--------------------+------------------------------------------+
       ¦   Keep Selection   ¦ Подсвечивает выделенный текст, даже когда¦
       ¦   (сохранение      ¦ данный управляющий  элемент  не  является¦
       ¦   выделения)       ¦ текущим. Предположим, например, что поль-¦
       ¦                    ¦ зователь  подсвечивает  половину  текста,¦
       ¦                    ¦ выведенную в редактируемом текстовом эле-¦
       ¦                    ¦ менте. Обычно  когда пользователь переме-¦
       ¦                    ¦ щается к другому  управляющему  элементу,¦
       ¦                    ¦ текст больше не  подсвечивается.  Если вы¦
       ¦                    ¦ хотите,  чтобы пользователь видел подсве-¦
       ¦                    ¦ ченный  текст  даже  при работе с другими¦
       ¦                    ¦ управляющими элементами,  выберите данный¦
       ¦                    ¦ параметр.                                ¦
       ¦                    ¦                                          ¦
       L--------------------+-------------------------------------------


                      Статические управляющие элементы
       -----------------------------------------------------------------

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

            Статический управляющий  элемент  в палитре инструментальных
       средств включает в себя:

            - статический текст;
            - пиктограмму;
            - рамку;
            - прямоугольную область.

            Настроить статические  управляющие  элементы вы можете с по-
       мощью диалогового окна Static Style (Тип  статического элемента).
       Это диалоговое окно выводится,  если дважды щелкнуть кнопкой "мы-
       ши" на статическом элементе а диалоговом окне.

            Диалоговое окно Static Style выключает в себя общие и управ-
       ляющие параметры,  описанные в приведенных выше таблицах (начиная
       с Таблицы 4.4),  а также несколько параметров,  специфических для
       статических управляющих элементов.

            Для статического управляющего элемента,  представляющего со-
       бой пиктограмму,  поле Caption (Заголовок) должно  содержать  имя
       числового идентификатора  ресурса пиктограммы,  иначе пиктограмма
       не выводится.  Если ресурс пиктограммы имеет имя,  введите имя  и
       выберите параметр  Text.  Если ресурс пиктограммы имени не имеет,
       то введите имя и выберите параметр Number.  (Более  подробно  см.
       далее.)

            Кнопка с   независимой  фиксацией  (параметр)  No  Character
       Underline (Подчеркивания  символов  отсутствует)  позволяет   вам
       включить или выключить подчеркивание. Если ваш статический управ-
       ляющий элемент включает в себя текст,  вы можете подчеркнуть сим-
       вол, указав перед ним символ &.  Если вы хотите запретить подчер-
       кивание, выберите   параметр   No   Character   Underline.   Если
       подчеркивание требуется, отмените данный параметр.


            Параметры Control Type (Тип управляющего элемента) позволяют
       вам более точно определить, что должно выводиться в качестве ста-
       тического управляющего элемента. Выберите один из следующих пара-
       метров:

                    Параметры типа управляющего элемента    Таблица 4.21
       ---------------------T------------------------------------------¬
       ¦   Параметр         ¦ Описание                                 ¦
       +--------------------+------------------------------------------+
       ¦   Left Text        ¦ Текст выводится слева в границах управля-¦
       ¦   (текст слева)    ¦ ющего элемента (по умолчанию). При  нали-¦
       ¦                    ¦ чии нескольких строк текста слова,  выхо-¦
       ¦                    ¦ дящие за  строку,  переносятся  не другую¦
       ¦                    ¦ строку.                                  ¦
       ¦                    ¦                                          ¦
       +--------------------+------------------------------------------+
       ¦   Left Text -      ¦ Текст выводится слева в  границах  управ-¦
       ¦   No Wrap (текст   ¦ ляющего элемента. При наличии  нескольких¦
       ¦   слева без        ¦ строк текста данный параметр автоматичес-¦
       ¦   переноса)        ¦ ки запрещает перенос слов.  строки  нужно¦
       ¦                    ¦ заканчивать символом возврата каретки.   ¦
       ¦                    ¦                                          ¦
       +--------------------+------------------------------------------+
       ¦   Centered Text    ¦ Тест выводится по центру в  границах  уп-¦
       ¦   (сцентрированный ¦ равляющего элемента. При наличии несколь-¦
       ¦   текст)           ¦ ко  строк  текста  слова,   выходящие  за¦
       ¦                    ¦ строку, переносятся не другую строку.    ¦
       ¦                    ¦                                          ¦
       +--------------------+------------------------------------------+
       ¦   Right Text       ¦ Текст выводится справа в границах  управ-¦
       ¦   (текст справа)   ¦ ляющего элемента. При наличии нескольких ¦
       ¦                    ¦ строк текста слова,  выходящие за строку,¦
       ¦                    ¦ переносятся не другую строку.            ¦
       ¦                    ¦                                          ¦
       +--------------------+------------------------------------------+
       ¦   Simple Text      ¦ Выводится одна строка текста  со  сдвигом¦
       ¦   (простой текст)  ¦ влево.                                   ¦
       ¦                    ¦                                          ¦
       +--------------------+------------------------------------------+
       ¦   White Rectangle  ¦ Выводится заполненный  прямоугольник, ко-¦
       ¦   (белый           ¦ торый будет невидимым,  так как он  имеет¦
       ¦   прямоугольник)   ¦ тот же цвет, что и  фоновый цвет текущего¦
       ¦                    ¦ окна. По умолчанию Windows использует для¦
       ¦                    ¦ текущего окна белый цвет.                ¦
       ¦                    ¦                                          ¦
       +--------------------+------------------------------------------+
       ¦   Gray Rectangle   ¦ Выводит закрашенный  прямоугольник,  цвет¦
       ¦   (серый           ¦ которого  совпадает   с  текущим  фоновым¦
       ¦   прямоугольник)   ¦ цветом экрана  (оперативной области).  По¦
       ¦                    ¦ умолчанию Windows использует для текущего¦
       ¦                    ¦ окна белый цвет.                         ¦
       ¦                    ¦                                          ¦
       +--------------------+------------------------------------------+
       ¦   Black Rectangle  ¦ Выводит закрашенный  прямоугольник,  цвет¦
       ¦   (черный          ¦ которого  совпадает с  цветом рамки   те-¦
       ¦   прямоугольник)   ¦ кущего окна. По умолчанию Windows исполь-¦
       ¦                    ¦ зует для рамки черный цвет.              ¦
       ¦                    ¦                                          ¦
       +--------------------+------------------------------------------+
       ¦   White Frame      ¦ Выводит пустую рамку, которая  будет  не-¦
       ¦   (белая рамка)    ¦ видима, так как она имеет  тот  же  цвет,¦
       ¦                    ¦ что и фон  текущего  окна.  По  умолчанию¦
       ¦                    ¦ Windows использует для фонового цвета бе-¦
       ¦                    ¦ лый цвет.                                ¦
       ¦                    ¦                                          ¦
       +--------------------+------------------------------------------+
       ¦   Gray Frame       ¦ Выводит пустую рамку, имеющую цвет  теку-¦
       ¦   (серая рамка)    ¦ щего фона  экрана (оперативной  области).¦
       ¦                    ¦ по умолчанию Windows использует для  опе-¦
       ¦                    ¦ ративной области серый цвет.             ¦
       ¦                    ¦                                          ¦
       +--------------------+------------------------------------------+
       ¦   Black Frame      ¦ Выводит рамку с  тем  же  цветом, что  и ¦
       ¦   (черная рамка)   ¦ цвет рамки текущего окна.  По  умолчанию ¦
       ¦                    ¦ Windows использует для цвета рамки  чер- ¦
       ¦                    ¦ ный цвет.                                ¦
       ¦                    ¦                                          ¦
       +--------------------+------------------------------------------+
       ¦   Icon             ¦ Выводит пиктограмму. Для запуска  графи- ¦
       ¦   (пиктограмма)    ¦ ческого редактора,  с  помощью  которого ¦
       ¦                    ¦ можно редактировать пиктограмму, исполь- ¦
       ¦                    ¦ зуйте команду Edit Icon.                 ¦
       ¦                    ¦                                          ¦
       L--------------------+-------------------------------------------


             Статические управляющие элементы в виде пиктограмм
       -----------------------------------------------------------------

            Пакет разработчика  ресурсов  позволяет  выводить в диалого-
       вом окне пиктограммы. Чтобы поместить в диалоговом окне такой уп-
       равляющий элемент, нужно сделать следующее:

            1. Дважды щелкните кнопкой "мыши" на статическом управляющем
               элементе-пиктограмме для вывода диалогового  окна  Static
               Style.

            2. В  поле  Caption  (Заголовок)  наберите  имя или числовой
               идентификатор ресурса пиктограммы.  Если вы введете  имя,
               выберите параметр Text. Например, если в файле у вас есть
               пиктограмма с именем GLOBE,  которую вы хотите вывести  в
               диалоговом  окне,  наберите  в поле ввода Caption GLOBE и
               выберите кнопку с зависимой фиксацией Text. Затем выбери-
               те OK. Пиктограмма появится в диалоговом окне.

               Не забывайте  о том что,  если ввели идентификатор в поле
               Caption, следует выбрать параметр Number, так как при вы-
               числении идентификатора получается число.

            3. Если  вы  хотите редактировать пиктограмму,  снова дважды
               щелкните не ней кнопкой "мыши",  чтобы вывести диалоговое
               окно Statis Style.  Теперь кнопка Edit Icon (Редактирова-
               ние пиктограммы) разрешена.  Для запуска графического ре-
               дактора,  который позволит вам редактировать пиктограмму,
               щелкните на ней кнопкой "мыши".
             Управляющие элементы в виде комбинированных блоков
       -----------------------------------------------------------------

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

                          -------------------------------------------T-¬
                File type ¦                                          ¦v¦
                          L------------------------------------------+=-

            Рис. 4.19 Комбинированный блок диалогового окна File Open

            Настроить диалоговый элемент можно с помощью диалогового ок-
       на Combo Box Style (Тип комбинированного элемента).  Это диалого-
       вое окно  выведется,  если  дважды  щелкнуть  кнопкой  "мыши"  на
       комбинированным блоке в диалоговом окне.

            Определить комбинированный блок позволяют вам параметры  ти-
       па. Выберите один из следующих параметров:

                       Параметры комбинированного блока     Таблица 4.22
       --------------------T-------------------------------------------¬
       ¦   Параметр        ¦ Описание                                  ¦
       +-------------------+-------------------------------------------+
       ¦   Simple          ¦ Выпадающий список всегда  расширяется  для¦
       ¦   (простой)       ¦ вывода элементов в списке, и  пользователь¦
       ¦                   ¦ может редактировать  элементы  списка  (по¦
       ¦                   ¦ умолчанию).                               ¦
       ¦                   ¦                                           ¦
       +-------------------+-------------------------------------------+
       ¦   Drop Down       ¦ При первоначальном выводе диалогового окна¦
       ¦   (выпадающий)    ¦ комбинированный блок из  одной  строки ре-¦
       ¦                   ¦ дактируемого текста.  Чтобы расширить спи-¦
       ¦                   ¦ сок, пользователь может щелкнуть на стрел-¦
       ¦                   ¦ ке вниз и редактировать все элементы спис-¦
       ¦                   ¦ ка.                                       ¦
       ¦                   ¦                                           ¦
       +-------------------+-------------------------------------------+
       ¦   Drop Down List  ¦ Работает, как параметр  Drop Down, но спи-¦
       ¦   (выпадающий     ¦ сок является статическим. Пользователь мо-¦
       ¦   список)         ¦ жет выделять элементы списка,  но не может¦
       ¦                   ¦ их изменять.                              ¦
       ¦                   ¦                                           ¦
       L-------------------+--------------------------------------------


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

                            Параметры отображения           Таблица 4.23
       ------------------T---------------------------------------------¬
       ¦  Параметр       ¦ Описание                                    ¦
       +-----------------+---------------------------------------------+
       ¦  No             ¦ Выводом списка управляет элемент  списка (по¦
       ¦  (отсутствует)  ¦ умолчанию).                                 ¦
       +-----------------+---------------------------------------------+
       ¦  Fixed          ¦ Прикладная программа отображает блок  списка¦
       ¦  (фиксированный)¦ в ответ на сообщение WM_DRAWITEM. Прикладная¦
       ¦                 ¦ программа может также отвечать  на сообщения¦
       ¦                 ¦ WM_DELETEITEM,        WM_COMPAREITEM       и¦
       ¦                 ¦ WM_MEASUREITEM.                             ¦
       ¦                 ¦                                             ¦
       ¦                 ¦ Блок списка  посылает  прикладной  программе¦
       ¦                 ¦ сообщение WM_MEASUREITEM только при первона-¦
       ¦                 ¦ чальном выводе блока  списка.  Размер  блока¦
       ¦                 ¦ списка фиксируется.                         ¦
       +-----------------+---------------------------------------------+
       ¦  Variable       ¦ Прикладная программа отображает блок  списка¦
       ¦  (переменный)   ¦ в ответ на сообщение WM_DRAWITEM. Прикладная¦
       ¦                 ¦ программа может также отвечать  на сообщения¦
       ¦                 ¦ WM_DELETEITEM,        WM_COMPAREITEM       и¦
       ¦                 ¦ WM_MEASUREITEM.                             ¦
       ¦                 ¦                                             ¦
       ¦                 ¦ Блок списка  посылает  прикладной  программе¦
       ¦                 ¦ сообщение WM_MEASUREITEM для каждого элемен-¦
       ¦                 ¦ та блока списка. Таким образом, размер блока¦
       ¦                 ¦ списка может изменяться.                    ¦
       +-----------------+---------------------------------------------+
       ¦  Has Strings    ¦ Если   вы   выбрали   параметры   Fixed  или¦
       ¦  (со строками)  ¦ Variable, блок списка  сохраняет  текст  для¦
       ¦                 ¦ каждого элемента   списка    с    сообщением¦
       ¦                 ¦ LB_SETTEXT.  Блок  списка может также извле-¦
       ¦                 ¦ кать элементы списка из LB_GETTEXT.         ¦
       L-----------------+----------------------------------------------


            Диалоговое окно  Combo Box Style включает в себя общие пара-
       метры и управляющие атрибуты,  описанные в  таблицах,  начиная  с
       Таблицы 4.4,  а  также  параметры,  специфические для управляющих
       элементов комбинированного блока.

                         Атрибуты комбинированного блока    Таблица 4.24
       -----------------------T----------------------------------------¬
       ¦   Параметр           ¦ Описание                               ¦
       +----------------------+----------------------------------------+
       ¦   Vertical Scroll    ¦ Помещает в блок списка полосу  прокрут-¦
       ¦   (вертикальная      ¦ ки.                                    ¦
       ¦   прокрутка)         ¦                                        ¦
       +----------------------+----------------------------------------+
       ¦   Sorted             ¦ Автоматически сортирует блок  списка  в¦
       ¦   (отсортированный)  ¦ алфавитном порядке.                    ¦
       +----------------------+----------------------------------------+
       ¦   Integral Height    ¦ Определяет размер блока списка на этапе¦
       ¦   (полная высота)    ¦ выполнения, благодаря чему в  нем  пол-¦
       ¦                      ¦ ностью выводятся  все  элементы  списка¦
       ¦                      ¦ (по умолчанию).  Если вам  нужно  точно¦
       ¦                      ¦ управлять высотой блока списка, отмени-¦
       ¦                      ¦ те данный параметр.                    ¦
       +----------------------+----------------------------------------+
       ¦   OEM Conversion     ¦ Преобразует текст, который пользователь¦
       ¦   (преобразование    ¦ набирает в блоке, в текущий набор  сим-¦
       ¦   в OEM)             ¦ волов   OEM,  затем  вновь  преобразует¦
       ¦                      ¦ текст в  ANSI. Данный  параметр полезно¦
       ¦                      ¦ использовать в блоках ввода, так как он¦
       ¦                      ¦ обеспечивает,  что  любое введенное имя¦
       ¦                      ¦ файла будет преобразовываться  в  набор¦
       ¦                      ¦ символов  OEM,  который  используется в¦
       ¦                      ¦ файловой системе DOS.                  ¦
       +----------------------+----------------------------------------+
       ¦   AutoHorizontаl     ¦ Автоматически прокручивает текст влево,¦
       ¦   (автоматический    ¦ когда его размер превышает  ширину  уп-¦
       ¦   горизонтальный)    ¦ равляющего элемента.                   ¦
       L----------------------+-----------------------------------------


                   Специализированные управляющие элементы
       -----------------------------------------------------------------

            Если вы хотите использовать управляющий элемент,  который не
       относится ни к одному из предопределенных типов Windows 3.0, мож-
       но воспользоваться специализированным управляющим элементом. Пре-
       допределенные управляющие элементы,  описанные в данной главе вы-
       ше,  такие как полосы прокрутки, блоки списка и командные кнопки,
       называются стандартными управляющими элементами.  Они были разра-
       ботаны фирмой Microsoft и являются частью Windows.  Специализиро-
       ванные управляющие элементы, с другой стороны, относятся к любому
       другому оконному классу,  который вы захотите включить в диалого-
       вые окна.

            Существует два типа специализированных  управляющих  элемен-
       тов: те,  которые  можете установить вы,  и те,  которые являются
       специфическими для прикладной программы.  Устанавливаемые специа-
       лизированные  управляющие  элементы нужно реализовывать с помощью
       динамически компонуемой библиотеки.  Специализированные управляю-
       щие элементы, специфические для прикладной программы, реализуются
       самой прикладной программой.  Пакет разработчика ресурсов отобра-
       жает их как серые блоки или пустые рамки.

                           Создание пользовательских
                   специализированных управляющих элементов
       -----------------------------------------------------------------

            Если вы  хотите  создать свои собственные специализированные
       управляющие элементы,  вам понадобиться разработать их и записать
       в динамически  компонуемую  библиотеку  (файлы DLL).  Подробности
       создания пользовательских специализированных управляющих  элемен-
       тов можно найти в файле README на дистрибутивном диске.

         Установка библиотеки специализированных управляющих элементов
       -----------------------------------------------------------------

            Специализированные управляющие элементы записываются в файлы
       DLL. Если  вы хотите добавить в окно специализированные управляю-
       щие элементы,  вам понадобиться установить соответствующие  файлы
       DLL.  Тогда специализированный управляющий элемент в этой библио-
       теке DLL будет доступен, как любой другой стандартный управляющий
       элемент.

            Чтобы установить файл DLL, содержащий библиотеку специализи-
       рованных управляющих элементов, сделайте следующее:

            1. В редакторе  диалогов  выберите  команду  Options¦Install
               Control Library (Параметры¦Установка библиотеки управляю-
               щих элементов).  При этом выведется диалоговое  окно  New
               Control Library (Новая библиотека управляющих элементов).

            2. Задайте  файл  DLL специализированных управляющих элемен-
               тов.

            3. Выберите командную кнопку OK.

            Теперь управляющие элементы,  содержащиеся в файле DLL, дос-
       тупны для вас, и вы можете добавить элемент в диалоговое окно.

            Вывод на экран специализированных управляющих элементов
       -----------------------------------------------------------------

            Перед тем,  как вы добавите  специализированные  управляющие
       элементы в диалоговое окно,  нужно определить, как он будет выво-
       дится в редакторе диалогов.  Чтобы увидеть, будут ваши диалоговые
       блоки выводится  в  режиме  Draft  или  Normal,  выберите команду
       Options¦Preferences. Если выбран один из этих  параметров, иногда
       полезно отменить параметр "Draw Custom Controls as Frames" (Вывод
       специализированных управляющих элементов в виде рамок), благодаря
       чему специализированный управляющий элемент можно представлять не
       просто рамкой.
            Добавление специализированного управляющего элемента
       -----------------------------------------------------------------

            После установки  файла  DLL,  содержащего специализированные
       управляющие элементы,  вы сможете добавить в свое диалоговое окно
       любой из этих специализированных управляющих элементов.  Для это-
       го:

            1. Щелкните кнопкой "мыши" на специализированном управляющем
               элементе из палитры инструментальных средств или выберите
               команду Control¦Custom. При этом выводится диалоговое ок-
               но New Custom Control (Новый специализированный управляю-
               щий элемент).

       ----T-----------------------------------------------------------¬
       ¦ - ¦               New custom control                          ¦
       +---+-----------------------------------------------------------+
       ¦ -----------------------------------------------------------¬  ¦
       ¦ ¦         -----------------------------------------¬--¬    ¦  ¦
       ¦ ¦ Class   ¦                                        ¦¦v¦    ¦  ¦
       ¦ ¦         L-----------------------------------------L=-    ¦  ¦
       ¦ L-----------------------------------------------------------  ¦
       ¦ ------------------------------------------------------------  ¦
       ¦ ------------------------------------------------------------  ¦
       ¦ ------------------------------------------------------------  ¦
       ¦ ------------------------------------------------------------  ¦
       ¦ ------------------------------------------------------------  ¦
       ¦ ------------------------------------------------------------  ¦
       ¦ ------------------------------------------------------------  ¦
       ¦ ------------------------------------------------------------  ¦
       ¦ ------------------------------------------------------------  ¦
       +---------------------------------------------------------------+
       ¦   ------------¬         ------------¬       ------------¬     ¦
       ¦   ¦  _        ¦-        ¦           ¦-      ¦           ¦-    ¦
       ¦   ¦ V  OK     ¦-        ¦ X  Cancel ¦-      ¦ ?  Help   ¦-    ¦
       ¦   L-------------        L-------------      L-------------    ¦
       ¦     ------------          ------------        ------------    ¦
       ¦                                                               ¦
       L----------------------------------------------------------------

            Рис. 4.14 Диалоговое окно Form controls into an array

            New custom  control  -  новый специализированный управляющий
       элемент;  Class - класс; OK - выполнение; Cancel - отмена; Help -
       справка.

            2. Во всплывающем списке после Class выберите  специализиро-
               ванный  управляющий элемент,  который вы хотите использо-
               вать. Пакет разработчика ресурсов выводит в центре диало-
               гового  окна образец выделенного вами специализированного
               управляющего элемента.

            3. Когда  вы  выделите нужный специализированный управляющий
               элемент, выберите командную кнопку OK. Курсор "мыши" при-
               нимает форму, показывающую, что можно размещать специали-
               зированный управляющий элемент.

            4. Щелкните кнопкой "мыши" в том месте диалогового окна, где
               вы  хотите разместить специализированный управляющий эле-
               мент.
                          Проверка диалогового окна
       -----------------------------------------------------------------

                                   -----------¬
                                   ¦          ¦
                                   ¦  Test    ¦  Проверка
                                   ¦          ¦
                                   L-----------

            Проверку вашего  диалогового  окна облегчает редактор диало-
       гов, благодаря чему вы можете видеть все внесенные изменения. Вы-
       берите пиктограмму "Проверка" из палитры инструментальных средств
       или команду Options¦Test Dialog (Параметры¦Проверка диалога).

            После этого вы можете нажимать клавишу Tab и  клавиши  стре-
       лок, чтобы увидеть как можно перемещаться в диалоговом окне, либо
       набрать текст и посмотреть,  как будет прокручиваться текст в ре-
       дактируемом управляющем элементе. Посмотрите, расположены ли ваши
       управляющие элементы в нужном порядке.

            Когда вы проверяете диалоговое окно,  в строке  сообщения  в
       нижней части экрана выводится сообщение Test.

            Когда вы захотите выйти из режима проверки, выберите команду
       Options¦Test Dialog (Параметры¦Проверка диалога).


                         Сохранение диалогового окне
       -----------------------------------------------------------------

            В процессе работы полезно сохранять диалоговые окна,  не до-
       жидаясь, пока Пакет разработчика ресурсов выведет  вам  подсказку
       при закрытии  проекта.  Сохранить внесенные изменения вы можете с
       помощью двух основных параметров. Вы можете:

            - сохранить весь проект;
            - сохранить диалоговое окно в записи файла ресурсов (.DLG).


                             Сохранение проекта
       -----------------------------------------------------------------

            Чтобы сохранить  весь  проект,  выберите  команду  File¦Save
       Project (Файл¦Сохранение  проекта).  Пакет  разработчика ресурсов
       компилирует ресурсы, которые изменены со времени последней компи-
       ляции, и сохраняет их в файле проекта.  Он также обновляет диало-
       говое окно во внешнем файле записей диалогового ресурса.

                     Сохранение диалогового окна в файле
       -----------------------------------------------------------------

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

            Файл .rc содержит текст записей ресурса для
            одного или более диалоговых  окон, он может
            также  содержать  ссылки RCINCLUDE на файлы
            .DLG.

            -------------¬                      ---------------¬
            ¦ myproj.rc  ¦   -------------------+ first.dlg    ¦
            ¦ .......... ¦   ¦ Каждый файл .DLG ¦ ............ ¦
            ¦ .......... ¦   ¦ содержит исход-  ¦ ............ ¦
            ¦ ..........-+---- ные записи для   ¦ ............ ¦
            ¦ .......... ¦     одного или более ¦ ............ ¦
            ¦ ..........-+---¬ ресурсов.        ¦ ............ ¦
            ¦ .......... ¦   ¦                  ¦ ............ ¦
            L-----T-------   ¦                  L---------------
                  ¦          ¦                  ---------------¬
                  ¦          L------------------+ second.dlg   ¦
                  ¦                             ¦ ............ ¦
           -------+-------¬                     ¦ ............ ¦
           ¦ myproj.h     ¦                     ¦ ............ ¦
           ¦ ............ ¦                     ¦ ............ ¦
           ¦ ............ ¦                     ¦ ............ ¦
           ¦ ............ ¦                     L---------------
           ¦ ............ ¦  Для присваивания диалоговым окнам
           ¦ ............ ¦  имен вы можете  использовать  оп-
           ¦ ............ ¦  ределения #define файлов .H.
           ¦ ............ ¦
           L---------------

            Рис. 4.21 Файл .RC ссылается на файлы .DLG и .H

            Чтобы сохранить  диалоговые окна в файле диалога .DLG, нужно
       добавить файл диалога к проекту. После этого вы можете записывать
       диалоговые окна при их создании в данном файле диалога. Чтобы до-
       бавить файл диалога к файлу проекта и записать в  нем  новый  ре-
       сурс, нужно сделать следующее:

            1. Выберите  команду  File¦Add to Project (Файл¦Добавление к
               проекту).  Выводится диалоговое окно Add to Project  (До-
               бавление к проекту).

            2. В выпадающем блока списка File Type (Тип файла), выберите
               DLG Resource Script.

            3. Наберите в диалоговом окне File Name новое имя файла.

            4. Выберите командную кнопку OK. Выводится диалоговый блок с
               сообщением:  ">имя_файла<  does  not  exist.  Create it?"
               ("файл 'имя_файла' не существует, создать его?").

            5. Выберите Yes (Да).

            В окно проекта добавляется оператор rcinclude.  Если  вы  не
       видите его, выберите команду View¦By File (Просмотр¦По файлу).

       ----T-------------------------------------------------------T-T-¬
       ¦ - ¦               New custom control                      ¦v¦^¦
       +---+-------------------------------------------------------+-+-+
       ¦ myproj.rc                                                   ¦v¦
       ¦                                                             +-+
       ¦                                                             ¦-¦
       ¦      pascal unit ch5const.pas                               ¦-¦
       ¦      MENU MENU_1                                            ¦-¦
       ¦      ACCELERATORS: ACCELERATORS                             ¦-¦
       ¦      ICON:ICON_1--------------------------------------------¦-¦
       ¦      rcinclude mydlgs.dlg                                   ¦-¦
       ¦                                                             ¦-¦
       ¦                                                             ¦-¦
       ¦                                                             ¦-¦
       ¦                                                             ¦-¦
       ¦                                                             ¦-¦
       ¦                                                             ¦-¦
       ¦                                                             +-+
       ¦                                                             ¦v¦
       L-------------------------------------------------------------+--

            Рис. 4.22 Окно проекта с оператором rcinclude для файла .DLG

            Вы создали пустой диалоговый файл.  Теперь вы можете создать
       новое диалоговое окно и добавить его к файлу записей диалога.

            1. Выберите  команду Resource¦New (Ресурс¦Новый).  Выводится
               новое диалоговое окно.

            2. Выберите файл записей диалога, который вы только что соз-
               дали, в комбинированном блоке "Place resource in".

            3. В блоке списка Resource Type (Тип ресурса) дважды щелкни-
               те кнопкой "мыши" на элементе DIALOG или  выберите DIALOG
               и активизируйте командную кнопку OK.

            В редакторе диалогов вы увидите новое диалоговое окно, кото-
       рое вы можете настраивать с помощью управляющих  элементов. Когда
       вы выполните  настройку  диалогового  окна и выйдите из редактора
       диалогов, то увидите,  что запись DIALOG в окне проекта выровнена
       под оператором rcinclude для файла .DLG.
                        Просмотр двух диалоговых окон
       -----------------------------------------------------------------

            Пакет разработчика ресурсов  предоставляет  вам  возможность
       одновременно выводить  на экран два диалоговых окна для их однов-
       ременного просмотра или сравнения.

            Чтобы просматривать два диалоговых окна, сделайте следующее:

            1. В окне проекта щелкните кнопкой "мыши" на одном из диало-
               говых  окон,  которое вы хотите просмотреть.  Запускается
               редактор диалогов,  который выводит данное диалоговое ок-
               но.

            2. Щелкните   кнопкой  "мыши"  на  палитре  инструментальных
               средств или выберите команду Options¦Test  Dialog  (Пара-
               метры¦Проверка диалога).

            3. Щелкните кнопкой "мыши" в редакторе диалога на кнопке ми-
               нимизации. Редактор диалогов не будет сжиматься в пиктог-
               рамму,  как можно было бы ожидать. Вместо этого ваше диа-
               логовое  окно  станет  плавающим  безрежимным  диалоговым
               окном, которое вы можете перемещать по своему усмотрению.

            4. Вернитесь  в  окно  проекта  и щелкните кнопкой "мыши" на
               втором диалоговом окне,  которое вы хотите редактировать.
               Запускается второй диалоговый редактор.

            5. Снова  щелкните  кнопкой "мыши" на пиктограмме "Проверка"
               палитры инструментальных  средств  или  выберите  команду
               Options¦Test Dialog во втором диалоговом редакторе.

            6. Щелкните кнопкой "мыши" на кнопке минимизации второго ди-
               алогового окна.

            Теперь у вас есть два диалоговых  окна,  которые  вы  можете
       разместить рядом.


                       Настройка диалогового редактора
       -----------------------------------------------------------------

            Пакет разработчика ресурсов позволяет вам изменять некоторые
       характеристики работы редактора диалогов.  Для вывода диалогового
       окна   Preferences   (Параметры)   выберите   команду    Options¦
       Preferences.

       ----T-----------------------------------------------------------¬
       ¦ - ¦                      Preferences                          ¦
       +---+-----------------------------------------------------------+
       ¦ Status line units    Selection border    Drawing type         ¦
       ¦ -------------------¬-------------------¬-------------------¬  ¦
       ¦ ¦ >* Dialog        ¦¦ >* Thick frame   ¦¦ <  Draft         ¦  ¦
       ¦ ¦                  ¦¦                  ¦¦                  ¦  ¦
       ¦ ¦ <  Screen        ¦¦ <  Handles       ¦¦ <  Normal        ¦  ¦
       ¦ ¦                  ¦¦                  ¦¦                  ¦  ¦
       ¦ ¦                  ¦¦                  ¦¦ >* WYSIWYG       ¦  ¦
       ¦ L-------------------L-------------------L-------------------  ¦
       ¦                                                               ¦
       ¦  Selection Options                                            ¦
       ¦-----------------------------------------------------------¬   ¦
       ¦¦ --¬                                                      ¦   ¦
       ¦¦ ¦ ¦   Select near border                                 ¦   ¦
       ¦¦ L--                                                      ¦   ¦
       ¦¦ --¬                                                      ¦   ¦
       ¦¦ ¦ ¦   Selection rectange surrounds                       ¦   ¦
       ¦¦ L--                                                      ¦   ¦
       ¦L-----------------------------------------------------------   ¦
       ¦-----------------------------------------------------------¬   ¦
       ¦¦ --¬                                                      ¦   ¦
       ¦¦ ¦V¦   Generate CONTROL statement only                    ¦   ¦
       ¦¦ L--                                                      ¦   ¦
       ¦¦ --¬                                                      ¦   ¦
       ¦¦ ¦ ¦   Draw custom controls as frames                     ¦   ¦
       ¦¦ L--                                                      ¦   ¦
       ¦L-----------------------------------------------------------   ¦
       +---------------------------------------------------------------+
       ¦   ------------¬         ------------¬       ------------¬     ¦
       ¦   ¦  _        ¦-        ¦           ¦-      ¦           ¦-    ¦
       ¦   ¦ V  OK     ¦-        ¦ X  Cancel ¦-      ¦ ?  Help   ¦-    ¦
       ¦   L-------------        L-------------      L-------------    ¦
       ¦     ------------          ------------        ------------    ¦
       ¦                                                               ¦
       L----------------------------------------------------------------

            Рис. 4.23 Диалоговое окно Preferences

            Preferences - параметры;  Status line units - единицы строки
       состояния; Selection border - рамка выбора;  Drawing type  -  тип
       отображения; Dialog - диалог; Thick frame - жирная рамка; Draft -
       схемам;  Screen - экран; Handles - описатели; Normal - нормальный
       Selection  Options  -  параметры  выделения;  Select near border;
       Selection rectange surrounds - прямоугольники выделения; Generate
       CONTROL  statement  only  - генерировать только оператор CONTROL;
       Draw custom controls as frames - в качестве рамок выводить специ-
       ализированные управляющие элементы; OK - выполнение; Cancel - от-
       мена; Help - справка

                      Параметры Status line units           Таблица 4.25
       ---------------------T------------------------------------------¬
       ¦   Единица          ¦ Описание                                 ¦
       +--------------------+------------------------------------------+
       ¦   Dialog           ¦ В качестве единицы измерения строки  сос-¦
       ¦   (диалог)         ¦ тояния используется  единица  диалога.  В¦
       ¦                    ¦ единице диалога y = 1/8 высоты  шрифта, x¦
       ¦                    ¦ = 1/4 ширины шрифта.                     ¦
       ¦                    ¦                                          ¦
       +--------------------+------------------------------------------+
       ¦   Screen           ¦ В качестве единицы измерения строки  сос-¦
       ¦   (экран)          ¦ тояния используется элемент изображения. ¦
       ¦                    ¦                                          ¦
       L--------------------+-------------------------------------------

            Параметр Selection Border (Рамка выбора) позволяет вам изме-
       нить внешний вид рамки, которая окружает выделенные вами управля-
       ющие элементы.

                          Параметры Selection Border        Таблица 4.26
       --------------------T-------------------------------------------¬
       ¦   Параметр        ¦ Описание                                  ¦
       +-------------------+-------------------------------------------+
       ¦   Thick frame     ¦ Рамка выбора выводится в виде жирной  рам-¦
       ¦   (жирная рамка)  ¦ ки вокруг выделенных  управляющих  элемен-¦
       ¦                   ¦ тов (по умолчанию).                       ¦
       ¦                   ¦                                           ¦
       +-------------------+-------------------------------------------+
       ¦   Handles         ¦ Рамки выбора выводятся в виде рамки вокруг¦
       ¦   (описатели)     ¦ выделенных управляющих элементов с  описа-¦
       ¦                   ¦ телями.                                   ¦
       ¦                   ¦                                           ¦
       L-------------------+--------------------------------------------

            На языке записей ресурсов каждый тип  управляющего  элемента
       имеет уникальный синтаксис. Например, сцентрированный статический
       текст использует оператор CTEXT. В операторе CONTROL, однако, мо-
       жет задаваться любой тип диалогового окна.  Если вы хотите, чтобы
       Пакет разработчика ресурсов генерировал только  операторы CONTROL
       в записях ресурсов вместо специализированных диалоговых управляю-
       щих элементов,  выберите параметр Generate CONTROL statement only
       (Генерировать только оператор CONTROL).


            Параметр Drawing Type (Тип отображения) определяет, как эле-
       менты диалогового окна выводятся в диалоговом редакторе.

                            Параметры Drawing Type          Таблица 4.27
       ----------------------T-----------------------------------------¬
       ¦   Параметр          ¦ Описание                                ¦
       +---------------------+-----------------------------------------+
       ¦   Draft             ¦ Отображает управляющие  элементы в  виде¦
       ¦   (схема)           ¦ прямоугольников с  порядковым  номером в¦
       ¦                     ¦ центре. Использование данного типа отоб-¦
       ¦                     ¦ ражения  представляет собой увидеть точ-¦
       ¦                     ¦ ные размеры управляющих элементов.      ¦
       ¦                     ¦                                         ¦
       +---------------------+-----------------------------------------+
       ¦   Normal            ¦ Моделирует отображение управляющего эле-¦
       ¦   (нормальный)      ¦ мента. Это  параметр  наиболее  быстрого¦
       ¦                     ¦ отображения, но  специализированные  уп-¦
       ¦                     ¦ равляющие элементы  выводятся  только  в¦
       ¦                     ¦ виде серых блоков.                      ¦
       ¦                     ¦                                         ¦
       +---------------------+-----------------------------------------+
       ¦   WYSIWYG           ¦ Когда выбран данный параметр, Пакет раз-¦
       ¦                     ¦ работчика  ресурсов  создает  диалоговые¦
       ¦                     ¦ окна, а управляющие дочерние окна и  уп-¦
       ¦                     ¦ равляющие элементы отображают себя сами.¦
       ¦                     ¦ Данный параметр  работает  медленно,  но¦
       ¦                     ¦ более точно. Устанавливаемые специализи-¦
       ¦                     ¦ рованные управляющие элементы  отобража-¦
       ¦                     ¦ ются сами. Этот параметр используется по¦
       ¦                     ¦ умолчанию.                              ¦
       ¦                     ¦                                         ¦
       L---------------------+------------------------------------------

            Параметры Selection  (Выбор)  определяют,  как  ведут   себя
       средства выделения,  когда  вы выбираете управляющие элементы для
       настройки.


                              Параметры Selection           Таблица 4.28
       -----------------------T----------------------------------------¬
       ¦   Параметр           ¦ Описание                               ¦
       +----------------------+----------------------------------------+
       ¦   Select Near Border ¦ Когда установлен данный  параметр,  для¦
       ¦   (выделение в       ¦ выбора управляющего  элемента вы должны¦
       ¦   ближней границе)   ¦ щелкать кнопкой "мыши" очень  близко  к¦
       ¦                      ¦ рамке. Если  данный параметр не выбран,¦
       ¦                      ¦ то щелчок кнопкой "мыши" в окрестностях¦
       ¦                      ¦ управляющего  элемента  приведет  к его¦
       ¦                      ¦ выбору.  При работе с управляющими эле-¦
       ¦                      ¦ ментами, выбираемыми на ближнем рассто-¦
       ¦                      ¦ янии, иногда желательно включить данный¦
       ¦                      ¦ параметр, что обеспечивает более точное¦
       ¦                      ¦ управление и позволяет избежать непред-¦
       ¦                      ¦ намеренного выбора.                    ¦
       ¦                      ¦                                        ¦
       +----------------------+----------------------------------------+
       ¦   Selection rectangle¦ Когда  установлен данный  параметр,  вы¦
       ¦   (выделение в       ¦ должны  полностью заключить  выделяемый¦
       ¦   прямоугольнике)    ¦ элемент в  рамку  выбора.  Если  данный¦
       ¦                      ¦ параметр не установлен, и прямоугольник¦
       ¦                      ¦ выбора  окружает только часть управляю-¦
       ¦                      ¦ щего элемента,  то он выбран не  будет.¦
       ¦                      ¦ При  работе  с управляющими элементами,¦
       ¦                      ¦ выбираемыми  на   ближнем   расстоянии,¦
       ¦                      ¦ иногда желательно включить данный пара-¦
       ¦                      ¦ метр, что обеспечивает более точное уп-¦
       ¦                      ¦ равление и позволяет избежать непредна-¦
       ¦                      ¦ меренного выбора.                      ¦
       ¦                      ¦                                        ¦
       L----------------------+-----------------------------------------


                               Пример проекта
       -----------------------------------------------------------------

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

            1. Выберите команду File¦Open Project (Файл¦Открытие  проек-
               та).

            2. Используйте  диалоговое  окно Open File (Открытие файла),
               чтобы найти и открыть файл RWPDEMO.RC, поставляемый с Па-
               кетом разработчика ресурсов.

               В блоке  File  Type  (Тип  файла)  выберите  RC  Resource
               Script,  затем используйте блоки списка Files  (Файлы)  и
               Directories (Каталоги), чтобы найти файл RWPDEMO.RC. Либо
               вы можете ввести полное имя файла в поле ввода  File Name
               (Имя файла).

               После открытия файла RWPDEMO.RC увидите окно проекта.

       ----T-------------------------------------------------------T-T-¬
       ¦ - ¦                rwpdemo.rc                             ¦v¦^¦
       +---+-------------------------------------------------------+-+-+
       ¦-BITMAP------------------------------------------------------¦v¦
       ¦    BITMAP_1                                                 +-+
       ¦    bmp_StatusLine                                           ¦-¦
       ¦ MENU                                                        ¦-¦
       ¦    men_Main                                                 ¦-¦
       ¦ DIALOG                                                      ¦-¦
       ¦    DIALOG_5                                                 ¦-¦
       ¦    dlg_Open                                                 ¦-¦
       ¦    dlg_SaveAs                                               ¦-¦
       ¦                                                             +-+
       ¦                                                             ¦v¦
       L-------------------------------------------------------------+--

            Рис. 4.24 Окно проекта для файла RWPDEMO


            3. В окне проекта дважды щелкните кнопкой "мыши"в записи dgl
               _Open.

               Теперь увидите редактор диалогов с определенным в нем ди-
               алоговым окном Open (Открытие).

       ----T------------------------------------------------------T-T--¬
       ¦ - ¦-----------------Resource Workshop - rwpdemo.rc-------¦v¦v ¦
       +---+------------------------------------------------------+-+T-+
       ¦=  File Edit Resource Control Options Window Help         ¦  ¦ ¦
       +---T---------------------------------------------------T--+--+ ¦
       ¦ - ¦-------------------DIALOG: dgl_Open----------------¦ v¦v ¦ ¦
       +---+---------------------------------------------------+--+T-+-+
       ¦--T--------------------------------------¬ --T-----------¬ ¦^¦^¦
       ¦¦=¦             Open                     ¦ ¦=¦ Caption   ¦ +-+-+
       ¦+-+--------------------------------------+ +-+-----------+ ¦-¦-¦
       ¦¦            -----------------------¬---¬¦ +-T-----T-----+ ¦-¦-¦
       ¦¦ File name: ¦                      ¦¦^v¦¦ ¦=¦Align¦Tools¦ ¦-¦-¦
       ¦¦            L-----------------------L---¦ +-+-T-T-+-T-T-+ ¦-¦-¦
       ¦¦ Path:                                  ¦ ¦>¦<¦>¦<¦^¦С¦О¦ ¦-¦-¦
       ¦¦  Files              Directories        ¦ +-+-+-+-+-+-+-+ ¦-¦-¦
       ¦¦-----------------¬ -----------------¬   ¦ ¦v¦^¦v¦^¦+¦¦¦-¦ ¦-¦-¦
       ¦¦¦                ¦ ¦                ¦   ¦ L-+-+-+-+-+-+-+ ¦-¦-¦
       ¦¦¦                ¦ ¦                ¦   ¦         ¦G¦"¦x¦ ¦-¦-¦
       ¦¦¦                ¦ ¦                ¦   ¦         +-+-+-+ ¦-¦-¦
       ¦¦¦                ¦ ¦                ¦   ¦         ¦1¦-¦¬¦ ¦-+-+
       ¦¦L----------------- L-----------------   ¦         +-+-+-+ ¦-¦v¦
       ¦¦-Options---------------------------¬    ¦         ¦T¦Г¦U¦ ¦-+-+
       ¦¦¦                                  ¦    ¦         +-+-+-+ ¦-¦ ¦
       ¦¦¦ O Text      O Scribble  O Graph  ¦    ¦         ¦ш¦:¦ ¦ ¦-¦ ¦
       ¦¦L-----------------------------------    ¦         +-+-+-+ ¦-¦ ¦
       ¦¦                                        ¦         ¦u¦ ¦ф¦ ¦-¦ ¦
       ¦¦ ---OK---   ---Cancel----  ----Help---- ¦         L-+-+-- +-+ ¦
       ¦L-----------------------------------------                 ¦v¦ ¦
       +-T-------------------------------------------------------T-+-+ ¦
       ¦>¦-------------------------------------------------------¦<¦ ¦ ¦
       +-+-----------------------T-------------------------------+-+-+ ¦
       ¦ Ready                   ¦ Modify                            ¦ ¦
       L-------------------------+-----------------------------------+--

            Рис. 4.25 Пример диалогового окна Open

            File -  файл;  Edit  -  редактирование;  Resource  - ресурс;
       Control - управление;  Options - параметры;  Window - окно Help -
       справка; Open - открытие; Caption - заголовок; Alignment - вырав-
       нивание; Tools - инструментальные средства;  File name - имя фай-
       ла; Path  -  маршрут;  Files  -  файлы;  Directories  - каталоги;
       Options - параметры; Text - текст; Ready - готово; Modify - моди-
       фикация.

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

            4. Дважды щелкните кнопкой "мыши" в центре блока  списка под
               Files.

               Вы увидите диалоговое окно List Box Style (Тип окна спис-
               ка),  где вы можете задать более подробную информацию  об
               управляющих элементах,  являющихся блоками списка.  Заме-
               тим, что для данного блока списка выбрана полоса прокрут-
               ки.

               В общем  случае если вы хотите задать подробные параметры
               типа,  то можете дважды щелкнуть кнопкой "мыши" на  любом
               управляющем элементе диалогового окна. Если предпочитаете
               использовать клавиатуру,  то для выбора управляющего эле-
               мента используйте клавишу Tab,  затем нажмите Enter, либо
               воспользуйтесь  для  выбора  диалогового  окна   командой
               Control¦Style (Управляющий элемент¦Тип).

            5. Для закрытия диалогового окна List Box Style выберите ко-
               мандную кнопку Cancel.

            6. Если хотите,  можете немного поэкспериментировать. Дважды
               щелкните кнопкой "мыши" на другом управляющем элементе, и
               вы увидите, как выглядят другие диалоговые окна Style.

            7. Чтобы вывести для диалогового  окна  окно  Style,  дважды
               щелкните  кнопкой "мыши" на внешнем крае или строке заго-
               ловка окна.  Либо вы можете использовать клавишу Tab, за-
               тем нажать клавишу Enter, или выбрать для вывода диалого-
               вого окна команду Control¦Style.

            8. Вы можете также проверить диалоговое окно,  чтобы  прове-
               рить,  как  оно будет работать во время выполнения.  Если
               открыто диалоговое окно Style, нужно сначала закрыть его.
               Щелкните кнопкой "мыши" на пиктограмме "Проверка" палитры
               инструментальных    средств    или    выберите    команду
               Options¦Test Dialog (Параметры¦Проверка диалога).

               Вы увидите проверочную версию диалогового окна.  Здесь вы
               можете поэкспериментировать, введя, например, текст в по-
               ле File Name, нажимая Tab, чтобы проверить перемещение по
               управляющим элементам,  и открыть меню  Control  в  левом
               верхнем углу.

               Чтобы выйти из режима проверки, нажмите клавишу Enter или
               Esc. Кроме того, из режима проверки вы можете выйти таким
               же образом, как пользователь выходит из диалогового окна:
               путем выбора командной кнопки OK или Cancel,  или  закрыв
               диалоговое окно с помощью управляющего меню Control и вы-
               бора команды Close (Закрытие).

               Чтобы выйти из проекта RWPDEMO.RC, выберите команду File¦
               Close All (Файл¦Закрыть все).
                      Создание нового диалогового окна
       -----------------------------------------------------------------

            Итак, вы увидели, как можно работать с существующим диалого-
       вым окном.  Теперь вы увидите, как можно создать новое диалоговое
       окно. Но перед этим нужно рассмотреть два вопроса:

            - В каком тип окна должно находиться диалоговое окно? Должно
              ли оно включать в себя заголовок в строке заголовка? Долж-
              но ли это быть всплывающее окно?  Нужно ли вам управляющее
              меню?

            - Какие типы управляющих элементом вам нужны?

              Для взаимноисключающего  выбора  вы  можете   использовать
              кнопки  с  зависимой фиксацией (селективные кнопки).  Если
              пользователю нужно выбрать файл,  имеет смысл  включить  в
              окно  и блок списка,  и редактируемый управляющий элемент.
              При этом пользователь сможет ввести имя файла  или выбрать
              его из списка.

            - Следует ли упорядочить элементы в диалоговом  окне,  после
              того как вы добавите в окно все нужные элементы? Смогут ли
              пользователи получить доступ ко всем управляющим элементам
              с помощью клавиши Tab?


            Предположим, вы  хотите  создать диалоговое окно,  в котором
       пользователи могут набирать текст и выбирать пару параметров фор-
       матирования. Это диалоговое окно выглядит следующим образом:

       ----T-----------------------------------------------------------¬
       ¦ - ¦         Insert text dialog box                            ¦
       +---+-----------------------------------------------------------+
       ¦                                                               ¦
       ¦            ----------------------------------¬                ¦
       ¦            ¦ Type your text here             ¦                ¦
       ¦            L----------------------------------                ¦
       ¦                                                               ¦
       ¦            ---Formatting choices-------------¬                ¦
       ¦            ¦ --¬                             ¦                ¦
       ¦            ¦ ¦ ¦   Bold                      ¦                ¦
       ¦            ¦ L--                             ¦                ¦
       ¦            ¦ --¬                             ¦                ¦
       ¦            ¦ ¦ ¦   Italic                    ¦                ¦
       ¦            ¦ L--                             ¦                ¦
       ¦            L----------------------------------                ¦
       ¦          ------------¬                 ------------¬          ¦
       ¦          ¦  _        ¦-                ¦           ¦-         ¦
       ¦          ¦ V  OK     ¦-                ¦ X  Cancel ¦-         ¦
       ¦          L-------------                L-------------         ¦
       ¦            ------------                  ------------         ¦
       ¦                                                               ¦
       L----------------------------------------------------------------

            Insert text  dialog  box - диалоговое окно включения текста;
       Type your text here - введите здесь текст;  Formatting choices  -
       параметры форматирования; Bold - жирный; Italic - наклонный; OK -
       выбор; Cancel - отмена.

            Рассмотрим теперь различные части данного диалогового окна:

            - В строке заголовка диалогового окна выводится  идентифици-
              рующий его заголовок: Insert Text Dialog Box.

            - В редактируемом управляющем элементе сообщается: Type your
              text here (введите здесь текст). Пользователь может ввести
              здесь текст.

              Групповой блок представляет собой рамку, которая объединя-
              ет вместе группы кнопок.  Пользователь может  выбрать  две
              кнопки  с  независимой  фиксацией (два параметра) - Bold и
              Italic.  Пользователь  может  выбирать  данные  параметры,
              включая или выключая их.

            - Командные кнопки OK и Cancel дают возможность оперативного
              управления. Кнопка OK выбирается по умолчанию (она выбира-
              ется, когда пользователь нажимает клавишу Enter.
            Если бы вы сами написали записи ресурса для данного диалого-
       вого окна, то этот код выглядел бы следующим образом (числа в ис-
       ходном коде могут изменяться в зависимости от размера и места вы-
       вода диалогового окна и управляющих элементов):

            MY_DB DIALOG 18, 18, 115, 118
            CAPTION "Insert Text Dialog Box"
            STYLE DS_MODALFRAME¦WS_POPUP¦WS_CAPTION¦WS_SYSMENU
            BEGIN
              CONTROL "Type your text here", 102, "EDIT",
                ES_LEFT¦WS_BORDER¦WS_TABSTOP, 16, 17, 75, 12
              CONTROL "Bold", 2, "BUTTON"
                BS_CHECKBOX¦ES_TABSTOP, 30, 50, 28, 12
              CONTROL "Italic", 2, "BUTTON"
                BS_CHECKBOX¦ES_TABSTOP, 30, 65, 28, 12
              CONTROL "Formatting choices", 4,
                "BUTON", BS_GROUPBOX, 15, 35, 75, 50
              CONTROL "OK", 106 "BUTTON", BS_DEFPUSHBUTTON¦WS_TABSTOP,
                156, 95, 30, 14
              CONTROL "OK", 107 "BUTTON", BS_DEFPUSHBUTTON¦WS_TABSTOP,
                60, 95, 30, 14
            END

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



                          Запуск редактора диалогов
       -----------------------------------------------------------------

            Во-первых, откройте новый проект и запустите редактор диало-
       гов (если вам потребуется более подробная информация о  работе  с
       проектом, см. Главу 3).

            1. Выберите команду File¦New Project (Файл¦Новый проект).

            2. В диалоговом окне New Project (Новый проект) выберите .RC
               и OK.

            3. Выберите команду Resource¦New (Ресурс¦Новый).

            4. В блоке списка Resource Type (Тип ресурса) дважды щелкни-
               те кнопкой "мыши" на элементе DIALOG или выберите DIALOG,
               затем выберите командную кнопку OK.

                         Настройка диалогового окна
       -----------------------------------------------------------------

            Теперь вы находитесь в диалоговом редакторе. Диалоговое окно
       можно настроить следующим образом:

            1. Выберите пустое диалоговое окно, щелкнув кнопкой "мыши" в
               строке заголовка. Вокруг окна появится рамка выбора.

            2. Наберите Insert Text Dialog Box в качестве заголовка диа-
               логового окна. Нажмите клавишу Enter.


                 Добавление текстового управляющего элемента
       -----------------------------------------------------------------

                             ---------¬  Редакти-
                             ¦  -¬--  ¦  руемый
                             ¦   ¦¦   ¦  управляющий
                             ¦  --L-  ¦  элемент
                             L---------

            Далее добавьте редактируемый текстовый управляющий элемент:

            1. В палитре инструментальных средств  выберите  пиктограмму
               "Редактирование  текста",  щелкнув на ней кнопкой "мыши".
               Переместитесь в диалоговое окно и добавьте текстовый  ре-
               дактируемый  управляющий  элемент,  щелкнув  в окне левой
               кнопкой "мыши" в том месте, куда вы хотите поместить этот
               управляющий элемент.

               Когда вы добавляете новый управляющий элемент, вокруг не-
               го появляется рамка изменения размера.  Это означает, что
               он выбран. Чтобы увеличить управляющий элемент, выполните
               с помощью "мыши" буксировку его края или угла.  Если бук-
               сировать  управляющий элемент,  зацепив его за внутреннюю
               область, то он будет перемещаться.

            2. При редактировании нового управляющего  элемента наберите
               Type your text here и нажмите клавишу Enter.

                  Добавление кнопок с независимой фиксацией
       -----------------------------------------------------------------

            Теперь добавьте два элемента проверки и заключите их в рамку
       группы. Для этого выберите пиктограмму "Кнопка с независимой фикса-
       цией" (блок проверки) - третий элемент в правом  столбце  палитры
       инструментальных средств.

                                ---------¬
                                ¦ ------¬¦ Кнопка с
                                ¦ ¦  X  ¦¦ независимой фиксацией
                                ¦ L------¦
                                L---------

            1. С помощью левой кнопки "мыши" выберите пиктограмму "Кноп-
               ка с независимой фиксацией" из  палитры  инструментальных
               средств, щелкнув на ней кнопкой, затем переместите указа-
               тель "мыши" в то место диалогового окна,  куда вы  хотите
               поместить кнопку с независимой фиксацией, и снова щелкни-
               те кнопкой "мыши".  С помощью правой кнопки "мыши" вы мо-
               жете  разместить  дополнительные копии уже выбранного уп-
               равляющего элемента.  Поэтому  переместите  курсор  в  то
               место,  куда  вы хотите поместить второй управляющий эле-
               мент, и снова нажмите правую кнопку "мыши".

            2. Добавьте заголовки Bold и Italic, которые выводятся в уп-
               равляющих элементах, выделив каждый управляющий элемент и
               набрав текст заголовка.

                                            ---------¬
                                            ¦ ------¬¦
                                  Групповой ¦ ¦:::::¦¦
                                  блок      ¦ L------¦
                                            L---------

            3. Пиктограмма "Групповой блок" находится  в  центре  левого
               столбца палитры инструментальных средств, непосредственно
               над пиктограммой "Редактируемый текст".  Добавьте  данный
               управляющий  элемент  в диалоговое окно.  Переместите его
               или измените размер, чтобы групповой блок заключал в себя
               кнопки с независимой фиксацией.

            4. Когда  будет  выбран групповой блок,  наберите Formatting
               choices и нажмите клавишу Enter.

            5. Если это требуется, вернитесь назад и измените размер уп-
               равляющих  элементов  или  упорядочите их так,  чтобы все
               выглядело так как нужно.

                         Добавление командных кнопок
       -----------------------------------------------------------------

            Теперь можно  добавить в диалоговое окно две командных кноп-
       ки: OK (Выполнить) и Cancel (Отменить).

            1. Если в диалоговом окне у вас не хватает  места  для  этих
               кнопок,  увеличьте его размер. Щелкните кнопкой "мыши" на
               заголовке диалогового окна.  Выполните буксировку  нижней
               границы  диалогового  окна,  пока  его размер не окажется
               удовлетворительным.

            2. В палитре инструментальных средств  выберите  пиктограмму
               "Командная кнопка".

            3. Щелкните кнопкой "мыши" в том месте диалогового окна, где
               вы хотите разместить командную кнопку.

            4. Переместитесь туда,  где вы хотите разместить вторую  ко-
               мандную кнопку,  и щелкните правой кнопкой "мыши".  Выво-
               дится копия командной кнопки"

            5. Выделите первую командную кнопку и наберите OK.

            6. Дважды щелкните кнопкой "мыши" на  командной  кнопке  OK.
               Выводится  диалоговое  окно  Button  Style (Тип командной
               кнопки).

            7. Выберите тип Default Push Button (Командная кнопка, испо-
               льзуемая по умолчанию) и кнопку OK.

            8. Выберите вторую командную кнопку и наберите Enter.

            9. Если  вам не понравится,  как выглядят диалоговые кнопки,
               переместите их или  измените  размер  данных  управляющих
               элементов.


                          Проверка диалогового окна
       -----------------------------------------------------------------

                                   -----------¬
                                   ¦          ¦
                                   ¦  Test    ¦  Проверка
                                   ¦          ¦
                                   L-----------

            Теперь вы можете проверить диалоговое окно и посмотреть, как
       оно работает.

            1. Щелкните кнопкой "мыши" на пиктограмме "Проверка".

               Наберите новый текст в редактируемом управляющем элементе
               и поэкспериментируйте с клавишей Tab, чтобы проверить пе-
               ремещение по элементам диалогового окна.

            2. Когда вы все сделаете, для выхода из режима проверки наж-
               мите клавишу Enter.  Теперь вы можете выполнять все необ-
               ходимые изменения.

                             Сохранение проекта
       -----------------------------------------------------------------

            Когда вы завершите  работу  с  диалоговым  окном,  сохраните
       проект под именем MYPROJ.RC:

            1. Выберите команду File¦Save File As (Файл¦Сохранение файла
               под именем).

            2. В диалоговом окне File Name (Имя файла) наберите MYPROJ.

            3. Выберите командную кнопку OK.




[ Назад ] [ Оглавление ] [ Далее ]

Оставить комментарий

Комментарий:
можно использовать BB-коды
Максимальная длина комментария - 4000 символов.
 
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог