ЭЛЕКТРОННАЯ БИБЛИОТЕКА КОАПП |
Сборники Художественной, Технической, Справочной, Английской, Нормативной, Исторической, и др. литературы. |
Часть 16 Использование диалогового окна ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД В диалоговом окне для позиционирования на том поле, которое вы хотите редактировать, используйте "мышь" или клавиши Tab, Shift+Tab. Ввод текста Поле Item text (текст элемента) определяет текст, который выводится в меню. Если вы хотите, чтобы пользователь мог выбирать команду ме- ню, набирая одну из букв команды, поместите непосредственно перед этой буквой символ &. Windows будет выводить данную команду с подчеркнутой буквой. Если вы собираетесь связать с данной командой оперативную клавишу (акселератор), то можете включить в меню текст акселера- тора. Например, если ваша прикладная команда включает акселератор Shift+Del, который дублирует команду Cut меню Edit, вы можете до- бавить после команды текст "Shift+Del". - Для отделения заголовка меню от текста акселератора ис- пользуйте символ табуляции (\t), например, &Cut\tShift+ Del. - Для выравнивания вправо текста акселератора (например, &Cut\aShift+Del) используйте символ выравнивания вправо (\a). Прикладной программы Windows для указания комбинации клавиш обычно используют символ +, например, Shift+Del или Strl+Shift+ F4. Ввод идентификатора элемента Все элементы меню должны иметь уникальный числовой идентифи- катор (Item ID). Пакет разработчика ресурсов создает уникальное используемое по умолчанию значение идентификатора для элементов меню. Вы можете ввести уникальное числовое значение или уникаль- ное имя. Если вы введете имя, Пакет разработчика ресурсов проверяет, не существует ли уже данное имя идентификатора. Если оно не су- ществует, вы увидите подсказку с запросом, хотите ли вы создать новое. Если вы выберите создание нового идентификатора, Пакет разработчика ресурсов выводит диалоговое окно, в котором выводит- ся текущее присвоенное идентификатору значение. Вы можете оста- вить это значение или ввести новое число и дать Пакету разработ- чика ресурсов возможность создать за вас идентификатор. Примечание: Подробнее об идентификаторах рассказывает- ся в Главе 3. Если вы связываете с данной командой оперативную клавишу (акселератор), то этот идентификатор нужно использовать в редак- торе акселератора. Иногда желательно также открыть редактор аксе- лератора, так что вы можете при создании элементов меню переклю- читься в данный редактор и ввести акселераторы. Другие параметры диалогового окна Большая часть параметров диалогового окна поясняется в Таблице 5.1. Остается только параметре Checked (Выбран), который применяется только к элементам меню и помещает метку выбора на том элементе, который включен или выключен. Метка выбора будет выводиться, если параметр Checked установлен. Поскольку команды строки меню и команды вывода всплывающих меню не переключаются, данный параметр используется только для элементов всплывающих меню. Например, в строке меню редактора меню команда View выводит всплывающее меню с двумя графическими символами, представляющими конфигурацию областей. Пиктограмма, представляющая текущую конфи- гурацию, выбрана, что означает, что она действует. Примечание: Меню View подробнее описывается выше. Настройка команд всплывающего меню ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД Команды вывода всплывающего меню выводят меню, которое дает возможность дополнительного выбора. В большинстве прикладных программ Windows все элементы в строке меню представляют собой команды вывода всплывающих меню. Чтобы настроить команду вывода всплывающего меню, нужно сна- чала создать новую команду или открыть существующую. Затем вы мо- жете настроить команду вывода всплывающего меню диалогового окна. Первым шагом при создании новой команды вывода всплывающего меню является определения места ее включения. Выбор места включения новой команды вывода всплывающего меню Команду вывода всплывающего меню вы можете включить в верх- ний уровень своего меню. При этом она выводится в строке меню. Вы можете также встроить команды вывода всплывающего меню в другие всплывающие меню (как показано в примере меню на Рис. 5.7). Widget - это команда вывода всплывающего меню верхнего уровня, поэтому она выводится в строке меню. Всплывающее меню Widget включает в себя команды меню, а также встроенную команды вывода всплывающего меню Arrange List. Будет ли команда вывода всплывающего меню выводиться в стро- ке меню, или встраиваться в другое всплывающее меню, зависит от того, куда вы его включите. См. выше раздел "Выбор места включе- ния нового элемента меню". Добавление новой команды вывода всплывающего меню Для добавления новой команды вывода всплывающего меню нужно выполнить следующие основные шаги: 1. Подсветите соответствующую строку в области схемы меню. Новая команда вывода всплывающего меню будет включена после подсвеченной строки. 2. Нажмите клавиши Ctrl+P или выберите команду MenuіNew Pop- up (МенюіНовый элемент всплывающего меню). 3. Для дальнейшего определения команды вывода всплывающего меню используйте окно в левой части редактора меню (см. ниже раздел "Использование диалогового окна"). Выбор команды вывода всплывающего меню ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД 1. Переместите на команду вывода всплывающего меню подсветку с помощью "мыши", клавиш Ctrl+стрелка вверх или Ctrl+стрелка вниз, или клавиш стрелок (если вы находитесь в области схемы меню). 2. Редактируйте поля диалогового окна. Использование диалогового окна ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД В диалоговом окне для позиционирования на том поле, которое вы хотите редактировать, используйте "мышь" или клавиши Tab, Shift+Tab. Ввод текста Поле Item text (текст элемента) определяет текст, который выводится в меню. Если вы хотите, чтобы пользователь мог выбирать команду вы- вода всплывающего меню, набирая одну из букв команды, поместите непосредственно перед этой буквой символ &. Windows будет выво- дить данную команду с подчеркнутой буквой. В отличие от элементов меню, команды вывода всплывающих меню не имеют клавиш-акселераторов. Более вероятно связывание акселе- ратора с командой во всплывающем меню, чем с самой командой выво- да меню. Другие параметры диалогового окна Для команд вывода всплывающего меню устанавливать параметры Item ID и Item Type вам не потребуется, но вы можете установить параметр Break Before (Прерывание до) и параметры Initial State (Начальное состояние) - Enabled (Разрешен), Disabled (Запрещен) и Grayed (Серый), но не Cheched (Выбран), так как Checked применя- ется только к командам меню, а не к командам вывода всплывающего меню. Примечание: Большая часть параметров диалогового окна поясняется в Таблице 5.1. Определение разделителя меню ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД Разделитель меню (SEPARATOR) - это строка, которая разделяет различные группы выбора во всплывающем меню. Так как это единс- твенная строка в меню, вы не можете ее настроить, но можете ре- шить, где она должна выводиться и затем создать ее. Разделитель меню вы можете включать в любое место всплываю- щего меню. В общем случае вы можете использовать разделитель меню для определения в группы родственных выбираемых элементов. Описа- ние включения новых элементов меню можно найти выше в разделе "Выбор места включения нового элемента меню". Если вы решили, в каком месте требуется разделитель, сделай- те следующее: 1. Подсветите соответствующую строку в области схемы меню редактора меню. Новый разделитель включается после подс- веченной строки. 2. Нажмите клавиши Ctrl+S или выберите команду MenuіNew Separator (МенюіНовый разделитель). В левой части редактора меню никаких параметров устанавли- вать не нужно. Удаление оператора меню ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД Подсветите оператор, который вы хотите удалить, затем нажми- те клавишу Del или выберите команду EditіDelete (Редактирова- ниеіУдаление) для его удаления или EditіCut (УдалениеіВырезание) для удаления оператора и копирования его в буфер ("карман"). Операторы END POPUP удалять нельзя. Если вы хотите удалить команды вывода вплывающих меню и все элементы, содержащиеся во вплывающем меню, то удалите начальный оператор POPUP. Предположим, например, что вплывающее меню содержит четыре элемента: две команды меню, разделитель меню и команду вывода всплывающего меню. Вы можете удалить из вплывающего меню любой из этих трех элементов, но все четыре элемента без удаления всего всплывающего меню удалить нельзя. Всплывающее меню должно всегда содержать по крайней мере один элемент меню, другую команду выво- да всплывающего меню, или разделитель. Проверка меню ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД Редактор меню предоставляет вам непосредственную возможность проверки меню. Проверяемое меню обновляется при внесении в меню изменений, поэтому с помощью области проверки меню вы можете про- верять меню так часто, как это требуется. Например, если вы добавите новый элемент меню к всплывающему меню, чтобы увидеть, как выглядит новая команда, щелкните кнопкой "мыши" на новой команде в области проверки меню. Редактор меню имеет также встроенное средство отладки, кото- рое вы можете использовать для проверки дублирования идентифика- торов элементов меню. Если вы выберите команду MenuіCheck Duplicates (МенюіПроверка дублирования), редактор меню ищет дуб- лирующиеся идентификаторы, и, если он их находит, выводит сообще- ние "Duplicate command value found" ("Значение команды дублирует- ся"). Когда вы закрываете данное окно сообщения, редактор меню подсвечивает оператор, содержащий данное дублируемое значение. Ваши дальнейшие действия зависят от того, представляет ли собой идентификатор меню имя или просто числовое значение. Чтобы уви- деть, что это такое, взгляните на текстовое поле Item ID и облас- ти диалогового окна. - Если идентификатор меню представляет собой число, то вве- дите новое число, которое не противоречит другим идентифи- каторам меню. - Если идентификатор меню представляет собой имя, вам нужно вывести диалоговое окно идентификатора и изменить его зна- чение. Это делается следующим образом: 1. Для вывода диалогового окна Identifiers (Идентификато- ры) выберите команду ResourceіIdentifiers (МенюіИденти- фикаторы). 2. Прокрутите вниз список идентификаторов и найдите тот, который вам нужен. 3. Активизируйте кнопку Change (Изменение) и наберите но- вое значение, которое не противоречит другим идентифи- каторам меню. 4. Для изменения значения активизируйте кнопку OK или наж- мите клавишу Enter. 5. Щелкните кнопкой "мыши" в окне редактора меню, чтобы продолжить редактирование меню (окно идентификаторов можно оставить открытым для последующего использова- ния). Например, в приводимом ниже примере меню присваивание зна- чения 101 двум идентификаторам - wnmu_List и wmnu_Asc - приводит к тому, что MenuіCheck Duplicates выводит сообщение "Duplicate command value found" ("Значение команды дублируется"). Так как wmnu_Asc - это второй из двух идентификаторов в ме- ню, то редактор меню будет подсвечивать wmnu_Asc. Затем вы можете с помощью команды ResourceіIdentifiers (РесурсыіИдентификаторы) вывести диалоговое окно идентификаторов, подсветить wmnu_Asc и изменить его значение на значение, отличное от 101, 102, 104 (значения других идентификаторов меню). Сохранение изменений ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД В процессе работы лучше сохранять изменения, а не ждать, по- ка Пакет разработчика ресурсов выведет вам подсказку при закрытии проекта. При сохранении ресурса меню вы можете использовать две возможности: - сохранение всего проекта; - сохранение ресурса меню в виде файла. Сохранение проекта ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД Для сохранения всего проекта выберите команду FileіSave Project (ФайліСохранение проекта). Пакет разработчика ресурсов компилирует ресурсы, которые вы изменили со времени последней компиляции, а затем сохраняет их в файле проекта. Измененный ре- сурс, связанный с внешним файлом, обновляется во внешнем файле. Сохранение ресурса меню в виде файла ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД При сохранении всего проекта сохраняется также ресурс меню, к которым вы работаете. Однако, если вы хотите сохранить только ресурс меню, то для сохранения ресурса в виде файла можете выб- рать команду ResourceіSave Resource As (РесурсіСохранение ресур- са). Поскольку данный шаг несколько более сложен, чем просто сох- ранение проекта, маловероятно, что вы будете выполнять его в ситуациях, отличных от первоначального сохранения в отдельном файле. Чтобы сохранить ресурс в файле, сделайте следующее: 1. Выберите команду ResourceіSave Resource As. Пакет разра- ботчика ресурсов выводит диалоговое окно Save Resource As (Сохранение ресурса): ЪДДДВДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДї і - і Save resource as і ГДДДБДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДВДДДДДДДДДДДДДДДґ і ЪДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДї і і і і ЪДДДДДДДДДДДДДДДДДДДДї і і і і і New file name і*.rc і і і ЪДДДДДДДДДДДї і і і АДДДДДДДДДДДДДДДДДДДДЩ і і і _ і±і і і ЪДДДДДДДДДДДДДДДДДДДДДДДВДї і і і V OK і±і і і File type і RC resource script іvі і і АДДДДДДДДДДДЩ±і і і АДДДДДДДДДДДДДДДДДДДДДДДБНЩ і і ±±±±±±±±±±±±і і АДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЩ і і і і і і Resource ±±±±menu: menu_1±±±±±±±±±±±±±±±±±±±і і і і і і Path c:\workshop і і і і ЪДДДДДДДДДДДї і і ЪДДДДДДДДДДДДДДДДДДДДїЪДДДДДДДДДДДДДДДДДДДДї і і і±і і і Files іі Directories і і і X Cancel і±і і і ЪДДДДДДДДДДДДДДДВДїіі ЪДДДДДДДДДДДДДДДВДїі і АДДДДДДДДДДДЩ±і і і і О editor.rc і^ііі і Н і^іі і ±±±±±±±±±±±±і і і і О menu$.rc ГДґіі і Н temp ГДґі і і і і і О myproj.rc іІііі і п A іІіі і і і і і О myresorc.rc і±ііі і п B і±іі і і і і і О newproj.rc і±ііі і п C і±іі і і і і і О rwpdemo.rc і±ііі і п F і±іі і і і і і О typical.rc і±ііі і п G і±іі і ЪДДДДДДДДДДДї і і і і і±ііі і п H і±іі і і і±і і і і ГДґіі і п I ГДґі і і ? Help і±і і і і іvііі і g J іvіі і АДДДДДДДДДДДЩ±і і і АДДДДДДДДДДДДДДДБДЩіі АДДДДДДДДДДДДДДДБДЩі і ±±±±±±±±±±±±і і АДДДДДДДДДДДДДДДДДДДДЩАДДДДДДДДДДДДДДДДДДДДЩ і і і і і АДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДБДДДДДДДДДДДДДДДЩ Рис. 5.10 Диалоговое меню Save Resource As для ресурса меню Save resource as - сохранение ресурсов; File type - тип фай- ла; Resource - ресурс; Path - меню; Files - файлы; Directories - каталоги 2. Введите новое имя файла или выберите корректное имя файла из списка Files (Файлы). Если вы хотите поместить файл в другой каталог, то можете изменить маршрут с помощью списка Directories (Каталоги) либо введите маршрут при наборе имени файла. Когда имя файла будет корректным, нажмите клавишу Enter или активизируйте командную кнопку OK. Редактирование записи ресурса меню ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД Для работы с записью ресурса меню выделите в окне проекта имя меню , щелкнув на нем кнопкой "мыши" и для вывода записи меню во встроенном текстовом редакторе выберите команду ResourceіEdit As Text (РесурсіРедактировать как текст). Например, для редактирования записи ресурса для примера меню в конце данной главе вы можете открыть проект, содержащий данное меню, затем подсветить меню и выбрать команду ResourceіEdit As Text. Пакет разработчика ресурсов открывает встроенный текстовый редактор и выводит следующий исходный код: MENU_1 MENU BEGIN POPUP "&Widgets" BEGIN MENUITEM "&List\tCtrl+L", wmnu_List MENUITEM "&Add...\tCtrl+A", wmnu_Add MENUITAM SEPARATOR POPUP "A&rrange List" BEGIN MENUITEM "&Ascending\tCtrl+F2", wmnu_Asc MENUITEM "&Descending\tCtrl+F3", wmnu_Desc END END END Примечание: Описание параметров записи меню см. в ог- лавлении оперативного справочника Help. Затем для внесения изменений в исходный код вы можете ис- пользовать диалоговый редактор. Например, чтобы изменить парамет- ры памяти меню с Moveable, Discardable и Pure (по умолчанию) на Fixed, Nondiscardable и Pure, сделайте следующее: 1. В текстовом редакторе после первой строки записи меню включите: MENU_1 MENU FIXED NONDISCARDABLE PURE 2. Дважды щелкните кнопкой на управляющем блоке окна редак- тирования, чтобы закрыть его. (Если вы хотите остаться в окне редактирования и скомпи- лировать то, что ввели, чтобы убедиться в корректности изменений, можете вместо закрытия редактора выбрать ко- манду CompileіCompile Now (Компиляция). 3. Пакет разработчика ресурсов запрашивает у вас, хотите ли вы выполнить компиляцию. При выборе командной кнопки OK Пакет разработчика ресурсов компилирует меню и выходит в окно проекта. Примечание: Внести изменения можно с помощью выбора команды ResourceіMemory Options. Не теряйте зря время на комментирование исходных записей или форматирование исходного текста, поскольку Пакет разработчика ре- сурсов сам выполняет форматирование и отбрасывает все коммента- рии. Пример меню ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД В данном разделе описывается процесс создания очень простого меню. Здесь поясняются все основные моменты использования редак- тора меню. Предположим вы хотите создать всплывающее меню с тремя ко- мандами. Первые две команды позволяют пользователю просматривать существующие записи (List) и добавлять новые (Add). Третья коман- да, Arrange List (Упорядочивание списка) выводит всплывающее меню с двумя дополнительными командами, Ascending (В порядке возраста- ния) и Descending (В порядке убывания), которые позволяют пользо- вателю выбирать порядок сортировки списка записей. Меню построено следующим образом: ЪДДДВДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДї і - і TEST MENU : MENU_1 і ГДДДБДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДґ і Widget і ГДДДДДДДДДДДДДДДДДДДДВДДДДДДДДДДДДДДДДДДДґ і List Ctrl+L і і і Add... Ctrl+A і і ГДДДДДДДДДДДДДДДДДДВДБДДДДДДДДДДДДДДДДДДїі і±ArrangeList±±±±±±і±Ascending±±Ctrl+F2±іі ГДДДДДДДДДДДДДДДДДДґ Descending Ctrl+F3 іі і АДДДДДДДДДДДДДДДДДДДДЩі і і АДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЩ Рис. 5.11 Пример меню В данном меню Widgets и Arrange List - это команды вывода всплывающего меню. Когда пользователь щелкает кнопкой "мыши" на команде Widgets, выводится всплывающее меню с командами List, Add, Arrange и Arrange List. Когда пользователь щелкает кнопкой "мыши" на команде Arrange List, выводится другое всплывающее меню меню с командами Ascending и Descending. List и Add - это элементы меню (команды). Когда пользователь щелкает на данных командах кнопкой "мыши", прикладная программа выполняет действие. Команда List выводит список записей, а коман- да Add выводит диалоговое окно, которое запрашивает у пользовате- ля запись, добавляемую к списку. Обратите внимание на разделитель меню, отделяющий группу ко- манд List и Add от команды вывода всплывающего меню Arrange List. Создание меню с помощью текстового редактора ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД Без использования редактора меню вам пришлось бы для созда- ния данного примера меню создавать два файла - один с определени- ями идентификаторов, а другой, содержащий само меню. Файл идентификаторов (WDGCONTS.PAS) должен для программы Паскаля содержать следующий код: unit RWPDemoC; interface const wmnu_List = 101; wmnu_Add = 102; wmnu_Asc = 103; wmnu_Desc = 104; implementation end; Файл, содержащий меню, должен содержать следующий код: #include "wdgconst.pas" MENU_1 MENU BEGIN POPUP "&Widgets" BEGIN MENUITEM "&List\tCtrl+L", wmnu_List MENUITEM "&Add...\tCtrl+A", wmnu_Add MENUITAM SEPARATOR POPUP "A&rrange List" BEGIN MENUITEM "&Ascending\tCtrl+F2", wmnu_Asc MENUITEM "&Descending\tCtrl+F3", wmnu_Desc END END END Создание меню с помощью редактора меню ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД С помощью редактора меню не только легче создать пример ме- ню, но и проверить его при создании. Редактор меню дает также другие преимущества: он обеспечивает удобную работу с идентифика- торами меню и даже записывает идентификаторы в отдельном файле, если вы это укажете. Создание меню Чтобы создать меню, сделайте следующее: 1. Убедитесь, что вы уже открыли проект. Если вы работаете с примерами ресурсов каждой главы, откройте файл MYPROJ.RC (информацию об открытии проекта можно найти в Главе 3). 2. Открыв проект, выберите команду ResourceіOpen (Ре- сурсіОткрытие). 3. Пакет разработчика ресурсов выводит диалоговое окно New Resource (Новый ресурс). Прокрутите список Resource Type (Тип ресурса), пока вы не увидите MENU, щелкните на этом элементе кнопкой "мыши", затем выберите кнопку OK. Пакет разработчика ресурсов добавляет в окно проекта но- вый ресурс, затем выводит в редакторе меню новое меню с подсвеченным первым оператором в схеме меню POPUP "Pop-up". 4. Чтобы переименовать начальный оператор меню с Pop-up на Widgets, наберите в диалоговом окне в текстовом поле Item text (Текст элемента) &Widgets. Затем нажмите клавишу Enter. Обратите внимание, что W в Widgets подчеркивается. Это ука- зывает, что данное меню выводится, если вы нажимаете для выбора команды Widgets W. Добавление команд к меню Widgets Далее нужно добавить команды к меню, выводимому командой Widgets. Для этого: 1. Переименуйте первый элемент меню и добавьте текст, указы- вающий клавишу акселератора, нажмите Ctrl+стрелка вниз, подсветите вторую строку схемы меню (MENUITEM "Item"), затем наберите &List\tCtrl+L в текстовом поле Item Text. 2. С помощью клавиши Tab переместитесь на следующее поле - Item ID (Идентификатор элемента) - и наберите wmnu_List, чтобы задать идентификатор для данной команды (он будет позднее использоваться редактором акселератора для созда- ния акселератора команды - Ctrl+L). Пакет разработчика ресурсов спрашивает у вас, хотите ли вы создать новый идентификатор. Чтобы сделать это, нажми- те клавишу Enter, затем в диалоговом окне Mew Identifier (Новый идентификатор) нажмите клавишу Enter, чтобы было воспринято текущее выводимое значение. Здесь вы можете обычным образом открыть редактор акселе- ратора и создать клавишу акселератора Ctrl+L. Обычно по- лезно при создании меню задавать клавиши акселераторов, поскольку для создания соответствующих идентификаторов в командах меню требуются идентификаторы. Однако, поскольку акселераторы мы еще не обсуждали, эту часть демонстраци- онного примера отложим до следующей главы. 3. С помощью подсвеченной второй строки схемы меню (команда List) добавьте новую команду меню, нажав клавишу Ins или выбрав команду MenuіNew Item (МенюіНовый элемент). 4. В текстовом поле Item Text (Текст элемента) для изменения текста на новый элемент меню наберите &Add..\tCtrl+A. (Многоточие после команды Add указывает, что данная ко- манда выводит диалоговое окно.) 5. Поскольку вы указали, что клавиши Ctrl+A должны быть ак- селератором данного элемента меню, переместитесь в по- мощью клавиши табуляции в поле Item ID (Идентификатор элемента) и наберите wmnu_Add, после чего нажмите клавишу Enter. На подсказку отвечайте также, как в случае иденти- фикатор wmnu_List. 6. В подсвеченной третьей строке схемы меню (команда Add) нажмите клавиши Ctrl+P, затем измените текст на A&rrange List..., чтобы добавить в меню новую команду вывода всплывающего окна Arrange List. Поскольку вы хотите, чтобы при выборе пользователем ко- манды Arrange List выводились два параметра, вам нужно определить Arrange List, как команду вывода всплывающего меню, а не как еще один элемент меню. 7. Подсветите строку, определяющую команду Add, затем нажми- те клавиши Ctrl+S, чтобы поместить после команды раздели- тель. Добавление команд в меню Arrange List Чтобы определить команды Ascending и Descending во всплываю- щем меню Arrange List, сделайте следующее: 1. Измените элемент меню "Item" на "&Ascending" (запись "Item" создается пакетом разработчика ресурсов при созда- нии меню Arrange List). 2. Чтобы добавить новый элемент меню после "&Ascending", нажмите клавишу Ins, затем переименуйте его в "&Descending". 3. Если хотите, можете указать для каждой из этих команд клавиши акселераторов, как это делается для команд List и Add. Если вы указываете акселераторы, определите также идентификаторы для команд. Проверка меню Проверьте меню, щелкнув кнопкой "мыши" на команде Widgets в области проверки меню и раскрывая команду Arrange List. Вы должны получить картинку, аналогичную Рис. 5.11. Выбрав команду MenuіCheck Dupolicates (МенюіПроверка дубли- рования идентификаторов) вы можете также проверить дублирующиеся значения. - Если таких идентификаторов нет, вы получите сообщение: "No duplicates founds" ("Дублируемых идентификаторов не найде- но"). - Если имеется дублируемый идентификатор, вы получите сооб- щение "Duplicate command found" ("Найден дублируемый иден- тификатор"). После этого вы исправления дублируемых значе- ний вы можете выполнить описанные в предыдущих разделах шаги. Оглавление Глава 6. Создание акселераторов.................................. Использование редактора акселераторов............................ Область схемы.................................................... Область диалогового окна......................................... Запуск редактора меню............................................ Запуск редактора акселераторов................................... Создание новой таблице акселераторов............................. Редактирование существующей таблицы идентификаторов.............. Настройка таблицы акселераторов.................................. Выбор клавиши акселератора....................................... Использование диалогового окна................................... Установка значения команды....................................... Клавиши ASCII и виртуальные клавиши.............................. Задание клавиш акселераторов..................................... Перемещение и копирование акселератора........................... Удаление акселератора............................................ Отмена операций и их повторение.................................. Проверка дублирования комбинаций клавиш.......................... Редактирование записи ресурса для таблицы акселераторов.......... Создание примера таблицы акселераторов........................... Запуск редактора строк........................................... Работа с таблицами строк......................................... Windows и строки................................................. Ввод новой строки................................................ Редактирование существующих строк................................ Изменение строки................................................. Восстановление измененных значений строк......................... Удаление строки.................................................. Редактирование записи ресурса строковой таблицы.................. Изменение строки................................................. Изменение идентификатора......................................... Сохранение таблицы строк......................................... Проверка таблицы строк........................................... Создание примера таблицы строк................................... Запуск строкового редактора...................................... Загрузка курсоров, шрифтов и битовых массивов.................... Загрузка пиктограмм.............................................. Средства, доступные для ресурсов................................. Фоновый и основной цвета......................................... Использование палитры инструментальных средств................... Выделение прямоугольника......................................... Ножницы.......................................................... Инструментальное средство изменения размера изображения.......... Изменение размера части графического изображения................. Средство стирания................................................ Перо............................................................. Кисть............................................................ Краскораспылитель................................................ Банка с краской.................................................. Средство рисования линии......................................... Средство изображения цвета....................................... Рисование пустых рамок........................................... Закрашенные рамки................................................ Инструментальное средство "Рука"................................. Выбор стилей..................................................... Использование двух областей окна................................. Масштабирование.................................................. Использование акселераторов масштабирования...................... Определение масштабируемой части изображения..................... Перемещение масштабированного графического изображения........... Вывод сетки в окне с масштабированным изображением............... Чтение строки состояния.......................................... Правая часть: информация о текущем инструменте рисования......... Левая часть: пояснение команд меню............................... Работа с цветами................................................. Выбор для ресурса числа цветов................................... Использование основного цвета.................................... Использование фонового цвета..................................... Включение в курсор или пиктограмму............................... Использование атрибутов transparent и inverted................... Вывод и отмена вывода палитры цветов............................. Настройка цветов................................................. Редактирование цветов палитры Colors............................. Изменение цветов прозрачных и инвертированных областей........... Добавление текста к ресурсу...................................... Выравнивание текста.............................................. Выбор шрифта, размера и стиля текста............................. Выбор формы кисти................................................ Выбор образцов закраски.......................................... Выбор типа линии................................................. Выравнивание выделенной области.................................. Изменение размера выделенной области............................. Установка глобальных параметров графического редактора........... Draw on both images.............................................. Grig on zoomed windows......................................... Save with default device colours................................. Глава 9. Создание пиктограмм..................................... Запуск графического редактора.................................... Создание новой пиктограммы....................................... Выбор формата записи............................................. Двоичный формат.................................................. Редактирование существующей пиктограммы.......................... Настройка пиктограммы............................................ Вопросы проектирования........................................... Увеличение размера пиктограммы................................... Работа с прозрачной и инвертированной областями.................. "Трехмерное" изображение пиктограммы............................. Проверка пиктограммы............................................. Сохранение пиктограммы........................................... Сохранение проекта............................................... Сохранение ресурса пиктограммы в виде файла...................... Добавление к ресурсу пиктограммы графического изображения........ Удаление пиктограмм и графических изображений.................... Удаление ресурса пиктограммы..................................... Удаление графического образа пиктограммы......................... Редактирование записи ресурса пиктограммы........................ Создание образца пиктограммы..................................... Создание новой пиктограммы....................................... Изменение цвета прозрачной области............................... Отображение калькулятора......................................... Получение объемного эффекта...................................... Изображение книги счетов......................................... Копирование графического образа с другим цветовым форматом....... Глава 10. Создание курсоров...................................... Запуск графического редактора.................................... Создание нового курсора.......................................... Двоичный формат.................................................. Редактирование существующего курсора............................. Настройка курсора................................................ Вопросы проектирования........................................... Увеличение размера курсора....................................... Работа с прозрачной и инвертированной областями.................. Задание оперативной точки курсора................................ Проверка курсора................................................. Сохранение изменений............................................. Сохранение проекта............................................... Сохранение ресурса курсора в виде файла.......................... Редактирование записи ресурса курсора............................ Глава 11. Создание битовых массивов.............................. Запуск графического редактора.................................... Создание нового битового массива................................. Редактирование существующих битовых массивов..................... Настройка битового массива....................................... Изменение размера и цветов битового массива...................... Сохранение битового массива...................................... Сохранение всего проекта......................................... Сохранение битового массива в виде файла......................... Проверка битового массива........................................ Глава 12. Создание шрифтов....................................... Запуск графического редактора.................................... Создание нового ресурса шрифта................................... Редактирование существующего ресурса шрифта...................... Настройка файла шрифта........................................... Изменение изображения шрифта..................................... Определение набора символов для шрифта........................... Создание шрифтов переменной ширины............................... Определение заголовка ресурса шрифта............................. Изменение размера и атрибутов.................................... Удаление образа шрифта........................................... Сохранение ресурса шрифта........................................ Сохранение проекта............................................... Сохранение шрифта в виде файла................................... Добавление ресурса шрифта к прикладной программе................. Создание файла .FON с помощью Турбо Паскаля...................... Создание файла .FON с помощью С++................................ Проверка шрифта.................................................. Пример ресурса шрифта............................................ Глава 13. Создание ресурсов, определенных пользователем.......... Создание ресурса, определенного пользователем.................... Добавление ресурса, определенного пользователем.................. Редактирование определенного пользователем ресурса............... Ввод данных в записи ресурса..................................... Обработка данных, записанных в отдельном файле................... Проверка ресурса, определенного пользователем.................... Использование типа ресурса RCDATA................................ Удаление ресурса, определенного пользователем.................... Приложение A. Технические замечания.............................. Диалоговые окна, как порожденные или перекрывающиеся окна........ Глава 6. Создание акселераторов ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД Акселератор - это оперативная клавиша или комбинация клавиш, которые пользователь нажимает для выполнения вашей прикладной программой какого-либо действия. Он заменяет команду меню и, ана- логично команде меню, создает сообщение WM_COMMAND или WM_SYSCOMMAND, которое указывает прикладной программе, что делать дальше. Обычно акселераторы создаются для дублирования команд всплы- вающих меню. Например, если вы откроете в большинстве прикладных программ Windows меню Edit (Редактирование), то увидите следующие акселераторы: Shift+Del (команда Cut), Shift+Ins (команда Paste) и Ctrl+Ins (команда Copy). Примечание: Подробнее об использовании акселераторов с командами меню рассказывается в Главе 5. ЪДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДї і±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±і ГДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДґ і Cut Shift+Del і і Copy Ctrl+Ins і і Paste Shift+Ins і ГДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДґ і Clear і і Delete і АДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЩ Рис. 6.1 Окно Edit с акселераторами Определения акселераторов записываются в таблице акселерато- ров (ресурс акселератора). Каждая запись в таблице представляет собой акселератор, определяющий сочетание клавиш, которые должен нажать пользователь для генерации команды. При желании вы можете создать несколько таблиц акселераторов (или ресурсов) для различ- ных частей меню. Пакет разработчика ресурсов предоставляет вам редактор аксе- лераторов, который облегчает создание и редактирование акселера- торов для прикладной программы. При работе с акселераторами вы- полняются следующие основные задачи: - запуск редактора меню; - запуск редактора акселераторов; - настройка таблицы акселераторов и проверка на дублирование клавиш; - сохранение таблицы акселераторов. Первая задача, запуск редактора меню, выводит связанное с меню акселераторы, с которыми вы можете работать. Вторая задача, запуск редактора акселераторов, позволяет вывести таблицу акселе- раторов, которую вы можете настроить. Третья задача, сохранение акселераторов, выполняется автоматически при сохранении проекта. Перед тем, как обсудить эти задачи, мы покажем вам, как ор- ганизованы средства редактора акселераторов и его экран. Следую- щие разделы охватывают четыре основных задачи, выполняемые для создания акселератора. После этого описывается проверка дублируе- мых сочетаний клавиш, описание редактирования записи ресурса ак- селератора и приводится пример создания таблицы акселераторов. Если вы откроете демонстрационный проект RWPDEMO.RC и дважды щелкните кнопкой "мыши" на ресурсе акселератора. Пакет разработ- чика ресурсов выводит следующую таблицу: ЪДДДВДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДВДДДВДДДї і - і ACCELERATORS: acc_Main і ^ і v і ГДДДБДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДВДДДДДДДДДДДДДДДДДДДДБДДДБДВДґ іЪДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДї і acc_Main і^і іі Command і ГДДДДДДДДДДДДДДДДДДДДДДДДДДЕДґ ііЪДДДДДДДДДДДДДїЪДДДДДДДДДДДДДДїі і±VK_BACK 24325±±±±±±±±±±±±іІі ііі іі 24325 іі і VK_DELETE 24320 і±і ііАДДДДДДДДДДДДДЩАДДДДДДДДДДДДДДЩі і VK_INSERT 24321 і±і іАДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЩ і VK_INSERT 24322 і±і іЪДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДї і VK_F1 141 і±і іі Key і і VK_F2 142 і±і ііЪДДДДДДДДДДДДДї і і і±і ііі VK_BACK і і і і±і ііАДДДДДДДДДДДДДЩ і і і±і іАДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЩ і і±і іЪДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДї і і±і іі Key type і і і±і іі і і і±і іі > Ascii <* Virtual key і і і±і іі і і і±і іАДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЩ і і±і іЪДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДї і і±і іі Modifiers і і і±і іі і і і±і іі Vі Ascii і Shift і Control і і і±і іі ДЩ ДЩ ДЩ і і і±і іі Vі Invert menu item і і і±і іі ДЩ і і і±і іАДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЩ і і±і і і ГДґ і і іvі АДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДБДДДДДДДДДДДДДДДДДДДДДДДДДДБДЩ Риc. 6.2 Таблица акселераторов RWPDEMO в редакторе акселера- торов Command - команда; Key - клавиша; Key type - тип клавиши; Ascii - клавиша с кодом Ascii; Virtual key - виртуальная клавиша; Modifiers - модификаторы; Invert menu item - инвертирование эле- мента меню. Использование редактора акселераторов ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД Экран редактора акселератора разделен на две области - об- ласть схемы и область диалогового окна (см. Рис. 6.2). Перемещаться между этими двумя областями можно с помощью "мыши" или клавиш F6 и Ctrl+F6. Область схемы ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД В правой области, области схемы, выводятся все определенные в таблице акселераторы. В верхней строке данной области показано имя таблицы идентификаторов. Выведенные ниже строки - это записи акселераторов. Запись акселератора состоит из двух частей: - Первая часть представляет собой клавишу акселератора. * Если клавиша представляет собой виртуальную клавишу (идентификатор в верхнем регистре, который начинается с VK_ и представляет такие клавиши, как функциональ- ные клавиши и клавиши стрелок), вы можете посмотреть в блоке кнопок с независимой фиксацией Modifiers диа- логового окна, является ли клавиша комбинацией клавиш c Alt, Ctrl или Shift. Например, клавиша Ctrl+Alt+Shift+F1 представляется в области схемы, как VK_F1. Кроме того, в диалоговом окне установлены кнопки с независимой фиксацией Alt, Shift и Control. * Если клавиша представляет собой клавишу кода ASCII (отображаемая клавиша, заключенная в двойные кавыч- ки), то она может задаваться буквой верхнего или ниж- него регистра с предшествующим символом каре (^), что указывает на ее сочетание с клавишей Ctrl (Ctrl+W представляется как "^W"). Вы можете посмотреть на кнопку с независимой фиксацией (параметр) Alt в диа- логовом окне и определить, комбинируется ли клавиша с клавишей Alt. Например, Ctrl+Alt+W представляется в области схемы как "^W". Кроме того в области диалогового окна уста- навливается параметр Alt. - Вторая часть представляет собой идентификатор команды, с которой связан данный акселератор. Данный идентификатор представляет собой либо целое число, либо имя идентифика- тора. Когда вы находитесь в данной области, то можете выделять ак- селератор с помощью "мыши", полосы прокрутки или клавиш стрелок. Для выбора акселератора не обязательно находиться в данной облас- ти. Вы можете использовать "мышь" или нажать клавиши Ctrl+стрелка вверх или Ctrl+стрелка вниз. Область диалогового окна ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД Выбор одного из акселераторов с области схемы приводит к вы- воду его установок слева, в диалоговом окне. При выбранном аксе- лераторе вы можете вносить в диалоговом окне изменения, например, ввести новую комбинацию клавиш или связать акселератор с другой командой. Для перемещения в диалоговом окне для позиционирования в лю- бом месте и выбора можно использовать "мышь". Для перемещения ис- пользуются также следующие клавиши: - Клавиши Tab и Shift+Tab позволяют перемещаться между груп- пами (такими как группы Key Type и Modifiers). Блок текс- тового ввода (типа Key) и кнопка с независимой фиксацией (типа Alt) также считаются группой. Если вы нажмете клавишу Tab для перемещения с текстового блока Command в текстовый блок Key, редактор акселераторов переходит в режим Key Value (Значение клавиши), в котором вы можете нажать любую клавишу, чтобы ввести ее как аксе- лератор. Чтобы выйти из этого режима, щелкните кнопкой "мыши" или нажмите клавиши Alt+Esc. - Когда вы находитесь в группе, то для перемещения и выбора кнопок с зависимой фиксацией (селективных кнопок) можете использовать клавиши стрелок. Для переключения кнопок с независимой фиксацией (параметров) используйте клавишу пробела. Выбранные вами значения начнут действовать при нажатии кла- виши Enter (для изменения акселератора) или Ins (для создания но- вого акселератора), либо при перемещении в новому акселератору в области схемы. В следующей таблице описаны варианты выбора, описанные в ди- алоговом окне. Подробнее они описываются в следующих ниже разде- лах. Параметры диалогового редактора акселераторов Таблица 6.1 ЪДДДДДДДДДДДДДДДДДДДДДДДВДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДї і Параметр і Описание і ГДДДДДДДДДДДДДДДДДДДДДДДЕДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДґ і Command і Идентификатор выполняемой акселерато-і і (команда) і ром команды. Вы можете ввести здесьі і і числовое значение или идентификатор. і і і і ГДДДДДДДДДДДДДДДДДДДДДДДЕДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДґ і Key і Клавиша акселератора. Вы можете ввестиі і (клавиша) і клавишу в ручном режиме (Manual mode),і і і когда нужно решить, является ли этаі і і клавиша клавишей ASCII, и заключитьі і і ее в двойные кавычки, или виртуальнойі і і клавишей (идентификатор или целое чис-і і і ло), либо это режим значения клавишиі і і (Key Value). В последнем случае приі і і нажатии клавиши редактор сам определя-і і і ет, какая это клавиша - клавиша ASCIIі і і или виртуальная клавиша - и вводит ееі і і в соответствующем формате. Если вы пе-і і і реместитесь в это текстовое поле с по-і і і мощью клавиши табуляции из поляі і і Command, то режим Key Value устанавли-і і і вается автоматически. і і і і ГДДДДДДДДДДДДДДДДДДДДДДДЕДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДґ і Key Type і Задайте клавишу ASCII или виртуальнуюі і (тип клавиши) і клавишу. Если вы находитесь в режимеі і і Key Value, то редактор акселераторові і і устанавливает данные кнопки с зависи-і і і мой фиксацией автоматически. і і і і і ASCII і Введенная вами клавиша представляеті і (клавиша ASCII) і собой отображаемую клавишу и представ-і і і ляется с использованием соглашенийі і і ASCII (символ заключается в двойныеі і і кавычки, а Ctrl представляется в видеі і і каре (^). Например, Ctrl+L представля-і і і ется как "^L". і і і і і Virtual Key і Введенная вами клавиша не имеет стан-і і (Виртуальная і дартного представления в виде символаі і клавиша) і и должна задаваться идентификаторомі і і (например, клавиша F1 задается иденти-і і і фикатором Windows VK_F1). і і і і ГДДДДДДДДДДДДДДДДДДДДДДДЕДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДґ і Modifiers і Набор кнопок с независимой фиксацией,і і (модификаторы) і которые определяют комбинации клавиші і і для соответствующего элемента меню.і і і Значение каждого параметра описываетсяі і і в следующих описаниях. і і і і і Alt і Акселератор представляет собой комби-і і і нацию клавиш с клавишей Alt (например,і і і Alt+W). і і і і і Shift і Акселератор представляет собой комби-і і і нацию клавиш с клавишей Shift (напри-і і і мер, Shift+F1). і і і і і Ctrl і Акселератор представляет собой комби-і і і нацию клавиш с клавишей Ctrl (напри-і і і мер, Ctrl+W). і і і і ГДДДДДДДДДДДДДДДДДДДДДДДЕДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДґ і Invert Menu Item і Использование акселератора приводит кі і (инвертирование і инвертированию соответствующего эле-і і элемента меню) і мента меню. і АДДДДДДДДДДДДДДДДДДДДДДДБДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЩ Запуск редактора меню ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД При работе с акселераторами обычно неплохо запустить редак- тор меню и загрузить меню, содержащее соответствующие команды. Таким образом, вы можете видеть текст команд и идентификаторы элементов, которые нужно определить для акселераторов. Как пояс- няется в данной главе ниже, каждый акселератор должен иметь иден- тификатор, соответствующий команде меню. Чтобы пользователи знали, какие акселераторы они могут ис- пользовать, вы можете добавить к своим меню текст акселератора. Например, если ваша прикладная программа включает акселератор Shift+Del, дублирующий команду Cut меню Edit, вы можете добавить после данной команды текст "Shift+Del". Для отделения заголовка меню от текста акселератора исполь- зуйте символ табуляции (\t), например, Cut\tShift+Del. Прикладные программы Windows в соответствии с соглашениями для указания комбинации клавиш используют символ +, например Shift+Del или Ctrl+Shift+F4. Запуск редактора акселераторов ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД Независимо от того, хотите вы создать новую таблицу акселе- раторов или редактировать существующую, нужно запустить редактор акселераторов. При запуске редактора акселераторов выводится таб- лица акселераторов, которую вы можете редактировать, чтобы она удовлетворяла потребностям вашей прикладной программы. Характер запуска редактора акселераторов зависит от того, создаете вы но- вую таблицу акселераторов или редактируете существующую. Создание новой таблице акселераторов ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД Для создания новой таблицы акселераторов сделайте следующее: 1. Убедитесь, что вы уже открыли файл проекта, к которому вы хотите добавить акселератор. Для создания нового проекта вы можете выбрать команду FileіNew Project (ФайліНовый проект) или выбрать команду FileіOpen Project (ФайліОтк- рытие проекта) для открытия существующего проекта. 2. Если вы открыли проект, выберите команду ResourceіNew (РесурсіНовый) для создания нового ресурса для данного проекта. Выводится диалоговое New Resource (Новый ре- сурс). 3. В диалоговом окне New Resource прокрутите список Resource Type (Список ресурса) до ACCELERATOR, затем дважды щелк- ните кнопкой "мыши" на элементе ACCELERATOR и выберите командную кнопку OK. Редактирование существующей таблицы идентификаторов ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД Для редактирования существующего ресурса акселератора отк- ройте проект, в котором записан ресурс акселератора и сделайте следующее: - Дважды щелкните кнопкой "мыши" на имени ресурса акселера- тора в окне проекта. - Подсветите имя ресурса акселератора и выберите команду ResourceіEdit (РесурсіРедактирование). ЪДДДВДДДДДДДДДДДДДДДДДДДДДДДДДДДВДВДї і - і rwdemo.rc іvі^і ГДДДБДДДДДДДДДДДДДДДДДДДДДДДДДДДБДЕДґ і FONT і^і і 1 ГДґ і ACCELERATORS і±і і acc_Main±±±±±±±±±±±±±±±±±±±±±і±і і RCDATA і±і і RCDATA_1 і±і і CURSOR і±і і CURSOR_1 ГДґ і ICON іvі АДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДБДЩ Рис. 6.3 Окно проекта RWPDEMO Пакет разработчика ресурсов выводит окно с таблицей акселе- раторов, которую вы выбрали для загрузки (см. Рис. 6.2). Настройка таблицы акселераторов ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД После того, как в редактор акселераторов загружена таблица акселераторов, вы можете начать ее настройку. Используя таблицу акселераторов, вы можете определить и изменить акселераторы и за- дать сочетания клавиш акселераторов, просто нажимая сочетание нужных клавиш. Вы можете также скопировать или удалить некоторые акселераторы в таблице и проверить таблицу на возможное дублиро- вание значений идентификаторов. Выбор клавиши акселератора ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД Чтобы настроить акселератор, вы можете создать новый идентификатор или выбрать тот, который уже существует. - Чтобы добавить к таблице акселераторов новый акселератор, нажмите клавишу Ins или выберите команду AccelerateіNew Item (АкселераторіНовый элемент). Новая клавиша выводится в строке под текущей выбранной строкой с назначенным для клавиши по умолчанию значением (0) и уникальным числовым значением идентификатора команды. - Чтобы выбрать существующий акселератор, используйте "мышь" или нажмите клавиши Ctrl+стрелка вниз или Ctrl+стрелка верх для подсветки акселератора в области схемы. Редактор акселераторов выводит в диалоговом окне текущее значение акселератора. Использование диалогового окна ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД После того, как вы выберите акселератор для редактирования, для его настройки можно использовать диалоговое окно. Установка значения команды ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД В поле Command (Команда) наберите идентификатор элемента для команды, которую должен выполнять акселератор. Вы можете ввести числовое значение или идентификатор. Если в редакторе меню у вас загружено меню, вы можете изме- нить окно на редактор меню и выделить соответствующую команду меню. Запомните идентификатор команды и используйте тот же иден- тификатор в текстовом поле Command акселератора. Вы можете использовать либо числовое значение идентификато- ра, либо его имя. Если вы вводите имя идентификатора и видите сообщение "Create a new identifier: имя_идентификатора?" ("Создать новый идентификатор: имя_идентификатора?"), то возможно вы ошиблись при наборе имени. Ответьте No (Нет) и проверьте имя. Если вы специально ввели новый идентификатор, поскольку со- бираетесь позднее добавить к меню соответствующий элемент, выво- дится подсказка, запрашивающая у вас, хотите ли вы создать новый идентификатор (если вы не получаете такой подсказки, то идентифи- катор уже существует, и возможно вы не захотите его использо- вать). Так как вы создаете новый идентификатор, ответьте Yes (Да) или нажмите клавишу Enter, затем введите значение идентификатора в диалоговом окне New Identifier (Новый идентификатор). Убеди- тесь, что вы вводите значение, отличное от идентификаторов других элементов соответствующего меню. Клавиши ASCII и виртуальные клавиши ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД Вы можете ввести представление самой клавиши в текстовом ок- не Key. Однако перед описание ввода клавиш полезно пояснить, что собой представляют клавиши ASCII и виртуальные клавиши. Клавиши ASCII Когда вы нажимаете клавишу ASCII, то на экране выводится символ (например, N, 5 или %). Клавиша ASCII, которая выводится текстовом окне Key, заклю- чена в символы кавычек и соответствует стандартным соглашениям представления символов ASCII. Например, функциональная клавиша без клавиши Shift обозначается как "f", а с клавишей Shift - как "F". Ctrl+F обозначается как "^F". Поскольку соглашения по представлению комбинаций клавиш с клавишей Alt отсутствуют, редактор акселератора предусматривает кнопку с независимой фиксацией (параметр) Alt, которая указывает такие комбинации. Обычно одиночные клавиши ASCII в качестве акселератора не используются. Как правило, они комбинируются с клавишами Alt или Ctrl (используется Ctrl+L или Alt+L вместо одной клавиши L). Если вы используете в качестве акселератора одиночную клавишу ASCII, следует обратиться к книге Чарльза Петцольда "Программирование в Windows", где описывается, как Windows интерпретирует одиночные клавиши ASCII и их сочетания с другими клавишами при использова- нии их в качестве акселераторов. Виртуальные клавиши При нажатии виртуальной клавиши, такой как F3 или "стрелка вверх", на экран может выводиться символ, но стандартная специфи- кация таких символов отсутствует. Что при этом нужно вводить в текстовом поле Key? Можно использовать стандартные идентификаторы Windows, предусмотренные для отдельных клавиш, такие как VK_BACK (клавиша Backspace) или VK_F1 (клавиша F1). Все эти идентификато- ры определены в файле WINDOWS.H. Если вы используете режим Key Value (Значение клавиши), ко- торый описывается ниже, то искать идентификаторы этих виртуальных клавиш не нужно, поскольку редактор акселераторов сам находит корректное значение и вставляет его. Для представления комбинаций с клавишами Ctrl, Alt и Shift клавиш не предусмотрено. Чтобы представить одну из этих комбина- ций, нужно установить соответствующий параметр в группе Modifiers (Модификаторы). Задание клавиш акселераторов ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД Для задания комбинации клавиш акселераторов введите комбина- цию клавиш в текстовом поле Key. Ваш акселератор должен согласовываться с акселераторами дру- гих прикладных программ Windows, поэтому не стоит использовать комбинации клавиш, необходимые в Windows (такие как Ctrl+Esc). Рекомендации по выбору подходящих комбинаций клавиш можно найти в руководстве "SAA Common User Access Advances Interface Design Guide" фирмы IBM. Значение клавиши вы можете ввести в двух режимах - ручном и режиме значения клавиши. Ручной режим Если для позиционирования в поле Key вы используете "мышь", или если нажали клавиши Alt+Esc для выхода из режима значения клавиши, то находитесь в ручном режиме. В ручном режиме нужно непосредственно вводить всю информа- цию, необходимую для представления клавиши. Вы должны определить, является ли эта клавиша клавишей ASCII или виртуальной клавишей, и ввести ее в корректном формате. Если это виртуальная клавиша, вам потребуется знать корректный идентификатор Windows и ввести его буквами в верхнем регистре. Нужно также выбрать соответствую- щий параметр группы Key Type (Тип клавиши), то есть ASCII или Virtual Key (Виртуальная клавиша). Если вы хотите использовать комбинацию клавиши Alt и клавиши ASCII, нужно установить параметр Alt. Чтобы использовать сочета- ние клавиши Alt, Ctrl и Shift с виртуальной клавишей, нужно уста- новить один или более параметров, связанных с данными модификат- орами. Например, для задания в качестве клавиши акселератора Alt+F3 можно набрать в текстовом поле Key VK_F3 (убедитесь, что буквы вводятся в верхнем регистре), и выбрать параметры (кнопки с независимой фиксацией) Virtual Key и Alt. Для задания в качестве акселератора Alt+Ctrl+F наберите "^F" или "^f" (в комбинации с клавишами Alt и Ctrl) регистр не различается) и установите параметр ASCII и Alt. Режим значения клавиши Перейти в режим значения клавиши можно позиционируясь с по- мощью клавиши Tab в текстовом поле Key или с помощью выбора ко- манды AcceleratorіKey Value (АкселераторіЗначение клавиши). О пе- реходе в данный режим вы можете узнать, когда окно схемы выводится серым цветом, и в данном окне выводится следующее сооб- щение: "Use the keyboard to select a key. Click the mouse or press Alt+Esc when done." ("Для выбора клавиши используйте клави- атуру. При завершении щелкните кнопкой "мыши" или нажмите клавиши Alt+Esc.") В режиме значения клавиши редактор акселераторов делает за вас большую часть работы. Любая клавиша или комбинация клавиш, которые вы нажимаете, выводятся в текстовом поле Key в качестве акселераторов. Редактор акселераторов определяет, является ли эта клавиша клавишей ASCII, или виртуальной клавишей, и устанавливает соответствующие параметры группы Modifiers. Например, если вы в режиме значения клавиши нажимаете Alt+F3, то редактор акселераторов вводит VK_F3 и устанавливает кнопки с независимой фиксацией Virtual Key и Alt. Если вы нажимаете в режиме значения клавиши Alt+Ctrl+F, ре- дактор акселераторов выводит в поле Key "^F" и устанавливает кнопки с независимой фиксацией (параметры) ASCII и Alt. Средство инвертирование Windows имеет встроенную функцию, которая отмечает команду меню, когда пользователь нажимает клавиши акселератора для коман- ды, связанной с командой меню. Например, если вы используете прикладную программу Windows Write, и у вас выделен блок текста, нажатие клавиши Shift+Ins (эквивалент выбора команды EditіInsert (РедактированиеіВставка)) приводит к тому, что Windows временно инвертирует команду Edit в строке меню. Данное средство позволяет пользователю определить, какое меню включает клавишу акселератора. Средство инвертирования (которое называется также инвертиро- ванием элемента меню) при создании акселератора по умолчанию включено. Вы можете запретить данное средство, отменив параметр Invert Menu Item (Инвертирование элемента меню) в диалоговом окне редактора акселератора. Перемещение и копирование акселератора ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД Для перемещения и копирования акселераторов используйте ко- манды Cut (Вырезание), Copy (Копирование) и Paste (Вставка) меню Edit (Редактирование). В области схемы подсветите акселератор, который вы хотите переместить или скопировать, затем выберите ко- манду EditіCut (РедактированиеіВырезание) EditіCopy (для его ко- пирования). Затем подсветите то место в области схемы, где вы хо- тите вставить идентификатор, и выберите команду EditіPaste (Ре- дактированиеіВставка). Удаление акселератора ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД Для удаления акселераторов используйте команды EditіCut (РедактированиеіВырезание) или EditіDelete (РедактированиеіУдале- ние) или клавишу Del. Подсветите акселератор, который вы хотите удалить, затем нажмите клавишу Del или выберите команды EditіCut или EditіDelete (РедактированиеіУдаление). Отмена операций и их повторение ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД Как и при работе с другими редакторами Пакета разработчика ресурсов, редактор акселераторов позволяет вам отменять и возоб- новлять действия (изменения). Выберите команду EditіUndo (Редак- тированиеіОтмена) или EditіRedo (РедактированиеіВозобновление) или используйте акселераторы Atl+пробел (Отмена) и Shift+Alt+Backspace (Возобновление). Проверка дублирования комбинаций клавиш ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД Чтобы обеспечить ситуацию, когда комбинации клавиш использу- ются не более одного раза, Пакет разработчика ресурсов позволяет вам отлаживать таблицу акселераторов, выполняя поиск дублируемых сочетаний клавиш. Это делается следующим образом: 1. При открытой таблице акселераторов выберите команду AcceleratorіCheck Dup Keys (АкселераторіПроверка дублиру- емых клавиш). 2. Если два акселератора используют одну и ту же комбинацию клавиш, редактор акселераторов выводит сообщение "Duplicate key value found" ("Найдено дублируемое значе- ние клавиши"), и второй акселератор подсвечивается. Вне- сите изменения и продолжите отладку таблицы акселераторов с помощью команды Check Dup Keys, пока не получите сооб- щение "No duplicate key values found" ("Дублируемых зна- чений клавиш не найдено"). Редактирование записи ресурса для таблицы акселераторов ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД Редактор акселераторов Пакета разработчика ресурсов облегча- ет создание и модификацию акселераторов. Вы можете также работать с записями ресурсов. Если вы работаете с записями ресурсов в таблице акселерато- ров, выберите таблицу акселераторов из окна проекта, щелкнув на ней кнопкой "мыши", затем выберите команду ResourceіEdit As Text (РесурсіРедактирование в текстовом виде). Пакет разработчика ресурсов выводит запись ресурса во встро- енном текстовом редакторе. Примечание: Описание встроенного текстового редактора см. в начале руководства. Приведем пример записи ресурса из конца данной главы: My_Accelerators ACCELERATORS BEGIN "^L", wmnu_List "^A", wmnu_Add VK_F2, wmnu_Asc, VIRTKEY, CTRL VK_F3, wmnu_Desc, VIRTKEY, CTRL END Примечание: Описание параметров записей ресурсов для акселераторов см, в оперативном справочнике Help. Если вы хотите предотвратить инвертирование команды Widgets при нажатии Ctrl+L, текстовый редактор можно использовать для до- бавления к первой строке предыдущей записи ресурса команды NOINVERT. (В редакторе акселераторов тот же эффект имеет отмена параметра Invert Menu Item.) Когда вы сделаете это, строка будет выглядеть следующим образом: "^L", wmnu_List, NOINVERT Для сохранения изменений сделайте следующее: 1. Выберите в системном меню редактора команду Close (Зак- рыть). 2. В ответ на подсказку "Resource has changed. Compile?" ("Ресурс изменен, скомпилировать?") ответьте Yes (Да). Пакет разработчика ресурсов выводит запись ресурса во встро- енном текстовом редакторе. Примечание: Описание встроенного текстового редактора см. в начале руководства. Приведем пример записи ресурса из конца данной главы: My_Accelerators ACCELERATORS BEGIN "^L", wmnu_List "^A", wmnu_Add VK_F2, wmnu_Asc, VIRTKEY, CTRL VK_F3, wmnu_Desc, VIRTKEY, CTRL END Примечание: Описание параметров записей ресурсов для акселераторов см, в оперативном справочнике Help. Если вы хотите предотвратить инвертирование команды Widgets при нажатии Ctrl+L, текстовый редактор можно использовать для до- бавления к первой строке предыдущей записи ресурса команды NOINVERT. (В редакторе акселераторов тот же эффект имеет отмена параметра Invert Menu Item.) Когда вы сделаете это, строка будет выглядеть следующим образом: "^L", wmnu_List, NOINVERT Для сохранения изменений сделайте следующее: 1. Выберите в системном меню редактора команду Close (Зак- рыть). 2. В ответ на подсказку "Resource has changed. Compile?" ("Ресурс изменен, скомпилировать?") ответьте Yes (Да). Пакет разработчика ресурсов компилирует изменения и сохраня- ет их. При наличии синтаксической ошибки пакет разработчика ре- сурсов переводит вас обратно в текстовый редактор,и вы можете ис- править ошибку. Не теряйте попусту время на включение в запись ресурса ком- ментариев или форматирование текста, так как компилятор Пакета разработчика ресурсов сам выполняет форматирование и удаляет ком- ментарии. Создание примера таблицы акселераторов ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД Предположим, вы хотите создать акселераторы для команд List, Add, Ascending и Descendign в меню Widgets предыдущей главы. Без Пакета разработчика ресурсов вам пришлось бы создать следующие акселераторы: My_Accelerators ACCELERATORS BEGIN "^L", wmnu_List "^A", wmnu_Add VK_F2, wmnu_Asc, VIRTKEY, CTRL VK_F3, wmnu_Desc, VIRTKEY, CTRL END При наличии редактора акселераторов Пакета разработчика ре- сурсов вы можете сделать следующее: 1. Откройте файл MYPROJ.RC. (Об открытии проекта подробно рассказывается в Главе 3.). 2. Выберите команду ResourceіNew (РесурсіНовый). 3. В диалоговом окне New Resource (Новый ресурс) выполните прокрутку до типа ресурса ACCELERATOR и дважды щелкните на нем кнопкой "мыши", чтобы указать Пакету разработчика ресурсов, что нужно создать новую таблицу акселераторов. Вы увидите окно редактора акселераторов с единственной новой записью. 4. Чтобы открыть редактор меню, дважды щелкните кнопкой в окне проекта на ресурсе меню для меню, созданного в Главе 5. 5. Измените размер окон в редакторе меню и редакторе акселе- раторов, чтобы видеть их одновременно. 6. В области схемы редактора меню подсветите элемент меню List и отметьте его идентификатор (wnmu_List) и предназ- наченный для него акселератор (Ctrl+L). 7. Щелкните кнопкой "мыши" на новом акселераторе в редакторе акселераторов. 8. В текстовом блоке Command введите имя идентификатора, ко- торое вы видите в текстовом блоке Item ID редактора меню (wmnu_List). 9. C помощью клавиши табуляции переместитесь в текстовое по- ле Key. 10. Отметьте, что область схемы стала серой, и выводится со- общение, указывающее, что вы находитесь в режиме значения клавиши, Нажмите клавиши Ctrl+L. Редактор акселераторов вводит значение "^L" и устанавливает за вас кнопку с не- зависимой фиксацией ASCII. 11. Для выхода из режима значения клавиши нажмите Alt+Esc, затем нажмите клавишу Enter, чтобы эти установки стали действовать для клавиши акселератора, подсвеченной в об- ласти схемы. 12. Для создания нового акселератора нажмите клавишу Ins. 13. Щелкните кнопкой "мыши" в редакторе меню, выберите следу- ющую команду или клавишу акселератора и отметьте его идентификатор элемента и клавишу акселератора. 14. Повторите шаги 7 - 14, подставляя соответствующие иденти- фикаторы и комбинации клавиш, пока не будут определены все идентификаторы. Когда вы определите все идентификаторы меню, то все готово. Однако в демонстрационных целях мы сделаем еще следующее: 1. Подсветите последний созданный идентификатор, затем наж- мите клавишу Del для его удаления (далее вы увидите, как можно отменить это удаление). 2. Подсветите второй акселератор и измените значение его клавиш на Ctrl+L. 3. Выберите команду AcceleratorіCheck Dup Keys (Акселераторі Проверка дублирования идентификаторов). 4. Когда выведется сообщение "Duplicate Key Value" ("Дубли- руемое значение идентификатора"), нажмите для его очистки клавишу Enter. 5. Здесь редактор акселераторов позиционирует вас на дублир- руемых клавишах, которые вы только что задали (вторая за- пись). Вы можете либо перейти с помощью клавиши табуляции в текстовое поле Key и изменить значение обратно, либо нажать Alt+Backspace, чтобы отменить внесенное изменение. 6. Снова выберите команду AcceleratorіCheck Dup Keys (Аксе- лераторі Проверка дублирования идентификаторов). Вы долж- ны получить сообщение "No duplicate keys found" (Дублиру- емых идентификаторов не найдено"). 7. Выберите команду Edit (Редактирование). Обратите внимание на параметр Undi Delete Item (Отмена удаленного элемен- та), который ссылается на удаление последнего акселерато- ра, и другой параметр - Undo Delete Item (Отмена уделения элемента), который ссылается позволяет вам отменить пос- леднее удаление (изменить клавиши второго акселератора обратно на Ctrl+L). 8. Для восстановления идентификатора, который вы удалили на шаге 1, выберите Undo Delete Item. 9. Если вы теперь выберите команду Edit (Редактирование), то увидите, что параметр изменился на Redo Delete. Вы можете вернуться назад и отменить все последние изменения клавиш (число отмен ограничивается только значением Undo Levels (Уровни отмены), установленном в окне Preferences (Пара- метры) (команда FileіPreferences). Данный пример показывает вам, как легко создавать акселера- торы с помощью редактора меню и редактора акселераторов. Чтобы увидеть, какие клавиши акселераторов связаны с командами меню, вы можете переключаться между двумя редакторами. Для ввода клавиш можно использовать режим значения клавиши, что позволяет редакто- ру акселераторов выполнять большую часть работы автоматически. Когда вы все сделаете, можете выполнить проверку и убедиться, что вы не создали дублирующихся клавиш. Если это происходит, такие клавиши легко изменить (как в меню, так и в таблице акселерато- ров). Глава 7. Создание таблицы строк ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД Таблицы строк представляет собой таблицу, которая содержит сообщения об ошибках, подсказки и другие текстовые строки, кото- рые должна выводить ваша прикладная программа. В файл проекта вы можете записать несколько строковых таблиц. Например, вы можете задать строки, связанные со всеми меню, вызываемыми командами ме- ню File. Определение строк текста как отдельного ресурса облегчает редактирование текстовых строк без изменения исходного кода. Нап- ример, если вам нужно перевести прикладную прогрaмму Windows на другой язык, размещение текстовых строк в таблицах строк упрощает процесс. (Тем не менее вам придется переводить текст в других ре- сурсах, таких как диалоговые окна.) При работе с таблицами строк нужно выполнить следующие четы- ре основных задачи: - запуск редактора строк; - создание и редактирование таблиц строк; - сохранение таблицы строк; - проверка таблицы строк. В конце данной главы вы найдете краткое руководство, которое позволяет вам выполнить шаги по созданию и редактированию таблицы строк. Запуск редактора строк ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД Характер запуска редактора строк зависит от того, хотите вы создать новую строку или редактировать существующую. Для запуска строкового редактора с целью создания новой таб- лицы строк сделайте следующее: 1. Откройте проект, к которому вы хотите добавить таблицу строк. 2. Выберите команду ResourceіNew (РесурсіНовый). 3. В диалоговом окне New Resource (Новый ресурс) выберите в блоке списка Resource Type (Тип ресурса) STRINGTABLE, за- тем выберите кнопку OK. ЪДДДВДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДї і - і New resource і ГДДДБДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДВДДДДДДДДДДДДДДДґ і Resource type і і іЪДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДї і ЪДДДДДДДДДДДї і іі STRINGTABLE і і і _ і±і іі ЪДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДВДїі і і V OK і±і іі і FONT і^іі і АДДДДДДДДДДДЩ±і іі і ICON ГДґі і ±±±±±±±±±±±±і іі і MENU і±іі і і іі і RCDATE іІіі і і іі і і±іі і ЪДДДДДДДДДДДї і іі і і±іі і і і±і іі ГДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЕДґі і і X Cancel і±і іі і іvіі і АДДДДДДДДДДДЩ±і іі АДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДБДЩі і ±±±±±±±±±±±±і іАДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЩ і і і і і і і ЪДДДДДДДДДДДї і і Place resource in і і . New і±і і ЪДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДї і і :: Type і±і і і ЪДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДїі і АДДДДДДДДДДДЩ±і і і і myproj.rc іі і ±±±±±±±±±±±±і і і АДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЩі і і і АДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЩ і і і і ЪДДДДДДДДДДДї і і і і і±і і і і ? Help і±і і і АДДДДДДДДДДДЩ±і і і ±±±±±±±±±±±±і і і і АДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДБДДДДДДДДДДДДДДДЩ Рис. 7.1 Диалоговое окно New Resource с подсвеченным элемен- том STRINGTABLE Пакет разработчика ресурсов открывает строковый редактор и помещает в ваше окно проекта ссылку на новую строковую таблицу. Чтобы запустить строковый редактор для редактирования су- ществующей строковой таблицы, сделайте следующее: 1. Откройте проект, содержащий строковую таблицу, которую вы хотите редактировать. 2. Найдите строковую таблицу в окне проекта. 3. Дважды щелкните кнопкой "мыши" на записи таблицы или вы- делите ее и выберите команду ResourceіEdit (РесурсіРедак- тирование). Выбранная вами таблица строк выводится в строковом редакто- ре. Работа с таблицами строк ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД Когда вы открываете строковый редактор, выводится таблица строк. Если вы просто создаете новую таблицу, вы не увидите ника- ких записей строк, поскольку вы их еще не ввели. Если вы редакти- руете существующую строковую таблицу, то вы увидите записи строк, которые могут выглядеть, например, следующим образом: ЪДДДВДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДВДДДВДДДї і - і STRINGTABLE : sth_FineNew і v і ^ і ГДДДБДДДДДДДДДДДДДВДДДДДДДДДДДДДДДДДВДДДДДДДДДДДДДДДДДДДБДДДБДВДґ і ID Source і ID Value і String і^і ГНННННННННННННННННЕДДДДДДДДДДДДДДДДДЕДДДДДДДДДДДДДДДДДДДДДДДДДЕДґ і sth_FileNew і 1 і Help on New іІі ГНННННННННННННННННЕДДДДДДДДДДДДДДДДДЕДДДДДДДДДДДДДДДДДДДДДДДДДґ±і і sth_FileOpen і 2 і Help on Open і±і ГДДДДДДДДДДДДДДДДДЕДДДДДДДДДДДДДДДДДЕДДДДДДДДДДДДДДДДДДДДДДДДДґ±і і sth_FileSave і 3 і Help on Save і±і ГДДДДДДДДДДДДДДДДДЕДДДДДДДДДДДДДДДДДЕДДДДДДДДДДДДДДДДДДДДДДДДДґ±і і sth_FileSaveAs і 4 і Help on SaveAs і±і ГДДДДДДДДДДДДДДДДДЕДДДДДДДДДДДДДДДДДЕДДДДДДДДДДДДДДДДДДДДДДДДДґ±і і sth_FilePrint і 5 і Help on Print і±і ГДДДДДДДДДДДДДДДДДЕДДДДДДДДДДДДДДДДДЕДДДДДДДДДДДДДДДДДДДДДДДДДґ±і і sth_FileExit і 100 і Help on Exit і±і ГДДДДДДДДДДДДДДДДДЕДДДДДДДДДДДДДДДДДЕДДДДДДДДДДДДДДДДДДДДДДДДДґ±і і sth_File і 8 і Help on і±і ГДДДДДДДДДДДДДДДДДЕДДДДДДДДДДДДДДДДДЕДДДДДДДДДДДДДДДДДДДДДДДДДґ±і і sth_FileUndo і 9 і Help on Undo і±і ГДДДДДДДДДДДДДДДДДЕДДДДДДДДДДДДДДДДДЕДДДДДДДДДДДДДДДДДДДДДДДДДґ±і і sth_FileCut і 10 і Help on Cut і±і ГДДДДДДДДДДДДДДДДДЕДДДДДДДДДДДДДДДДДЕДДДДДДДДДДДДДДДДДДДДДДДДДґ±і і sth_FileCopy і 11 і Help on Copy і±і ГДДДДДДДДДДДДДДДДДЕДДДДДДДДДДДДДДДДДЕДДДДДДДДДДДДДДДДДДДДДДДДДґ±і і sth_FilePaste і 12 і Help on Paste і±і ГДДДДДДДДДДДДДДДДДЕДДДДДДДДДДДДДДДДДЕДДДДДДДДДДДДДДДДДДДДДДДДДґ±і і sth_FileClear і 13 і Help on Clear і±і ГДДДДДДДДДДДДДДДДДЕДДДДДДДДДДДДДДДДДЕДДДДДДДДДДДДДДДДДДДДДДДДДґ±і і sth_FileDelete і 14 і Help on Delete і±і ГДДДДДДДДДДДДДДДДДЕДДДДДДДДДДДДДДДДДЕДДДДДДДДДДДДДДДДДДДДДДДДДґ±і і sth_Edt і 15 і Help on Edt і±і ГДДДДДДДДДДДДДДДДДЕДДДДДДДДДДДДДДДДДЕДДДДДДДДДДДДДДДДДДДДДДДДДЕДґ і stgh_ViewAll і 16 і Help on ViewAll іvі ГДВДДДДДДДДДДДДДДДБДДДДДДДДДДДДДДДДДБДДДДДДДДДДДДДДДДДДДДДДДВДЕДґ і<іІ±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±і>і і АДБДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДБДБДЩ Рис. 7.2 Строковый редактор с записями таблицы строк ID Source - исходный идентификатор; ID Value - значение идентификатора; String - строка Каждая запись строковой таблицы включает в себя запись ис- ходного идентификатора, значения идентификатора и саму строку. Перед описанием ввода информации в строковую таблицу мы расскажем немного о том, как Windows работает со строковыми ресурсами. Windows и строки ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД Каждая строка в таблице строк должна иметь уникальный цело- численный идентификатор. Windows объединяет строки в сегменты, которые содержат по 16 строк каждый. Строки с идентификаторами от 0 до 15 составляют первый сегмент, строки с идентификаторами от 16 до 32 - второй и т.д. При компиляции ресурсов строки добавля- ются к выполняемому файлу в сегментах. Вы время выполнения эти сегменты загружаются в память. Когда вашей прикладной прoграмме требуется конкретная стро- ка, Windows загружает в память весь строковый сегмент, содержащий данную строку. Для чего нужно знать о том, как Windows работает со строками? Это позволит вам при аккуратном присваивании иденти- фикаторов уменьшить объем памяти, которая требуется вашей прик- ладной программе. Предположим, вы определили для своей прикладной программы 32 строки. Если вы присваиваете этим строкам идентификаторы с 0 по 31, к вашему выполняемому файлу добавляется два строковых сегмен- та. Каждый раз, когда ваша прикладной программе требуется строка, в память будут загружаться 16 строк, даже если некоторые строки не нужны. Лучший способ состоит в логическом объединении строк, с ну- мерацией их от 0 до 4. Если вторая часть вашей прикладной прог- раммы требует 9 строк, поместите их во второй сегмент, нумеруя строки с 16 по 24. После этого Windows может загрузить вместе все нужные строки без загрузки других строк, которые не требуются. Хотя при этом все равно будут загружаться все сегменты, неисполь- зуемый идентификатор занимает только один байт памяти. Таким об- разом, если вы поместите в сегмент 5 строк, неиспользуемые иден- тификаторы будут занимать только 11 байт памяти. Если загруженный сегмент содержит 11 неиспользуемых строк,объем задействованной памяти будет существенно больше. При задании уникального идентификатора строки вы можете ис- пользовать целое значение или алфавитно-цифровой идентификатор (#define в Си или С++ или описание константы в Паскале), заменяю- щий это целое значение. Если вы для облегчения восприятия иденти- фикаторов выбираете алфавитно-цифровые идентификаторы, нужно пом- нить о том, что вам возможно потребуется сохранить идентификаторы в файле идентификаторов (файл заголовка в Си и С++ либо модуль или включаемый файл в Паскале). Перед добавлением идентификаторов в строковым редакторе убедитесь, что эти файлы существуют. Теперь вы имеете некоторое представление о том, как Windows работает со строковыми ресурсами, как задать уникальный идентифи- катор строки, и как ввести в строковую таблицу другую строку. Ввод новой строки ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД Обратите внимание на заголовки в верхней части строкового редактора: 1. Столбец ID Source (Исходный идентификатор) содержит иден- тификатор строки. При присваивании идентификатора он вы- водится в данном столбце. В противном случае вы увидите целочисленный идентификатор. 2. Столбец ID Value (Значение идентификатора) содержит целочисленный идентификатор строки. 3. Столбец String (Строка) - это текстовая строка. Она хра- нится в строковой таблице как строка Паскаля, то есть тексту строки предшествует байт длины. Строка может со- держать до 255 символов. Чтобы ввести в строковую таблицу новую строку, сделайте сле- дующее: - Если это новая таблица, просто начните вводить информацию для строки, как описывается шагами 3, 4 и 5 (см, ниже). - Если вы добавляете к таблице строку, начните с шага 1: 1. Выделите строку над той строкой, куда вы хотите включить новую строку. 2. Для выбора команды StringtableіNew Item (Строковая табли- цаіНовый элемент) нажмите клавишу Ins. 3. Введите значение поля ID Source или примите число, поме- щенное в это поле строковым редактором. На основе введен- ного вами значения ID Source строковый редактор находит соответствующее целочисленное значение для ID Value.: Примечание: Чтобы восстановить для ID Source исход- ное значение, перед нажатием клавиши Tab или Enter наж- мите Esc. Вы можете ввести целое значение или алфавитно-цифровой идентификатор, заменяющий это значение. Если вы введете алфавитно-цифровой идентификатор, не представляющий цело- го значения, то строковый редактор выводит вам подсказку для создания нового идентификатора, затем нужно нажать клавишу Enter или выбрать команду меню. Для создания идентификатора сделайте следующее: a) Выберите Yes (Да). Выводится диалоговое окно New Identifier (Новый идентификатор). б) Введите новое значение идентификатора и задайте, где вы хотите записать идентификатор. Выберите OK. 4. Нажмите клавишу Tab или щелкните кнопкой "мыши" под String и введите текстовую строку. Примечание: Чтобы восстановить для поля String ис- ходное значение, перед нажатием клавиши Tab или Enter нажмите Esc. Каждая строка может иметь длину до 255 символов и содер- жать любые управляющие последовательности Си, включая следующие: \n (новая строка), \t (табуляция), \r (возврат каретки), \\ (обратная косая черта), \" (двойная кавыч- ка). Когда Пакет разработчика ресурсов обнаруживает в строке управляющую последовательность Си, он генерирует в объек- тном кода соответствующую шестнадцатиричное значение ASCII, а корректно интерпретировать данное значение должна ваша программа. Например, когда компилятор встречает пос- ледовательность \b\040\x7F, он создает шестнадцатиричную последовательность 07207F. Ваша программа должна интерп- ретировать данную последовательность, как последователь- ность символов ASCII BEL, SPC и DEL, либо присвоить этим шестнадцатиричным значениям другой смысл. 5. Нажмите клавишу Enter (чтобы воспринялось новое значение) или Ins (чтобы воспринять значение и включить новое). Редактирование существующих строк ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД Строковый редактор облегчает изменение отдельных строк. Что- бы выделить строку с помощью "мыши", щелкните кнопкой "мыши" на той строке, которую вы хотите редактировать. По таблице можно пе- ремещаться с помощью клавиатуры, нажимая клавиши Tab, клавиши "стрелка вверх" и "стрелка вниз". Переместите курсор на ту стро- ку, которую вы хотите редактировать. Изменение строки ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД Для любой строки вы можете стереть значения ID Source и String и ввести новые значения. Можно также непосредственно изме- нить то, что выводится в поле ID Value, но строковый редактор об- новляет это значение в зависимости от того, что вы наберете в по- ле ID Source. Восстановление измененных значений строк ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД Для восстановления измененных значений строк вы можете ис- пользовать средства Undo (Отмена) и Redo (Повтор). Для отмены из- менения выберите команду EditіUndo (РедактированиеіОтмена) или нажмите клавиши Alt+Backspace. Если вы отмените слишком много из- менений, для восстановления изменений, которые вы отменили, выбе- рите команду EditіRedo (РедактированиеіПовтор) или нажмите клави- ши Shift+Alt+Backspace. Удаление строки ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД Для удаления строки выделите строку и выберите команду Editі Cut (РедактированиеіВырезание) или StringtableіDelete Stringtable Item (Строковая таблицаіУдаление элемента строковой таблицы). Редактирование записи ресурса строковой таблицы ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД Кроме редактирования строки в строковой таблице вы можете также использовать текстовый редактор для редактирования строки в записи ресурса. Для редактирования записи ресурса в строковой таблице сде- лайте следующее: 1. Выделите строку записи ресурса в строковой таблице. 2. Выберите команду ResourceіEdit As Text (РесурсіРедактиро- вание в виде текста). Выводится текст записи ресурса, который вы можете редактиро- вать. Изменение строки ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД Для редактирования строки сделайте следующее: 1. Найдите строку, которую вы хотите редактировать, и внеси- те в нее необходимые изменения. Изменяйте только текст, который заключен в двойные кавычки. 2. Дважды щелкните кнопкой "мыши" в управляющем меню редак- тора. 3. В ответ на подсказку "Resource has changed. Compile?" ("Ресурс изменен, компилировать?") ответьте Yes (Да). Пакет разработчика ресурсов компилирует внесенные вами изме- нения и сохраняет их. При наличии синтаксической ошибки Пакет разработчика ресурсов переводит вам обратно в текстовый редактор, где вы можете исправить ошибку. Изменение идентификатора ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД Изменение другого компонента записи строки, идентификатора, может оказаться более сложным, так как идентификатор может не су- ществовать или может потребоваться его изменение для задания нов- ого целочисленного значения.Если вы измените в строковом редакто- ре идентификатор, то вам выводится подсказка для ввода нового значения. Однако, если вы изменяете его в текстовом редакторе, вы должны уже добавить идентификатор в соответствующий файл иденти- фикаторов. Если вы этого не сделаете, компилятор пытается компи- лировать строковую таблицу и возвращает следующую ошибку "Expecting unsigned short integer" ("Требуется беззнаковое корот- кое целое значение"). Данная ошибка указывает, что компилятор пы- тается интерпретировать имя идентификатора, но не может найти для него идентификатор. Конечно, вы всегда можете включить в поле ID Source ID фак- тическое значение идентификатора, но это делает вашу строковую таблицу и программу менее удобной для чтения и гибкой. Если компилятор не может найти идентификатор, поскольку идентификатор не существует, вы можете добавить новый идентифика- тор: 1. Сделайте активным окно проекта. 2. Выберите команду ResourceіIdentifiers (РесурсіИдентифика- торы). 3. Выберите командную кнопку New (Новый). 4. В диалоговом окне New Identifier (Новый идентификатор) введите имя нового идентификатора и его значение. 5. Если необходимо, прокрутите список File (Файл), пока не найдете файл, в котором вы хотите сохранить идентифика- тор, выделите его и выберите командную кнопку OK. 6. Выделите запись Stringtable в окне проекта и снова выбе- рите команду ResourceіEdit As Text (РесурсіРедактирование в виде текста). 7. Снова дважды щелкните кнопкой "мыши" в управляющем меню, затем для перекомпиляции выберите командную кнопку OK. Теперь компилятор находит идентификатор и успешно выпол- няет компиляцию. Как можно видеть, строковый редактор для изменения или до- бавления идентификаторов к строкам использовать действительно су- щественно легче. Сохранение таблицы строк ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД Неплохо сохранять изменения во время работы, не дожидаясь, пока Пакет разработчика ресурсов не выведет вам подсказку при закрытии проекта. Пакет разработчика ресурсов помещает запись STRINGTABLE в запись ресурса а окне проекта при создании нового ресурса автоматически. Чтобы сохранить таблицу строк, вам нужно сохранить весь проект. Проверка таблицы строк ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД Чтобы проверить строковую таблицу, нужно скомпилировать файл записей ресурсов в выполняемый файл. Затем вы можете запустить выполняемый файл и посмотреть, правильно ли выводятся строки. Примечание: О компиляции ресурсов в выполняемый файл подробно рассказывается в Главе 3. Создание примера таблицы строк ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД В следующем примере создается несколько строк, которые пакет разработчика ресурсов использует для описания параметров меню. Он показывает, как легко работать со строковыми ресурсами с помощью редактора строк Пакета разработчика ресурсов. Без пакета разработчика ресурсов вам пришлось бы использо- вать для создания этих строк следующие записи ресурсов: STRINGTABLE BEGIN MENU_FILE, "Create, open or close files" MI_FILENEW, "Create a new project, of file" MI_FILEOPEN, "Open a resource file" MI_FILESAVE, "Save this resource file" END Предшествующие каждой строке алфавитно-цифровые строки в верхнем регистре представляет собой уникальный идентификатор стро- ки. Как и в случае других ресурсов Windows, каждая строка требует целочисленного идентификатора. Без Пакета разработчика ресурсов вам пришлось бы отдельно определять соответствующие целочисленные идентификаторы для всех таких идентификаторов в файле заголовка (для программы на Си) или во включаемом файле или модуле (для программы Паскаля). С помощью Пакета разработчика ресурсов вы можете создавать примеры строк следующим образом: 1. Убедитесь, что вы уже открыли проект. Если вы уже работа- ли с примерами, используя MYPROJ.RC, то можете открыть данный проект. 2. Если у вас еще нет файла идентификаторов (файл заголовка с определениями #define языка Си или модуль либо включае- мый файл с константами Паскаля), который задан для проек- та, задайте такой файл и назовите его (в данном примере мы подразумеваем, что это программа на Си). 3. Выберите команду ResourceіNew (РесурсіНовый) и укажите Пакету разработчика ресурсов, что нужно создать новую таблицу. Вы увидите строковый редактор. 4. Отступите от числа в текстовом блоке под ID Source и на- берите идентификатор строки. Для первой строки это MENU_FILE. 5. Для перемещения на String нажмите клавишу Tab. Обратите внимание, что вы пропустили ID Value. В это поле мы вер- немся позднее. 6. В поле String наберите текст строки. Для первой строки это текст Create, open, or close files. 7. Для определения следующей строки выберите команду StringtableіNew Stringtable Item (Строковая таблицаіНовый элемент строковой таблицы) Перед тем как строковый редактор позволит вам перейти к следующей строке, он проверяет целочисленный идентифика- тор строки, который вы только что добавили. Во-первых, он проверяет то, что вы набрали в строке ID Source. Если вы ввели целое число, строковый редактор помещает то же це- лое число в столбце ID Value. Примечание: Подробнее об использовании идентификаторов и файлов идентификаторов рассказывается в начале данного руководства. Как только вы введете алфавитно-цифровой идентификатор (MENU_FILE в данном случае), строковый редактор проверяет определения #define в Си или константы в Паскале, которые указывают на целочисленный идентификатор. Если идентифи- катора нет, вам выводится запрос, хотите ли вы создать новый идентификатор. 8. Чтобы вывести диалоговое окно New Identifier (Новый иден- тификатор), выберите Yes (Да). ЪДДДВДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДї і - і New identifier і ГДДДБДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДґ і ЪДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДїі і і ЪДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДїіі і і Name і MENU_FILE ііі і і АДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЩіі і АДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЩі і ЪДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДїі і і ЪДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДїіі і і Value і 768 ііі і і АДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЩіі і АДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЩі і ЪДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДїі і і ЪДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДВДїіі і і File і іvііі і і АДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДБНЩіі і АДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЩі ГДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДґ і ЪДДДДДДДДДДДї ЪДДДДДДДДДДДї ЪДДДДДДДДДДДї і і і _ і± і і± і і± і і і V OK і± і X Cancel і± і ? Help і± і і АДДДДДДДДДДДЩ± АДДДДДДДДДДДЩ± АДДДДДДДДДДДЩ± і і ±±±±±±±±±±±± ±±±±±±±±±±±± ±±±±±±±±±±±± і і і АДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЩ Рис. 7.3 Диалоговое окно New Inentifier 9. В текстовом поле Value (Значение) введите уникальный це- лочисленный идентификатор. В качестве первого идентифика- тора наберите 768. 10. Прокрутите вниз список File (Файл), пока вы не найдете MYPROJ.H, затем выберите его. 11. Чтобы ввести новый идентификатор и поместить его в файл MYPROJ.H, выберите командную кнопку OK. Повторите шаги 4 - 11, чтобы определить три другие строки, показанные в начале данного раздела: MI_FILENEW, MI_FILEOPEN и MI _FILESAVE. Попробуйте изменить последовательность, нажимая после ввода каждого имени идентификатора вместо Tab Enter. Как вы можете заметить, для каждой строки строковый редактор увеличивает числовое значение идентификатора на 1 (по сравнению с предыдущим идентификатором). Вам не требуется выбирать значение целочисленного идентификатора, для удобства строковый редактор помещает его сам. Когда вы закончите создание четырех строк, ваша строковая таблица будет выглядеть следующим образом: ЪДДДВДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДВДДДВДДДї і - і STRINGTABLE : MENU_FILE і v і ^ і ГДДДБДДДДДДДДДДДДДВДДДДДДДДДДВДДДДДДДДДДДДДДДДДДДДДДДДДДБДДДБДВДґ і ID Source і ID Value і String і^і ГДДДДДДДДДДДДДДДДДЕДДДДДДДДДДЕДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЕДґ і MENU_FILE і 768 і Create, open, or close files іІі ГДДДДДДДДДДДДДДДДДЕДДДДДДДДДДЕДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДґ±і і MI_FILENEW і 769 і Create a new project resource oі±і ГДДДДДДДДДДДДДДДДДЕДДДДДДДДДДЕДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДґ±і і MI_FILEOPEN і 770 і Open a resource file і±і ГДДДДДДДДДДДДДДДДДЕДДДДДДДДДДЕННННННННННННННННННННННННННННННННЕДґ і MI_FILESAVE і 771 і Save this resource file іvі ГДВДДДДДДДДДДДДДДДБДДДДДДДДДДБННННННННННННННННННННННННННННННВДЕДґ і<іІ±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±і>і і АДБДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДБДБДЩ Рис. 7.4 Строковый редактор с четырьмя определенными строка- ми В качестве последнего шага вы можете закрыть данную строко- вую таблицу, дважды щелкнув кнопкой "мыши" на управляющем блоке окна строкового редактора. Строковый редактор присваивает новой таблице имя первого идентификатора в таблице. Если первая запись ID Source представляет собой число, то это число станет именем строковой таблицы. Имя таблицы можно изменить только изменяя пер- вую запись ID Source в таблице. Это соглашение по наименованию имеет смысл, если вы вспомни- те, что строки загружаются сегментами по 16 строк, а целочислен- ный идентификатор строки указывает, где строка включается в сег- мент. Целочисленный идентификатор первой строки таблицы указывает, где в сегменте начинается таблица. Глава 8. Использование графического редактора ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД Графический редактор Пакета разработчика ресурсов - это средство, позволяющее вам создавать или редактировать графические ресурсы, включая стандартные графические ресурсы: - пиктограммы; - курсоры; - битовые массивы; - шрифты. Примечание: Эта глава будет полезна при изучении после- дующих глав, в которых рассказывается, как создавать раз- личные виды графических изображений. О том, где найти некоторые примеры битовых массивов, курсо- ров и пиктограмм, рассказывается в файле README. Запуск строкового редактора ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД Когда вы открываете файл, содержащий графический ресурс, Пакет разработчика ресурсов загружает ресурс и автоматически пе- реводит вас в графический редактор. Как описывается в следующих двух разделах, загрузка курсоров, шрифтов и битовых массивов ра- ботает отлично от загрузки пиктограмм. Загрузка курсоров, шрифтов и битовых массивов ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД Для загрузки курсора, шрифта или битового массива нужно либо дважды щелкнуть кнопкой "мыши" на записи ресурса в окне проекта или выделить запись ресурса и выбрать команду ResourceіEdit (Ре- сурсіРедактирование). Пакет разработчика ресурсов запускает гра- фический редактор и выводит на экран ресурс, который вы можете редактировать. Например, если вы откроете пример проекта RWPDEMO.RC и дваж- ды щелкните кнопкой "мыши" на ресурсе курсора CURSOR_1 в окне проекта, Пакет разработчика ресурсов выводит курсор в графическом редакторе. ЪДДДВДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДВДДДВДДДї і - і CURSOR : CURSOR_1 і v і ^ і ГДДДБДДДДДДДДДДДДДДДДДДДДДДДДДДДДДВДДДВДДДДДДДДДДДДДДДДДЕДДДЕДДДґ і і - і Colors і - і X і ГДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДВЕДДДБДДДДДДДВДДДДДДДДДЕДДДЕДДДґ і іі±±±±FG±±±±±і BG іЦ _і П і і ЪДДДДДДДДДДДДДДДДДДДДДДДДДДДДїіГДДДДДДДДДДДЕДДДДДДДДДЕДДДЕДДДґ і і±±±±±±±±±±±±±±±±±±±±±±±±±±±±іііTransparentіInverted і±\±і п і і і±±±±±±±±±±± ±±±±±±±±±±±±ііГДДДДДДДДДДДЕДДДДДДДДДЕДДДЕДНДґ і і±±±±±±±± ±± ±± ±±±±±±±±±ііі±±±±±±±±±±±іІІІІІІІІІі Ъ і\\ і і і±±±±±± ±±±±±±±±±±± ±±±±±±±ііАДДДДДДДДДДДБДДДДДДДДДЕДДДЕДДДґ і і±±±± ±±±±±±± ±±±±±±± ±±±±±іі і \ і Т і і і±±± ±±±±±±±±±±±±±±±±±±± ±±±±іі ГДДДЕДДДґ і і±± ±±±±±±±±±± ±±±±±±±±±± ±±±іі іі іі ± і і і± ±± ±± ±± ±± ±±іі ГДДДЕДДДґ і і±± ±±±±±±±±±± ±±±±±±±±±± ±±±іі і О і * і і і±±± ±±±±±±±±±±±±±±±±± ±±±±іі ±±|±± ГДДДЕДДДґ і і±±±±± ±±±±± ±±±±± ±±±±±±іі --|-- і о і * і і і±±±±±±±± ±± ±± ±±±±±±±±±іі ±±|±± ГДДДЕДДДґ і і±±±±±±±±±±± ±±±±±±±±±±±±іі і . і . і і і±±±±±±±±±±±±±±±±±±±±±±±±±±±±іі ГДДДЕДДДґ і АДДДДДДДДДДДДДДДДДДДДДДДДДДДДЩі і і І і і і АДДДБДДДґ і і і і і і АДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДБДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЩ Рис. 8.1 Курсор RWPDEMO (см. также в оригинальном руководс- тве) Colors - цвета; FG - основной; BG - фоновый; Transparent - прозрачный; Inverted - инвертированный Загрузка пиктограмм ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД Когда вы дважды щелкните кнопкой "мыши" на ресурсе пиктог- раммы в окне проекта (или выберите команду ResourceіEdit (Ресурсі Редактирование), то увидите окно Icon (Пиктограмма), которое вы до этого видели в графическом редакторе. В данном окне перечисле- ны различные графические образы пиктограммы. Например, вы можете создать две версии пиктограммы: двух цветную версию для монохром- ных мониторов и 16-цветную версию для цветных мониторов. При заг- рузке ресурса пиктограммы Windows выбирает версию, которая наибо- лее близко соответствует текущему драйверу дисплея. ЪДДДВДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДВДВДї і - і ICON : ico_RWPDemo і^іvі ГДДДБДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДБДЕДґ і 4 images і^і і 32x32±2±Colors±±±±±±±±±±±±±±±±±±±±ГДґ і 32x32 8 Colors іІі і 32x32 16 Colors і±і і 32x32 256 Colors і±і і і±і і і±і і і±і і ГДґ і іvі АДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДБДЩ Рис. 8.2 Окно Window для пиктограммы RWPDEMO В окне Icon (Пиктограмма) для выделения ресурса пиктограммы и запуска графического редактора сделайте следующее: - дважды щелкните кнопкой "мыши" на существующем образе пик- тограммы; - выделите образ и выберите команду ImagesіEdit (ОбразыіРе- дактирование); - для создания нового образа пиктограммы используйте команды ImagesіNew Image (ОбразыіНовый образ). Например, если вы откроете пример проекта RWPDEMO.RC и выбе- рите в окне проекта пиктограмму ico_RWPDEMO, то в окне Icon уви- дите список различных образом пиктограмм. Если вы хотите редакти- ровать 16-цветовой графический образ размером 32х32 элемента изображения, то можете для вывода в графическом редакторе дважды щелкнуть кнопкой "мыши" на записи 32x32 16 Colors в окне Icon. Средства, доступные для ресурсов ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД В графическом редакторе предусмотрены средства, обычно ис- пользуемые для редактирования всех графических ресурсов. Для это- го используется такой основной способ, как выделение средства в строке меню. Как вы можете заметить, строка меню остается одной и той же для всех команд, кроме одной - третьей команды справа (между Options и Window). Имя данной команды соответствует типу редактируемого ресурса, а возможности выбора меню, список которых выводится при выводе данной команды, изменяется в соответствии с типом ресурса. Например, если вы создаете курсор, то можете задать оператив- ную точку курсора с помощью выбора команды CursorіSet Hot Spot (КурсоріУстановить оперативную точку). Если вы редактируете шрифт, то можете с помощью команды FontіFont Size (ШрифтіРазмер шрифта задать его размер). Большая часть описанных в данной главе средств доступна при работе со всеми графическими ресурсами. Графический редактор ра- ботает в соответствии с конкретным типом ресурса, описанным в главах 9 - 11. Основные функции графического редактора обычно работают ана- логично, независимо от типа графического ресурса, к которым вы работаете. Общие функции графического редактора, описанного в данной главе, включают в себя следующие функции: - Палитру инструментальных средств, которая содержит: * два тип средств выделения, одно для прямоугольных об- ластей, а другое - для произвольных, используемых для выделения части графического образа, которую можно пе- ремещать, копировать, удалять или вставлять; * средства раскраски и рисования для редактирования гра- фического образа; * текстовое средство, с помощью которого в образ можно добавить текст; * средство "распахивания" для увеличения или уменьшения размера графических образов; * группа для выделения стилей, позволяющая просматрив- ать и изменять форму кисти, ширину линии и образец. - Палитру цветов для выбора цветов вашего графического обра- за. - Две области окна, в которых выводятся различные образы ре- сурса. Фоновый и основной цвета ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД Перед изучением средств полезно получить более точное представление о том, что собой представляют фоновый и основной цвета. - Основной цвет (цвет переднего раздела) - это цвета, кото- рым вы можете рисовать при нажатой левой кнопке "мыши". Обычно это один из цветов, которые используются для рисо- вания линий, прямоугольников, изображения теней и т.д. - Фоновый цвет - это цвет, которым можно рисовать при нажа- той правой кнопке "мыши". Обычно этот цвет используется для закрашивания области, в которой вы рисуете. Этот цвет остается при удалении или перемещении выделенной области. Использование палитры инструментальных средств ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД Когда вы открываете ресурс в графическом редакторе, в верх- ней левой части экрана выводится палитра инструментальных средств. Эти средства вы можете выбирать для работы в графическом редакторе. В нижней части палитры инструментальных средств можно выбирать один из четырех типов формы кисти, образцов заполнителей и толщины линий. ЪДДДДВДДДДДДДДДДДДДДДДДДДДї Инструментальные і - і і средства ГДДДДБДДДДДДДВДДДДДДДДДДДДґ і ---------- і \\ // і Выделение і | | і \\ і Ножницы прямоугольника і | | і //\\ і і ---------\ і O O і ГДДДДДДДДДДДДЕДДДДДДДДДДДДґ і ЪДДДДДДДДї і / \ і Масштабирование і і і і / \ і Ластик і і ^ і і \\ / і і ЪїДДДДДДДЩ і \\ / і ГДДДДДДДДДДДДЕДДДДДДДДДДДДґ і± ±±±±±±±±±і П і Перо і±± ±±±±±±±±і ;;;;; і Кисть і±±± ±±±±±±±і ;;; і і±±±± ±±±±±±і ; і ГДДДДДДДДДДДДЕДДДДДДДДДДДДґ і Ъї--. і ( '\ і Краскораспылитель і<=== і . і ;; ''\ і Банка і і і . і;;\ ''\ і с краской і АДДДДДЩ і; \ // і ГДДДДДДДДДДДДЕДДДДДДДДДДДДґ і * і ========= і Линия і * і || і Текст і * і || і і * і || і Ъ ГДДДДДДДДДДДДЕДДДДДДДДДДДДґ ї і і ЪДДДДДДДДї і ЪДДДДДДДДї і і і і і і і і±±±±±±±±і і і і і і і і і±±±±±±±±і і і і і АДДДДДДДДЩ і АДДДДДДДДЩ і і і ГДДДДДДДДДДДДЕДДДДДДДДДДДДґ і і і ДДДДДДДД і ДДДДДДДД і і Пустые Щ і і і і і±±±±±±±±і і А Закрашенные рамки ї і і і і і±±±±±±±±і і Ъ рамки і і ДДДДДДДД і ДДДДДДДД і і і ГДДДДДДДДДДДДЕДДДДДДДДДДДДґ і і і ДД і ДДДД і і і і . . і ±±±±±±±± і і і і ( ) і (±±±±±±±±) і і і і ДД і ДДДД і і А ГДДДДДДДДДДДДБДДДДДДДДДДДДґ Щ і і Стили Форма кисти і * :' і і і Форма і і распылителя і ±±±±±±±±±±±±і і ±±±±±±±±±±±±і Образец ГДДДДДДДДДДДДД±±±±±±±±±±±±і Стиль пера і ±±±±±±±±±±±±і АДДДДДДДДДДДДДДДДДДДДДДДДДЩ Рис. 8.3 Палитра инструментальных средств графического ре- дактора (см. также в оригинале руководства) Палитра инструментальных средств аналогична окну - вы можете перемещать ее по экрану, открывать и закрывать. - Для закрытия палитры инструментальных средств сделайте следующее: * дважды щелкните кнопкой "мыши" на блоке управления меню или выберите команду Hide (Скрыть) из управляю- щего меню палитры инструментальных средств; * выберите команду Тип_ресурсаіHide Toolbox (Закрыть палитру инструментальных средств), где "Тип_ресурса" - это выбор строки меню графического редактора, соот- ветствующего типу редактируемого ресурса (например, Icon); - Для открытия палитры инструментальных средств после ее за- крытия выберите команду Тип_ресурсаіShow Toolbox. Чтобы выбрать инструментальное средство, используйте левую кнопку "мыши", щелкнув этой кнопкой на нужном ресурсе. Подробно каждое средство описывается в следующих разделах. Выделение прямоугольника ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД ЪДДДДДДДДДДДДї і ---------- і Выделение і | | і прямоугольника і | | і і ---------\ і АДДДДДДДДДДДДЩ Средство выделения прямоугольника используется для выделения прямоугольной области графического изображения для копирования, перемещения или удаления. Для выделения области нужно нажать ле- вую кнопку "мыши" и выполнять буксировку, пока мерцающий прямоу- гольник не включит в себя нужную область. После этого освободите кнопку "мыши". Нажатие кнопки "мыши" или клавиши Enter либо Esc вне контура приводит к отмене выделения. Примечание: Для выделения всей области используйте ко- манду EditіSelect (РедактированиеіВыбор). Если вы выделили область, то можете для вырезания, копирова- ния, дублирования, удаления или вставки использовать команды меню Edit (Редактирование), либо для перемещения или дублирования об- ласти использовать кнопки "мыши". - Команды Cut (Вырезание) или Copy (Копирование) помещают образ в буфер вырезанного изображения Windows (карман). После этого вы можете копировать образ в другой битовый массив (в том же проекте, или в другом проекте, с которым работает другая копия Пакета разработчика ресурсов). Одна- ко действие этих команд для текущего образа будет различ- ным. * команда Cut удаляет текущий образ; * команда Copy оставляет текущий образ без изменения. - Команда Delete удаляет выделенную область, заполняя ее фо- новым цветом. Ту же функцию выполняет клавиша Del. - Команда Duplicate дублирует область графического изобра- жения, копируя выделенную область и помещая копию в верх- нем левом углу изображения. Пока область остается выделен- ной, вы можете для управления копированием области в любой точке графического изображения использовать "мышь" или клавиши управления курсором (стрелки). Вместо команды Duplicate для дублирования выделенной об- ласти и ее перемещения вы можете использовать "мышь". Вы- делите область, затем, удерживая клавишу Shift, нажмите левую кнопку "мыши" и выполните буксировку копии в новое место. - Для перемещения выделенной области нажмите левую кнопку "мыши" в любой точке области и выполните ее буксировку в новое место. - Команда Paste (Вставка) копирует содержимое буфера выре- занного изображения в текущее окно, размещая левый верхний угол образа буфера вырезанного изображения в левый верхний угол текущего окна редактирования. Если у вас выделена область, графический редактор вставля- ет содержимое буфера вырезанного изображения в выделенную область . Графический редактор при необходимости увеличи- вает или сжимает содержимое буфера вырезанного изображе- ния, чтобы оно поместилось в выделенной области. Ножницы ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД ЪДДДДДДДДДДДДї і \\ // і і \\ і Ножницы і //\\ і і O O і АДДДДДДДДДДДДЩ Ножницы выполняют в основном те же функции, что и инструмен- тальное средство выделения прямоугольной области - позволяют выделить область графического изображения. Однако с помощью нож- ниц вы можете выделять и перемещать области любой формы, а не только прямоугольники. Чтобы выделить область, нажмите левую кнопку "мыши" и букси- руйте ножницы, пока мерцающий контур не включит в себя нужную об- ласть, затем освободите кнопку "мыши". Вы можете вырезать, копи- ровать, удалять, дублировать или перемещать выделенную область точно также, как это делается с помощью выделения прямоугольной области (см. предыдущий раздел). Инструментальное средство изменения размера изображения ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД ЪДДДДДДДДДДДДї і ЪДДДДДДДДї і Масштабирование і і і і і і ^ і і і ЪїДДДДДДДЩ і АДДДДДДДДДДДДЩ Инструментальное средство изменения размера изображения (Масштабирования) вы можете использовать для увеличения до разме- ра всего экрана или уменьшения размера всего графического изобра- жения, либо вы можете оконтурить область изображения, которую хо- тите "масштабировать", после чего операцию увеличения/уменьшения выполнит Пакет разработчика ресурсов. Примечание: Подробнее об операции масштабирования рассказывается ниже. Чтобы увеличить все графическое изображение, дважды щелкните кнопкой "мыши" на пиктограмме "Масштабирование" палитры инстру- ментальных средств. Пакет разработчика ресурсов увеличивает вели- чину до следующего значения, кратного 400% (но не более 1600%). Вы можете также выбрать для выполнения той же функции для текуще- го выбранного окна команду ViewіZoom In (ПросмотріМасштабирова- ние). Примечание: При увеличении всего графического изобра- жения в качестве ссылки графический редактор использует центр изображения. Чтобы уменьшить все изображение, нажмите клавишу Shift, за- тем, удерживая ее, дважды щелкните кнопкой "мыши" на пиктограмме "Масштабирование". Пакет разработчика ресурсов уменьшает величину до следующего значения, кратного 400% (но не менее фактического размера изображения - 100%). Вы можете также выбрать для выполне- ния той же функции для текущего выбранного окна команду ViewіZoom Out (ПросмотріУменьшение). Примечание: Для перемещения изображения с измененным размером используйте средство палитры инструментальных средств или полосы прокрутки. Изменение размера части графического изображения ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД Чтобы изменить размер части изображения, выделите область, которую вы хотите масштабировать, щелкнув левой кнопкой "мыши" и выполняйте буксировку с помощью инструментального средства распа- хивания. Когда мерцающий контур заключит в себя нужную область, освободите кнопку "мыши". Пакет разработчика ресурсов увеличивает размер области до наибольшей процентной величины, которая помес- тится в области окна. Например, если вы изменяете (увеличиваете) размер относи- тельно большой области, она может поместиться в окне только при увеличении на 200 или 300%. Однако при выборе небольшой области ее можно увеличить на 1600%. Чтобы восстановить размер области, можно либо выбрать коман- ду ViewіZoom Out (ПросмотріУменьшение), либо нажать клавишу Shift и, удерживая ее, дважды щелкнуть кнопкой "мыши" на пиктограмме "Масштабирование" палитры инструментальных средств. Средство стирания ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД ЪДДДДДДДДДДДДї і / \ і і / \ і Ластик і \\ / і і \\ / і АДДДДДДДДДДДДЩ Средство стирания ("ластик") работает аналогично квадратной кисти (см. описание ниже). Когда вы нажимаете левую кнопку "мы- ши" и буксируете ластик по графическому изображению, то он стира- ет изображение, закрашивая стертую область фоновым цветом. Чтобы стереть всю область, дважды щелкните кнопкой "мыши" на пиктограм- ме "Ластик" палитры инструментальных средств. - Для стирания до фонового цвета (BG в палитре Colors) наж- мите левую кнопку "мыши". - Для стирания до текущего основного цвета (FG в палитре Colors) используйте правую кнопку "мыши". Примечание: Если вы видите в палитре Colors (Цвета) FB, то этот цвет выбирается в качестве текущего основного и фонового цвета. Заметим, что поскольку вы используете ластик для стирания до соответствующего цвета, кнопки "мыши" имеют обратное действие по сравнению с другими инструментальными средствами, используемыми для рисования. Например, работая с кистью, вы можете пользоваться левой кнопкой "мыши" для рисования основным цветом. Но когда вы используете ластик, левая кнопка "мыши" стирает до фонового цве- та. Перед тем как использовать ластик, вы можете установить те- кущие цвета в палитре цветов Colors (см. ниже раздел "Работа с цветами"). Перо ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД ЪДДДДДДДДДДДДї і± ±±±±±±±±±і Перо і±± ±±±±±±±±і і±±± ±±±±±±±і і±±±± ±±±±±±і АДДДДДДДДДДДДЩ Перо используется для изображения произвольных форм и линий, а также для быстрых набросков в немасштабированном изображении или элемента изображения масштабированного изображения. Для вы- полнения наброска с помощью пера нажмите кнопку "мыши" и букси- руйте перо по изображению. Когда завершите набросок, освободите кнопку "мыши". Рисуемая вами линия может иметь либо текущий основной цвет, либо фоновый цвет. - Для рисования текущим основным цветом (FG в палитре Colors) используйте левую кнопку "мыши". - Для рисования текущим фоновым цветом (BG в палитре Colors) используйте правую кнопку "мыши". Примечание: Если вы видите в палитре Colors (Цвета) FB, то этот цвет выбирается в качестве текущего основного и фонового цвета. Вы можете рисовать прямые линии или линии произвольной фор- мы. (Для рисования прямых линий вместо пера можно использовать инструментальное средство "Линия"). Перед тем, как рисовать линию, вы можете задать стиль линии, а также фоновый и основной цвета. (См. ниже разделы "выбор толщи- ны линии" и "Работа с цветами".) Кисть ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД ЪДДДДДДДДДДДДї і П і і ;;;;; і Кисть і ;;; і і ; і АДДДДДДДДДДДДЩ Кисть используется для изображения произвольных форм, кото- рые существенно больше отличаются по величине и типу, чем при использовании пера. Для рисования нажмите кнопку "мыши" и букси- руйте кисть по графическому изображению. При буксировке Пакет разработчика ресурсов рисует линию произвольной формы. Когда вы закончите рисование, освободите кнопку "мыши". При выборе кисти вы получите курсор, представляющий текущую форму кисти. Курсор имеет тот же размер, что фактически раскраши- ваемая область, только для области с фактическим размером (неуве- личенное изображение с размером 100%). При увеличении изображения область раскраски будет больше, чем курсор. Вы можете рисовать, используя текущий основной или фоновый цвет. - Для рисования текущим основным цветом (FG в палитре Colors) используйте левую кнопку "мыши". - Для рисования текущим фоновым цветом (BG в палитре Colors) используйте правую кнопку "мыши". Примечание: Если вы видите в палитре Colors (Цвета) FB, то этот цвет выбирается в качестве текущего основного и фонового цвета. Перед использованием кисти вы можете задать форму кисти, об- разец и цвета (см. далее разделы "Выбор формы кисти", "Выбор об- разца раскраски" и "Работа с цветами"). Краскораспылитель ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД ЪДДДДДДДДДДДДї і Ъї--. і Краскораспылитель і<=== і . і і і і . і і АДДДДДЩ і АДДДДДДДДДДДДЩ Как и кисть, краскораспылитель позволяет вам рисовать на графическом изображении образцы произвольной формы. Однако крас- кораспылитель работает скорее не как кисть, а как реальный крас- кораспылитель. Если вы будете медленно перемещать его по изобра- жению, он рисует толстую линию, а при более быстром перемещении он рисует менее плотную и более тонкую линию. При выборе краскораспылителя вы получаете курсор, который представляет текущую форму кисти. Курсор имеет тот же размер, что фактически раскрашиваемая область, только для области с фактичес- ким размером (неувеличенное изображение с размером 100%). При увеличении изображения область раскраски будет больше, чем кур- сор. Чтобы использовать краскораспылитель, вы можете один раз на- жать кнопку "мыши" и перемещать ("буксировать") краскораспыли- тель, либо щелкнуть кнопкой "мыши" повторно, как если бы вы нажимали головку краскораспылителя. С помощью краскораспылителя вы можете рисовать, используя текущий основной или фоновый цвет. - Для рисования текущим основным цветом (FG в палитре Colors) используйте левую кнопку "мыши". - Для рисования текущим фоновым цветом (BG в палитре Colors) используйте правую кнопку "мыши". Примечание: Если вы видите в палитре Colors (Цвета) FB, то этот цвет выбирается в качестве текущего основного и фонового цвета. Перед использованием краскораспылителя вы можете задать фор- му краскораспылителя ("ширину струи"), образец и цвета (см. далее разделы "Выбор формы кисти", "Выбор образца раскраски" и "Работа с цветами"). Банка с краской ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД ЪДДДДДДДДДДДДї і ( '\ і і ;; ''\ і Банка і;;\ ''\ і с краской і; \ // і АДДДДДДДДДДДДЩ Банка с краской используется для раскраски графического изображения текущим выбранным цветом. Это позволяет закрашивать любую отдельную область графического изображения с определенным цветом. Например, если вы используете банку с краской в пустой об- ласти, то будет закрашиваться вся область. Если вы используете перо и нарисуете линию, которая разделяет область на две части, то закраска заполнит ту половину области, которую вы выберите. Если вы используете банку с краской в области, которая не полностью окружена другими цветами, то цвет "разливается" по дру- гим частям изображения, цвет которых совпадает с цветом закраши- ваемой области. Чтобы использовать банку с краской, поместите курсор на ту часть графического изображения, которую вы хотите закрасить, за- тем нажмите кнопку "мыши". С помощью банки с краской вы можете закрашивать, используя текущий основной или фоновый цвет. - Для закраски текущим основным цветом (FG в палитре Colors) используйте левую кнопку "мыши". - Для закраски текущим фоновым цветом (BG в палитре Colors) используйте правую кнопку "мыши". Примечание: Если вы видите в палитре Colors (Цвета) FB, то этот цвет выбирается в качестве текущего основного и фонового цвета. Перед использованием банки с краской вы можете задать цвета (см. ниже раздел "Работа с цветами"). Средство рисования линии ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД ЪДДДДДДДДДДДДї і * і Линия і * і і * і і * і АДДДДДДДДДДДДЩ Cредство рисования линии используется для изображения прямых линий. Нажмите кнопку "мыши" и перемещайте курсор по графическому изображению. Когда вы закончите рисовать линию, отпустите кнопку "мыши". Если вы хотите ограничить изображаемые линии наклоном в 45 градусов, нажмите кнопку Shift. При нажатой кнопке Shift вы може- те рисовать горизонтальную, вертикальную линию или линии под уг- лом 45 градусов к ним. Вы можете рисовать линию, используя текущий основной или фо- новый цвет. - Для рисования текущим основным цветом (FG в палитре Colors) используйте левую кнопку "мыши". - Для рисования текущим фоновым цветом (BG в палитре Colors) используйте правую кнопку "мыши". Примечание: Если вы видите в палитре Colors (Цвета) FB, то этот цвет выбирается в качестве текущего основного и фонового цвета. Перед рисованием линии вы можете задать стиль линии и ее цвет (см. далее разделы "Выбор стиля линии", и "Работа с цвета- ми"). Средство изображения цвета ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД ЪДДДДДДДДДДДДї і ========= і і || і Текст і || і і || і АДДДДДДДДДДДДЩ Чтобы добавить к графическому изображению цвет, выберите инструментальное средство "Текст" и щелкните кнопкой "мыши" в том месте текста, где вы хотите начать ввод текста. Когда появится мерцающий курсор, вы можете начать набирать текст. Перед использованием инструментального средства "Текст" вы можете задать как и где нужно выводить текст. Это делается следу- ющим образом: - Для задания гарнитуры шрифта, его размера и стиля исполь- зуйте команду TextіFont (ТекстіШрифт). - Для задания выравнивания текста задайте команду TextіAlign (ТекстіВыравнивание). Более подробно об использовании команд меню Text рассказыва- ется в разделе "Добавление текста к ресурсу". Перед вводом текста не обязательно выбирать какую-либо из команд меню Text (Текст). Кроме того можно выбрать их немедленно после ввода текста (перед тем, как вы снова щелкните кнопкой "мы- ши"). Например, вы можете выбрать гарнитуру и размер перед тем, как будете набирать текст. Если вы заметите, что текст слишком велик и не умещается в изображении, можно выбрать команду Font снова и уменьшить размер текста. Текст всегда выводится текущим основным цветом. Перед вводом текста вы можете задать основной цвет, щелкнув левой кнопкой "мы- ши" на нужном цвете в палитре Colors (Цвета). Как и в случае гар- нитуры и размера, вы можете немедленно после набора текста изме- нить его цвет (см. также ниже раздел "Работа с цветами", где о выборе цветов рассказывается подробнее). Рисование пустых рамок ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД Ъ ЪДДДДДДДДДДДДї і і ЪДДДДДДДДї і і і і і і і і і і і і і АДДДДДДДДЩ і і ГДДДДДДДДДДДДґ і і ДДДДДДДД і Пустые Щ і і і і рамки ї і і і і і і ДДДДДДДД і і ГДДДДДДДДДДДДґ і і ДД і і і . . і і і ( ) і і і ДД і А АДДДДДДДДДДДДЩ Эти три инструментальных средства позволяют вам рисовать пустые рамки вашего графического изображения: прямоугольник, зак- ругленный прямоугольник и эллипс. Эти инструментальные средства рисуют рамку, используя теку- щий основной цвет и стиль линии. Чтобы нарисовать пустую рамку, сначала щелкните кнопкой "мы- ши" на соответствующей пиктограмме палитры инструментальных средств. Затем переместите перекрестье курсора в то место изобра- жения, где вы хотите разместить угол рамки, нажмите кнопку "мы- ши" и буксируйте инструментальное средство рамки пока контур рам- ки не будет заключать в себя нужную область, затем отпустите кнопку "мыши". Примечание: Если при рисовании с помощью одного из этих инструментальных средств вы нажмете клавишу Shift, то получите квадрат или круг. Цвет пустой рамки может быть либо текущим фоновым цветом, либо текущим основным цветом. - Для рисования текущим основным цветом (FG в палитре Colors) используйте левую кнопку "мыши". - Для рисования текущим фоновым цветом (BG в палитре Colors) используйте правую кнопку "мыши". Примечание: Если вы видите в палитре Colors (Цвета) FB, то этот цвет выбирается в качестве текущего основного и фонового цвета. Перед рисованием рамки вы можете задать толщину рамки и цвет (см. далее раздел "Выбор стиля линии"). Закрашенные рамки ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД ЪДДДДДДДДДДДДї ї і ЪДДДДДДДДї і і і і±±±±±±±±і і і і і±±±±±±±±і і і і АДДДДДДДДЩ і і ГДДДДДДДДДДДДґ і і ДДДДДДДД і і і і±±±±±±±±і і А Закрашенные і і±±±±±±±±і і Ъ рамки і ДДДДДДДД і і ГДДДДДДДДДДДДґ і і ДДДД і і і ±±±±±±±± і і і (±±±±±±±±) і і і ДДДД і і АДДДДДДДДДДДДЩ Щ Эти три инструментальных средства позволяют вам рисовать закрашенные рамки вашего графического изображения: прямоугольник, закругленный прямоугольник и эллипс. Эти инструментальные средства рисуют рамку, используя теку- щий и стиль линии. Рамка закрашивается с использованием текущего образца и цвета. Если вы не хотите, чтобы Пакет разработчика ре- сурсов рисовал контур рамки вокруг закрашенной области, выберите нулевую толщину пера. Чтобы нарисовать закрашенную рамку, сначала щелкните кнопкой "мыши" на соответствующей пиктограмме палитры инструментальных средств. Затем переместите перекрестье курсора в то место изобра- жения, где вы хотите разместить угол рамки, нажмите кнопку "мы- ши" и буксируйте инструментальное средство рамки пока контур рам- ки не будет заключать в себя нужную область, затем отпустите кнопку "мыши". Цвет рамки и заполнителя может быть либо текущим фоновым цветом, либо текущим основным цветом. - Для рисования текущим основным цветом (FG в палитре Colors) используйте левую кнопку "мыши". - Для рисования текущим фоновым цветом (BG в палитре Colors) используйте правую кнопку "мыши". Примечание: Если вы видите в палитре Colors (Цвета) FB, то этот цвет выбирается в качестве текущего основного и фонового цвета. Перед рисованием закрашенной рамки вы можете задать стиль линии, цвет и образец заполнителя (см. далее разделы "Выбор стиля линии", "Работа с цветами" м "Выбор образца закраски"). Инструментальное средство "Рука" ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД ||| \__ Иногда при выводе масштабированного изображения оно не уме- щается целиком на экране. Для смещения изображения, благодаря че- му вы будете видеть отдельные его части, можно использовать инс- трументальное средство "Рука". В отличие от других инструменталь- ных средств данное инструментальное средство не включено в палитру инструментальных средств. Но с помощью нажатия клавиши Ctrl вы можете временно изменить любое инструментальной средство на инс- трументальной средство "Рука". Вы можете рассматривать это средство как инструмент "захва- та", поскольку вы можете просто щелкнуть "рукой" на графическом изображении и буксировать его в том направлении, куда его нужно переместить. Предположим, например, что верхний левый угол выведен на эк- ран, и вы хотите видеть правый верхний угол. Вы можете нажать (и удерживать в нажатом состоянии) клавишу Ctrl и превратить текущее инструментальное средство в "руку". Затем захватите правую сторо- ну выводимого на экран изображения и буксируйте его влево. По ме- ре буксировки левая часть исчезает из поля зрения, а правая часть становится видимой. Когда вы отпустите клавишу Ctrl, текущее инс- трументальное средство становится видимым. ЪДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДї і і і і і ±±±±±±±±±±±±±±±±±±± і і ± ||| ±і і ±± \__ і і ±± і і ±± і і ±± і і ±± і і ±± і і ±± і і ±± і і ±± і АДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЩ Захват изображения... ЪДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДї і і і і і і і і і ±±±±±±±±±±±±±±±±±±± і і± ||| ±±±± і і \__ ±± і і ±± і і ±± і і ±± і і ±± і і ±± і і ±± і і ±± і і ±± і і ±± і АДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЩ ... и перемещение его влево Рис. 8.4 Захват масштабированного изображения Более подробно о работе с масштабированными изображениями рассказывается ниже в разделе "Масштабирование". Выбор стилей ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД ЪДДДДДДДДДДДДДДДДДДДДДДДДДї і і Стили Форма кисти і * :' і і і Форма і і распылителя і і і ±±±±±±±±±±±±і і ±±±±±±±±±±±±і Образец ГДДДДДДДДДДДДД±±±±±±±±±±±±і Стиль пера і ±±±±±±±±±±±±і АДДДДДДДДДДДДДДДДДДДДДДДДДЩ В нижней части палитры инструментальных средств находится блок, содержащий четыре стиля, который указывает форму кисти, краскораспылителя, стили линий и образцы, которые вы можете рисо- вать. Вы можете щелкнуть кнопкой "мыши" на нужном стиле, который вы хотите изменить, или использовать для выбора стилей команду меню (более подробную информацию о выборе стилей можно найти ниже в разделах "Выбор формы кисти", "Выбор образца закраски" и "Выбор стиля линии"). Использование двух областей окна ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД В графическом редакторе вы можете получить два различных изображения графического образа, который вы создаете и редактиру- ете. Чтобы два изображения выводились рядом, вы можете разделить окно вертикально. Либо можно разделить окно горизонтально, и выв- водить изображения одно под другим. Например, вы можете разделить окно вертикально и вывести весь образ в его фактическом размере в правой области и в увели- ченном - в левой. ЪДДДВДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДВДДДВДДДї і - і CURSOR : CURSOR_1 і v і ^ і ГДДДБДДДДДДДДДДДДДДДДДДДДДДДДДДДДДВДДДВДДДДДДДДДДДДДДДДДЕДДДЕДДДґ і і - і Colors і - і X і ГДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДВДВЕДДДБДДДДДДДВДДДДДДДДДЕДДДЕДДДґ і±±±±±±±±±±±±±±±±±±±±±±± ±±±±±±і^іі±±±±FG±±±±±і BG іЦ _і П і і±±±±±±±±±±±±±±±±±±±±±±± ±±±±±±ГДґГДДДДДДДДДДДЕДДДДДДДДДЕДДДЕДДДґ і±±±±±±±±±±±±±±±± ±і±ііTransparentіInverted і±\±і п і і±±±±±±±±±±±±± ±±±±±±± ±±±±± іІіГДДДДДДДДДДДЕДДДДДДДДДЕДДДЕДНДґ і±±±±±±±±±± ±±±±±±±±±±±±±±±±±іІіі±±±±±±±±±±±іІІІІІІІІІі Ъ і\\ і і±±±±±±±± ±±±±±±±±±±±± ±±±±±±іІіАДДДДДДДДДДДБДДДДДДДДДЕДДДЕДДДґ і±±±±±±± ±±±±±±±±±±±±±± ±±±±±±іІі і \ і Т і і±±±±±± ±±±±±±±±±±±±±±±± ±±±±±±іІі ГДДДЕДДДґ і±±±±±± ±±±±±±±±±±±±±±±±±±±±±±±іІі іі іі ± і і±±±±±± ±±±±±±±±±±±±±±±± ±±±±±±іІі ГДДДЕДДДґ і ±±± ±± ±±±іІі і О і * і і±±±±±± ±±±±±±±±±±±±±±±± ±±±±±±іІі ±±|±± ГДДДЕДДДґ і±±±±±± ±±±±±±±±±±±±±±±±±±±±±±±іІі --|-- і o і * і і±±±±±±± ±±±±±±±±±±±±±± ±±±±±±іІі ±±|±± ГДДДЕДДДґ і±±±±±±±± ±±±±±±±±±±±±± ±±±±±±іІі і . і . і і±±±±±±±±±± ±±±±±±±±±±± ±±±±±±іІі ГДДДЕДДДґ і±±±±±±±±±±±± ±±±±±±±±± ±±±±±±ГДґ і і І і і±±±±±±±±±±±±±± ±±±±±± ±±±±±±іvі АДДДБДДДґ ГДВДДДДДДДДДДДДДДДДДДДДДДДДДДВДЕДґ і і<і±ІІІІІІІІІІІІІІІІІІІІІІІІІі>і і і АДБДДДДДДДДДДДДДДДДДДДДДДДДДДБДБДБДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЩ Рис. 8.5 Разделенный экран графического редактора Colors - цвета; FG - основной; BG - фоновый; Transparent - прозрачный; Inverted - инвертированный Для выбора одного из графических изображений щелкните на этом изображении кнопкой "мыши". Если вы хотите видеть большую часть изображения, вы можете переместить курсор на разделяющую области линию и, когда курсор принимает форму двойной стрелки, выполнить буксировку линии-раз- делителя. Например, при вертикальном разделении окон вы можете отбуксировать разделитель вправо и увидеть большую часть увели- ченного изображения. Если вы отбуксируете разделитель на макси- мальное расстояние вправо, то получите одно изображение. ЪДДДВДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДВДДДВДДДї і - і CURSOR : CURSOR_1 і v і ^ і ГДДДБДДДДДДДДДДДДДДДДДДДДДДДДДДДДДВДДДВДДДДДДДДДДДДДДДДДЕДДДЕДДДґ і і - і Colors і - і X і ГДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЕДДДБДДДДДДДВДДДДДДДДДЕДДДЕДДДґ і ±±±±±±±±±±±±±±±±±±±±±±±±±±±±±і±±±±FG±±±±±і BG іЦ _і П і і ±±±±±±±±±±±±±±±±±±±±±±±±±± ГДДДДДДДДДДДЕДДДДДДДДДЕДДДЕДДДґ і ±±±±±±±±±±±±±±±±±±±±±±± ±±±іTransparentіInverted і±\±і п і і ±±±±±±±±±±±±±±±±±±±±± ±±±±±±ГДДДДДДДДДДДЕДДДДДДДДДЕДДДЕДНДґ і ±±±±±±±±±±±±±±±±±±± ±±±±±±±±і±±±±±±±±±±±іІІІІІІІІІі Ъ і\\ і і ±±±±±±±±±±±±±±±±± ±±±±±±±±±±АДДДДДДДДДДДБДДДДДДДДДЕДДДЕДДДґ і ±±±±±±±±±±±±±±± ±±±±±±±±±±±±±± ±±±±±±±±±±±±±±±± ±±і \ і Т і і ±±±±±±±±±±±±±± ±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±± ±ГДДДЕДДДґ і ±±±±±±±±±±±±±± ±±±±±±±±±±±±±±±± ±±±±±±±±±±±±±±±±±± іі іі ± і і ±±±±±±±±±±±±±± ±±±±±±±±±±±±±±±± ±±±±±±±±±±±±±±±±±± ГДДДЕДДДґ і ± ±±± ±± ±± ±± і О і * і і ±±±±±±±±±±±±±± ±±±±±±±±±±±±±±±± ±±±±±±±±±±±±±±±±± ГДДДЕДДДґ і ±±±±±±±±±±±±±± ±±±±±±±±±±±±±±±± ±±±±±±±±±±±±±±± ±±і о і * і і ±±±±±±±±±±±±±±± ±±±±±±±±±±±±±±±±±±±±±±±±±±±± ±±±±ГДДДЕДДДґ і ±±±±±±±±±±±±±±±± ±±±±±±±±±±±±±±±±±±±±±±±±± ±±±±±і . і . і і ±±±±±±±±±±±±±±±±±± ±±±±±±±±±±± ±±±±±±±±± ±±±±±±±ГДДДЕДДДґ і ±±±±±±±±±±±±±±±±±±±± ±±±±±±±±± ±±±±±±± ±±±±±±±±±±і і І і і ±±±±±±±±±±±±±±±±±±±±±± ±±±±±± ±±±±± ±±±±±±±±±±±±АДДДБДДДґ і ±±±±±±±±±±±±±±±±±±±±±±±±± ±±±±±±±±±±±±±± і і ±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±± ±±±±±±±±±±±±±±±±±±± і АДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЩ Рис. 8.6 Увеличенное изображение, занимающее всю область ре- дактирования В приведенном примере линия-разделитель была отбуксирована вправо, и область, которая находилась справа, полностью исчезла из поля зрения. Для ее возврата и управления режимом вывода об- ластей графического редактора можно использовать меню View (Прос- мотр). ЪДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДї і±Zoom±in±±±±±±±±±±±±±±±±±±Ctrl+Z±±і Увеличение размера і Zoom out Ctrl+O і Уменьшение размера і Actual size Crtl+A і Реальный размер ГДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДґ і CGA resolution [32x16] і Разрешение CGA ГДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДґ і Split horizontal і Горизонтальное і Split vertical і разделение АДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЩ Вертикальное разделение Рис. 8.7 Меню View Команды Split Horizontal (Горизонтальное разбиение) и Split Vertical (Вертикальное разбиение) можно использовать для управле- ния выводом двух областей при отображении ресурса. Другие команды меню View позволяют вам управлять масштабированием изображения (как описывается в следующем разделе). Для пиктограмм и курсоров это окно содержит дополнительную команду - CGA Resolution [32x16]. О масштабировании пиктограмм и курсоров мы расскажем позднее. Масштабирование ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД Пакет разработчика ресурсов может выводить графическое изоб- ражение в его фактическом размере или увеличивать масштаб до 1600%. Вы можете использовать для масштабирования любой из двух областей графического редактора инструментальное средство "Масш- табирование" или меню View (Просмотр). С помощью инструментального средства "Масштабирование" вы можете выделить область графического изображения, которую нужно масштабировать. Пакет разработчика ресурсов использует для данной области соответствующее процентное масштабирование. Если вы ис- пользуете инструментальное средство "Масштабирование", Пакет раз- работчика ресурсов может увеличивать изображение до 1600% (шагами по 100%). Уменьшать и увеличивать изображение можно также с помощью меню Vew. При помощи меню View вы можете увеличивать графическое изображение до 400, 800, 1200 или 1600% и обратно до его факти- ческого размера. Примечание: Использование данного меню имеет тот же эффект, что и двойное нажатие кнопки "мыши" на пиктограмме "Масштабирование" (увеличение размера) или Shift+ двойное нажатие кнопки "мыши" (уменьшение размера). Поскольку имеется две области, возникает вопрос, как опреде- лить, для какой из них используется масштабирование или меню View? Это очень просто: текущую область (то окно, с которым вы последний раз работали) окна отслеживает Пакет разработчика ре- сурсов. Если вы последний раз работали в левой области, то при выборе команды ViewіZoom In (ПросмотріУвеличение) увеличивается данная область. Чтобы сделать окно текущим, вы можете использо- вать любое инструментальное средство, щелкнув где-либо в области кнопкой "мыши". Если масштабируемое изображение занимает всю об- ласть окна, иногда желательно использовать такое инструментальное средство, которое не даст возможности что-нибудь случайно нарисо- вать, например, "Выбор прямоугольника" или "Ножницы". Использование акселераторов масштабирования ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД Акселераторы, перечисленные в меню View, существенно облег- чают масштабирование. Например, если вы хотите повторно увеличить или уменьшить размер настраиваемого изображения, гораздо проще нажать нескольку раз клавиши Ctrl+Z или Ctrl+O, чем повторно вы- бирать команды меню. Вы можете также дважды щелкнуть кнопкой "мы- ши" на пиктограмме "Масштабирование" палитры инструментальных средств для увеличения изображения или нажать клавишу Shift и дважды щелкнуть кнопкой "мыши" для его уменьшения. Нажатие клавиш Ctrl+A возвращает изображению его реальный (фактический) размер. Команды масштабирования Таблицы 8.1 ЪДДДДДДДДДДДДДДДДДДДВДДДДДДДДДДДДДДДДДДДДДДДВДДДДДДДДДДДДДДДДДДДї і Команды View і Клавиша акселератора і Кнопка "мыши" в і і і і пиктограмме і і і і "Масштабирование" і ГДДДДДДДДДДДДДДДДДДДЕДДДДДДДДДДДДДДДДДДДДДДДЕДДДДДДДДДДДДДДДДДДДґ і Zoom in і Ctrl+Z і Shift+ двойное на-і і (Увеличение і і жатие кнопки "мы-і і изображения) і і щи" і і і і і ГДДДДДДДДДДДДДДДДДДДЕДДДДДДДДДДДДДДДДДДДДДДДЕДДДДДДДДДДДДДДДДДДДґ і Zoom out і Ctrl+O і Двойное нажатиеі і (Уменьшение і і кнопки "мыши" і і размера) і і і і і і і ГДДДДДДДДДДДДДДДДДДДЕДДДДДДДДДДДДДДДДДДДДДДДЕДДДДДДДДДДДДДДДДДДДґ і Actual size і Ctrl+A і Нет. і і (Нормальный і і і і размер) і і і і і і і АДДДДДДДДДДДДДДДДДДДБДДДДДДДДДДДДДДДДДДДДДДДБДДДДДДДДДДДДДДДДДДДЩ Определение масштабируемой части изображения ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД Если вы увеличите графическое изображение настолько, что оно не будет помещаться в области, Пакет разработчика ресурсов рисует вокруг немасштабированного графического изображения пунктирный прямоугольник (из точек). Этот прямоугольник указывает ту часть графического изображения, которая в данный момент выводится в масштабированной области окна. ЪДДДВДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДВДДДВДДДї і - і ICON : ICON_1 32x32 16 Colors і v і ^ і ГДДДБДДДДДДДДДДДДДДДДДДДДДДДДДДДДДВДДДВДДДДДДДДДДДДДДДДДЕДДДЕДДДґ і і - і Colors і - і X і ГДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДВДВЕДДДБДДДДДДДВДДДДДДДДДЕДДДЕДДДґ і±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±і^іі±±±±FG±±±±±і BG іЦ _і П і і±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±ГДґГДДДДДДДДДДДЕДДДДДДДДДЕДДДЕДДДґ і±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±і±ііTransparentіInverted і±\±і п і і±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±іІіГДДДДДДДДДДДЕДДДДДДДДДЕДДДЕДНДґ і±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±іІіі±±±±±±±±±±±іІІІІІІІІІі Ъ і\\ і і±±±±±±± іІіАДДДДДДДДДДДБДДДДДДДДДЕДДДЕДДДґ і±±±±±±± ІІІІІІІІІІІІІІІІІІІІІІіІі і \ і Т і і±±±±±±± І±±±±±±±±±±±±±±±±±±±±±іІі ГДДДЕДДДґ і±±±±±±± І±±±±±±±±±±±±±±±±±±±±±іІі іі іі ± і і±±±±±±± ІІІІІІІІІІІІІІІІІІІІІІіІі ГДДДЕДДДґ і±±±±±±± іІі ..... і О і * і і±±±±±±± іІі .±±±.± ГДДДЕДДДґ і±±±±±±± іІі Ъ> .....± і о і * і і±±±±±±± іІі і ±±±±± ГДДДЕДДДґ і±±±±±±± іІі і і . і . і і±±±±±±± іІі і ГДДДЕДДДґ і±±±±±±± ГДґ Пунктирная линия і і І і і±±±±±±± іvі ограничивает часть АДДДБДДДґ ГДВДДДДДДДДДДДДДДДДДДДДДДДДДДВДЕДґ графического изображения, і і<і±ІІІІІІІІІІІІІІІІІІІІІІІІІі>і і видимую в левой области і АДБДДДДДДДДДДДДДДДДДДДДДДДДДДБДБДБДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЩ Рис. 8.5 Масштабированная область и оконтуренное точками не- масштабированное изображение Colors - цвета; FG - основной; BG - фоновый; Transparent - прозрачный; Inverted - инвертированный Перемещение масштабированного графического изображения ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД Если масштабированное изображение слишком велико и не может поместиться в экране, Пакет разработчика ресурсов выводит полосы прокрутки, которые позволяют вам перемещать графическое изображе- ние по экрану, благодаря чему вы можете видеть различные его час- ти. Вы можете также для захвата изображения и его перемещения инструментальное средство "Рука". Для этого нажмите клавишу Ctrl, после чего текущее инструментальное средство принимает форму ру- ки, затем щелкните кнопкой "мыши" на изображении и буксируйте его в направлении желаемого перемещения. Если вы хотите переместить масштабированное изображение на величину, превышающую размер эк- рана, возможно вам придется повторить этот процесс несколько раз. Примечание: Подробнее об инструментальном средстве "Ру- ка" см. выше. Если графическое изображение выводится также в неувеличенном виде в другой области окна, вы можете наблюдать за оконтуренной точками областью, которая изменяется при просмотре различных час- тей увеличенного изображения. Вывод сетки в окне с масштабированным изображением ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД Чтобы вы могли работать с областями на поэлементной основе, с помощью выбора команды OptionsіEditor Options (ПараметрыіПара- метры редактирования) и нажатия кнопки "мыши" на параметре Grid On Zoomed Windows (Сетка на масштабированных окнах) можно вывести сетку. Каждый элемент сетки соответствует одному элементу изобра- жения. ЪДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДї і ±і±і±і±і±і±і±і±і±і±і±і±і±і±і±і±і і±і±і±і±і±і±і±і±і±і±і±і±і±і± і і ДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕД і і ±і±і±і±і±і±і±і±і±і±і±і±і і і і і і і і і±і±і±і±і±і±і±і±і±і±і± і і ДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕД і і ±і±і±і±і±і±і±і±і±і±і і і±і±і±і±і і±і±і±і±і і і±і±і±і±і±і±і±і± і і ДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕД і і ±і±і±і±і±і±і±і±і і і±і±і±і±і±і±і±і±і±і±і±і±і±і і і±і±і±і±і±і± і і ДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕД і і ±і±і±і±і±і±і±і і±і±і±і±і±і±і±і±і і±і±і±і±і±і±і±і±і і±і±і±і±і± і і ДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕД і і і і і і і і і і і±і і і±і±і і і і і±і±і і±і і±і і і і і і і і і ДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕД і і ±і±і±і±і±і±і±і і±і±і±і±і±і±і±і±і і±і±і±і±і±і±і±і±і і±і±і±і±і± і і ДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕД і і ±і±і±і±і±і±і±і±і і і±і±і±і±і±і±і±і±і±і±і±і±і±і і і±і±і±і±і±і± і і ДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕД і і ±і±і±і±і±і±і±і±і±і±і і і±і±і±і±і і±і±і±і±і і і±і±і±і±і±і±і±і± і і ДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕД і і ±і±і±і±і±і±і±і±і±і±і±і±і±і і і і і і і і±і±і±і±і±і±і±і±і±і±і± і і ДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕД і і ±і±і±і±і±і±і±і±і±і±і±і±і±і±і±і±і і±і±і±і±і±і±і±і±і±і±і±і±і±і± і АДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЩ Рис. 8.9 Увеличенное графическое изображение с наложенной сеткой Чтение строки состояния ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД В нижней части экрана графического редактора выводится раз- деленная на две части строка состояния, в которой выводится ин- формация о командах и графических средствах. Правая часть: информация о текущем инструменте рисования ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД В правой части строки состояния говорится о том, какое средство рисования вы в данный момент используете, и где оно на- ходится на экране. Здесь вы можете также видеть информацию о цве- те (в зависимости от используемого вами инструментального средс- тва). Сообщение об используемом инструментальном средстве зависит от того, какое средство рисования вы используете, и где оно нахо- дится на экране. Приведем два примера сообщений с соответствующи- ми пояснениями. Line x: 18 y: 32 Данное сообщение показывает, что вы выбрали инструментальное средство "Линия", которое находится в элементе изображения с ко- ординатами 18,32. Координаты в элементах изображения отсчитывают- ся от верхнего левого угла графического изображения. Если вы пе- ремещаетесь к правому краю изображения, значение X увеличивается, а если вы перемещаетесь в нижнюю часть изображения, увеличивается значение Y. Brush x: 20 y: 37 R: 128 G: 0 B: 0 Palette Index: 1 Данное изображение показывает, что вы выбрали средство "Кисть", которое находится в точке с координатами 20,37, Значения R, G и B на значение цвета (красный, зеленый и голубой) с точке с данными координатами. Цветом графического изображения в точке 20, 37 является цвет 1 индекса цветовой палитры, который имеет значе- ние 128 (красный). Примечание: Увидеть номера индекса палитры и значения RGB можно при двойном нажатии кнопки "мыши" в палитре цве- тов (Colors). Вы можете также увидеть индекс палитры и установки RGB для цвета в точке курсора, если вы выбираете перо, краскораспылитель или банку с краской. Примечание: Более подробно о значениях RGB и индексах палитры рассказывается в разделе "Настройка цветов". Левая часть: пояснение команд меню ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД Когда вы щелкаете кнопкой "мыши" на команде меню или исполь- зуете клавиши акселераторов, в левой части строки состояния гра- фического редактора выводится более подробная информация о теку- щей подсвеченной команде. Например, выберите команду View вы переместите курсор на команду Zoom In (Увеличение изображения). В строке состояния вы- водится сообщение Magnify active window (Увеличение изображения активного окна). Когда вы подсветите другую команду меню View (с помощью "мыши" или клавиш стрелок), строка состояния выводит по- яснение по данной команде. Например, если вы подсветите команду Zoom Out (Уменьшение изображения), то в строке состояния выводит- ся сообщение Reduce active window (Уменьшение изображения актив- ного окна). Работа с цветами ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД Если вы редактируете ресурс в графическом редакторе, то мо- жете использовать палитру Colors (Цвета) для выбора нужных цветов. (В данном руководстве цвет не показан, но вы можете уви- деть его на экране.) ЪДДДВДДДДДДДДДДДДДДДДДДДї і - і Colors і ГДДДБДДДДДДДВДДДДДДДДДДДґ і±±±±FG±±±±±і BG і ГДДДДДДДДДДДЕДДДДДДДДДДДґ іTransparentі Inverted і ГДДДДДДДДДДДЕДДДДДДДДДДДґ і±±±±±±±±±±±іІІІІІІІІІІІі АДДДДДДДДДДДБДДДДДДДДДДДЩ Рис. 8.10 Палитра Colors с 16 цветами Colors - цвета; FG - основной; BG - фоновый; Transparent - прозрачный; Inverted - инвертированный Вы можете работать с палитрой цветов даже в том случае, если у вас черно-белое изображение. В любой момент палитру цветов мож- но убрать с экрана или вывести на экран. Вы можете использовать палитру цветов в следующих целях: - выбора фонового цвета; - выбора основного цвета; - выбора прозрачных и инвертированных областей (только для пиктограмм и курсоров); Выбор для ресурса числа цветов ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД Когда вы создаете новый битовый массив или пиктограмму, Па- кет разработчика ресурсов выводит диалоговое окно, позволяющее вам выбрать, сколько цветов вы хотите включить в ресурс. Напри- мер, если вы создаете новый битовый массив, Пакет разработчика ресурсов выводит диалоговое окно New Bitmap Attributes (Атрибуты нового битового массива). ЪДДДВДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДї і - і New Bitmap Attributes і ГДДДБДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДґ і Size і і ЪДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДї і і і ЪДДДДДДДДДДДДДДДДДДДДїі і і і Width in pixels і±64± іі і і і АДДДДДДДДДДДДДДДДДДДДЩі і і і ЪДДДДДДДДДДДДДДДДДДДДїі і і і Height in pixels і 64 іі і і і АДДДДДДДДДДДДДДДДДДДДЩі і і АДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЩ і і Colors і і ЪДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДї і і і і і і і > 2 color і і і і і і і і > 16 color і і і і і і і і <* 256 color і і і і і і і АДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЩ і ГДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДґ і ЪДДДДДДДДДДДї ЪДДДДДДДДДДДї ЪДДДДДДДДДДДї і і і _ і± і і± і і± і і і V OK і± і X Cancel і± і ? Help і± і і АДДДДДДДДДДДЩ± АДДДДДДДДДДДЩ± АДДДДДДДДДДДЩ± і і ±±±±±±±±±±±± ±±±±±±±±±±±± ±±±±±±±±±±±± і і і АДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЩ Рис. 8.11 Диалоговое окно New Bitmap Attributes New Bitmap Attributes - новые атрибуты битового массива; Size - размер; Width in pixels - ширина в элементах изображения; Height in pixels - высота в элементах изображения; Colors - цве- та; OK - выбор; Cancel - отмена; Help - справка При редактировании битового массива или пиктограммы с по- мощью команды Size and Attributes (Размер и атрибуты) вы можете изменить число цветов в графическом изображении. Данная команда находится в меню Bitmap (Битовый массив) или в меню Icon (Пиктог- рамма), в зависимости от типа ресурса, который вы в данный момент редактируете. Для ресурсов, представляющих собой битовые массивы и пиктог- раммы, вы можете включить в ресурс до 256 цветов. Число цветов, которые вы можете использовать (и видеть в цветовой палитре Colors), зависит от типа используемого с Windows драйвера дисп- лея. Например, стандартный драйвер Windows VGA поддерживает фик- сированный набор только 16 цветов. Если вы хотите видеть цвета, отличные от тех, которые находятся в фиксированном наборе, нужно использовать другой драйвер дисплея, например поставляемый с Windows драйвер Video 7 (данный драйвер требует также платы Video 7 VRAM с не менее 512 К памяти), или, если у вас есть плата super -VGA, драйвер Extended VGA (EVGA), поставляемый изготовителем платы. Использование основного цвета ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД Чтобы использовать основной цвет, сделайте следующее: 1. Щелкните левой кнопкой "мыши" на нужном цвете в палитре Colors (Цвета). На этом цвете появляются буквы FG (если вы не выбрали уже фоновый цвет - в этом случае вы увидите буквы FB). 2. В палитре инструментальных средств выберите средство ри- сование или закраски, и, щелкнув левой кнопкой "мыши" на инструментальном средстве, с помощью его буксировки нари- суйте что-либо основным цветом. Средство стирания ("Ластик") работает в обратном по отноше- нию к средствам рисования режиме.Буксировка с помощью левой кноп- ки "мыши" дает фоновый цвет, а буксировка с нажатой правой кноп- кой - основной цвет. Использование фонового цвета ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД Чтобы использовать фоновый цвет, сделайте следующее: 1. Щелкните правой кнопкой "мыши" на нужном цвете в палитре Colors (Цвета). На этом цвете появляются буквы BG (если вы не выбрали уже основной цвет - в этом случае вы увиди- те буквы FB). 2. В палитре инструментальных средств выберите средство ри- сование или закраски, и, щелкнув правой кнопкой "мыши" на инструментальном средстве. с помощью его буксировки нари- суйте что-либо фоновым цветом. Средство стирания ("Ластик") работает в обратном по отноше- нию к средствам рисования режиме. Буксировка с помощью левой кноп- ки "мыши" дает фоновый цвет, а буксировка с нажатой правой кноп- кой - основной цвет. Включение в курсор или пиктограмму прозрачных или инвертированных областей ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД Прозрачные и инвертированные области позволяют во время вы- полнения видеть изображение сквозь отдельные части курсора или пиктограммы. - Прозрачная область позволяет наблюдать цвет изображения через пиктограмму или курсор. - Инвертированная область ведет себя также как прозрачная, но инвертирует цвет изображения в том месте, куда вы поме- щаете курсор или пиктограмму. Например, когда вы помещаете инвертированную часть пиктограммы в черную область, черный цвет за инвертированной частью пиктограммы выводится бе- лым. Если вы перемещаете инвертированную часть пиктограммы на белую область, белый цвет за инвертированной областью становится черным. Примечание: Вы можете выбрать инвертированную и проз- рачную область с фоновым и основным "цветами". Использование атрибутов transparent и inverted ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД Атрибуты transparent (прозрачный) и inverted (инвертирован- ный) можно выбрать также, как вы выбираете цвет в палитре Colors (выводятся установки Transparent и Inverted), и затем выполнять рисование и закраску прозрачных и инвертированных областей также, как рисование основным и фоновым цветом. Однако в отличие от основного и фонового цветов, вы не може- те полностью управлять тем, что будет выводиться в прозрачной и инвертированной области при использовании программой пиктограммы или курсора. Цвет будет выводиться в зависимости от области за курсором или пиктограммой. ЪДДДВДДДДДДДДДДДДДДДДДДДДДДї і - і Colors і ГДДДБДДДДДДДДДДДДДДДДДДДДДДґ іFG°°°°±±±±ІІІІ°°°°±±±±ІІІІі і°°±±±±ІІІІ°°°°±±±±ІІІІІІBGі ГДДДДДДДДДДДДВДДДДДДДДДДДДДґ іTransparent і Inverted і ГДДДДДДДДДДДДЕДДДДДДДДДДДДДґ і±±±±±±±±±±±±іІІІІІІІІІІІІІі АДДДДДДДДДДДДБДДДДДДДДДДДДДЩ Рис. 8.12 Палитра Colors с прозрачным и инвертированным цве- тами Colors - цвета; FG - основной; BG - фоновый; Transparent - прозрачный; Inverted - инвертированный Длинные прямоугольники, которые представляют Transparent и Inverted показывают также, каким цветом будут выводиться прозрач- ные и инвертированные области при редактировании курсора или пик- тограммы. Если прямоугольник под Transparent (Прозрачный) выво- дится бирюзовым цветом, все прозрачные области графического изображения, которые вы рисуете, будут бирюзовыми, а инвертиро- ванные области - красными (инвертирование бирюзового цвета). Более подробно о включении в курсоры или пиктограммы проз- рачных и инвертированных областей рассказывается в Главе 9 "Соз- дание пиктограмм" и в Главе 10 "Создание курсоров". Вывод и отмена вывода палитры цветов ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД Если вы хотите отменить вывод палитры цветов, ее можно закрыть, дважды щелкнув кнопкой "мыши" на пиктограмме системного меню в верхнем левом углу палитры. Вы можете также использовать команды Hide Palette (Скрыть палитру) и Show Palette (Вывести палитру). Меню, где содержатся эти команды, зависят от типа редактируемого в данный момент ре- сурса. Например, если вы редактируете пиктограмму, то найдете ко- манды Hide Palette (Скрыть палитру) и Show Palette (Вывести па- литру) в меню Icon (Пиктограмма). В каждый момент выводится только одна из этих команд. Если палитра цветов выводится на экран, то вы увидите только команду Hide Palette. Команда Show Palette выводится только в том случае, если палитра цветов скрыта. Настройка цветов ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД Если вы редактируете цветной битовый массив или пиктограмму, то можно модифицировать палитру Colors и включить любой цвет, поддерживаемый драйвером дисплея. Если палитра цветов Colors уже включает в себя все цвета, поддерживаемые вашим компьютером, то это не имеет смысла. Но если ваш драйвер дисплея может выводить 256 цветов, и вы работаете с 16-цветным графическим изображением, то в 16-цветную палитру можно включить любой из 256 цветов. В следующих разделах описывается, как можно редактировать любой из цветов палитры Colors, включая прозрачные и инвертиро- ванные. Редактирование цветов палитры Colors ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД Для редактирования цвета сделайте следующее: - Дважды щелкните на нем кнопкой "мыши". - Выделите его, как основной или фоновый цвет, затем выбери- те команду IconіEdit Foreground Colos (ПиктограммаіРедак- тирование основного цвета) или команду IconіEdit Background Colos (ПиктограммаіРедактирование фонового цве- та). Пакет разработчика ресурсов выводит диалоговое окно Edit Color (Редактирование цвета). ЪДДДВДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДї і - і Edit color і ГДДДБДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДґ і ЪДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДї і і і і і і і Palette index 9 і і і і і і і АДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЩ і і ЪДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДї і і і і і і і ±±±±±±± °°°°°°° і і і і ±±±±±±± °°°°°°° і і і і ±±±±±±± °°°°°°° і і і і і і і і Requested Granted і і і і і і і і ЪДДДДї ЪДДДДї ЪДВДДДДДДДДДДДДДДДДВДїі і і і і і і255 і Red і<і°°°°°°°°°°°°°°°Іі>іі і і і АДДДДЩ АДДДДЩ АДБДДДДДДДДДДДДДДДДБДЩі і і і ЪДДДДї ЪДДДДї ЪДВДДДДДДДДДДДДДДДДВДїі і і і і0 і і0 і Green і<іІ±±±±±±±±±±±±±±±і>іі і і і АДДДДЩ АДДДДЩ АДБДДДДДДДДДДДДДДДДБДЩі і і і ЪДДДДї ЪДДДДї ЪДВДДДДДДДДДДДДДДДДВДїі і і і і0 і і0 і Blue і<і°ІІІІІІІІІІІІІІІі>іі і і і АДДДДЩ АДДДДЩ АДБДДДДДДДДДДДДДДДДБДЩі і і АДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЩ і ГДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДґ і ЪДДДДДДДДДї ЪДДДДДДДДДї ЪДДДДДДДДДї ЪДДДДДДДДДї ЪДДДДДДДДДї і і і _ і±і і±і і±і і±і і± і і і V OK і±і X Cancelі±і ЧDefaultі±і Ш Systemі±і ? Help і± і і АДДДДДДДДДЩ±АДДДДДДДДДЩ±АДДДДДДДДДЩ±АДДДДДДДДДЩ±АДДДДДДДДДЩ± і і ±±±±±±±±±± ±±±±±±±±±± ±±±±±±±±±± ±±±±±±±±±± ±±±±±±±±±± і і і АДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЩ Рис. 8.13 Диалоговое окно Edit Color Edit color - редактирование цвета; Palette index - индекс палитры; Requested - запрошено; Granted - предоставлено; Red - красный; Green - зеленый; Blue - голубой; OK - выбор; Cancel - отмена; Default - по умолчанию; System - системный; Help - справ- ка. Индекс палитры Чтобы вы могли идентифицировать, где цвет включается в па- литру Colors, диалоговое окно Edit Color показывает в верхней части его индекс. Блоки палитры Colors нумеруются в каждой строке слева-напра- во, начиная с нулевого (верхнего левого) блока. Прозрачный и ин- вертированный блоки сюда не включаются. Например, в палитре из 16 цветов цвета нумеруются как пока- зано на следующем рисунке: 0 1 2 3 4 5 6 7 FG °°°°±±±±ІІІІ°°°° ±±±±ІІІІ °°°°±±±±ІІІІ°°°° ±±±±ІІІІ BG 8 9 10 11 12 13 14 15 Рис. 8.13 Индекс 16-цветной палитры Если вы выберите перо, кисть, банку с краской, краскораспылитель, и будете перемещать курсор по графическому изображению, наблюдая за правой частью строки состояния, то уви- дите индекс палитры и установки RGB для цвета в точки курсора. Примечание: Значения RGB указывают значения красного (R), зеленого (G) и голубого (B) цветов. Редактирование цвета Чтобы редактировать цвет, вы можете изменить значения RGB, набирая новые значения в левом столбце или используя скользящие маркеры в правой части диалогового окна. Пакет разработчика ре- сурсов выводит ближайший совпадающий цвет для нового значения RGB в блоке цвета слева (для 16-цветной палитры вы можете видеть раз- личные цвета, выводимые в данном блоке). В блоке цвета справа Па- кет разработчика ресурсов подбирает значения RGB для ближайшего цвета, допускаемого ограничениями текущей палитры. Вы видите только, что в этом правом блоке цвет изменяется на ближайшее зна- чение цвета, отличное от текущего. Например, если вы используете стандартный драйвер Windows VGA и редактируете красный цвет, то увидите, что значением RGB будет 255, 0, 0. Если вы изменяете зеленый на 50, а голубой - на 125, то в левом блоке цвета изменяются, а в правом - остаются те- ми же (значениями RGB правого блока будут 255, 0, 0, поскольку эти значения представляют цвет, ближайший к 255, 50, 125). Если вы измените голубой на 200, то увидите справа малиновый цвет (значения RGB 255,0,255), цвет VGA Windows, ближайший к 255, 50, 200. Примечание: Если вы вводите значение в левом столбце, чтобы это значение подействовало, щелкните кнопкой "мыши" в другом блоке столбца. Когда вы завершите изменение цветов, выберите командную кнопку OK или нажмите клавишу Enter. Этим вы поместите новый цвет в палитру цветов. Перед тем, как выйти из графического редактора, нужно выклю- чить параметр Save With Default Device Colors (Сохранение в ка- честве используемых по умолчанию цветов устройства). Это позволит Пакету разработчика ресурсов сохранить настроенную палитру. Выбе- рите команду OptionsіEditor Options (ПараметрыіПараметры редакто- ра) и убедитесь в отсутствие метки после параметра Save With Default Device Colors. Примечание: Пакет разработчика ресурсов может сохра- нять настроенные цвета только для 256-цветной палитры. Кнопка Default Командная кнопка Default (Используемые по умолчанию) извле- кает цвет из используемой по умолчанию палитры (хранимый объект Windows), который имеет тот же индекс, что и индекс палитры (по- казанный в верхней части диалогового окна). Кнопка System Кнопка System (Системные) извлекает из системной палитры цвет, который имеет тот же индекс, что и индекс палитры (показан- ный в верхней части диалогового окна). Для дисплеев VGA эта ко- мандная кнопка запрещена, так как драйвер VGA не поддерживает ло- гических палитр. Изменение цветов прозрачных и инвертированных областей ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД Изменение цветов, используемых для прозрачных и инвертируе- мых областей, аналогично изменению обычного цвета, но вы получае- те прозрачный и инвертированный "цвета" для пиктограмм и курсо- ров, а выводимое диалоговое окно изменяет два цвета сразу. Поскольку в зависимости от того, редактируете вы курсор или пик- тограмму, методы вывода диалогового окна различаются, эта тема подробнее освещается в главах, посвященных данным ресурсам (см. Главу 9 "Создание пиктограмм" и Главу 10 "Создание курсоров"). Добавление текста к ресурсу ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД Вы можете добавить текст к любому ресурсу, созданному с по- мощью графического редактора. Например, к пиктограмме можно доба- вить текст, представляющий имя программы. ЪДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДї і ±± ±± ±± ±± ±± ±± ±± ±±і і і і ІІІ ІІІ ІІІ І І І ІІІІІ і і І І І І І І І ІІ І І і і І ІІІ ІІІ І І І І І і і ІІ І ІІ І І І І І і і І І І І І І І ІІ І і і ІІІ І І І І І І І і і і і±± ±±±±±± ±± ±±±±±±±±±±±± ±±±±±±і і±±± ±±±±±±±±±±±±±± ±±± ±±±±±±±і і±±±±± ±±±±± ±±±±± ± ±±±±±±± ±і і± ±±±± ±± ±± ±±±± ±±±±±±±±і і±±±±±±±±±± ±± ±±±±±±±±±±±± ±±і АДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЩ Рис. 8.15 Пиктограмма, которая включает в себя текст Чтобы добавить к ресурсу текст, щелкните кнопкой "мыши" на пиктограмме "Текст" (буква Т в верхнем регистре), затем щелкните кнопкой "мыши" в том месте пиктограммы, где вы хотите начать текст. Пакет разработчика ресурсов выводит мерцающий текстовый курсор. Затем наберите нужный текст. ЪДДДДДДДДДДДДї і ========= і і || і Текст і || і і || і АДДДДДДДДДДДДЩ Чтобы определить характер вывода текста, можно использовать команды меню Text (Текст) либо непосредственно перед набором текста, либо непосредственно после него. Например, после того, как вы наберете текст, можно выбрать команду TextіAlign Center (ТекстіВыравнивание по центру) для центрирования текста по месту вставки или команду TextіFont (ТекстіШрифт) для вывода диалогово- го окна Select Font (Выбор шрифта) для выделения и изменения шрифта и размера текста. Кроме того, непосредственно после набора текста (и перед тем, как вы снова щелкните кнопкой "мыши"), вы можете изменить его цвет, выбрав новый цвет из палитры цветов Colors. Если вы хо- тите, чтобы текст выводился с использованием текущего фонового цвета, нажмите правую кнопку "мыши". Если после ввода текста вы щелкните кнопкой "мыши" на другом графическом тексте или в другом графическом изображении, то не сможете что-либо изменить в уже введенном тексте. При этом текст становится просто другой частью битового массива, как если бы вы рисовали там графическое изображение. Выравнивание текста ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД Для выравнивания текста используйте команды TextіAlign (ТекстіВыравнивание). Каждая из команд выравнивания управляет характером вывода текста относительно того места, где вы первоначально щелкнули кнопкой "мыши" перед набором текста. Вы можете использовать ко- манду Align (Выравнивание) либо перед набором текста, либо непос- редственно после этого. Предположим, например, что вы выбираете команду TextіAlign Left (ТекстіВыравнивание слева), затем использовали инструмен- тальное средство "Текст" для ввода в ваше графическое изображение пяти символов. При наборе символов они выравниваются в графичес- ком изображении вправо. Если вы выберите команду TextіAlign Center (ТекстіЦентрирование) буквы центрируются относительно того места, где вы первоначально щелкните кнопкой "мыши". Если вы вы- бираете команду TextіAlign Right (ТекстіВыравнивание справа) текст смещается влево относительно той позиции, где вы щелкните "мышью". Позиция первоначального щелчка "мышью" і і ЪДДДДДДДДДДДДДДДіДДДДДДДДДДДДДДДДДДДї і і і і і і і v і і і і выравнивание слева і і і і і АДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЩ Позиция первоначального щелчка "мышью" і і ЪДДДДДДДДДДДДДДДіДДДДДДДДДДДДДДДДДДДї і і і і v і і і і выравнивание по центру і і і і і АДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЩ Позиция первоначального щелчка "мышью" і ЪДДДДДДДДДДДДДДДДДДДДіДДДДДДДДДДДДДДї і і і і і і і v і і выравнивание справа і і і і і АДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЩ Рис. 8.16 Выравнивание текста Щелкнув кнопкой "мыши" на другом параметре, вы можете изме- нить выравнивание текста. Выбор шрифта, размера и стиля текста ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД Чтобы выбрать режим вывода текста, используйте непосредс- твенно перед вводом текста или после завершения его набора ис- пользуйте команду TextіFont (ТекстіШрифт) Если вы щелкните кнопкой "мыши" на другом параметре, то шрифт набираемого текста изменится. После того как вы выберите команду Font (Шрифт), Пакет раз- работчика ресурсов выводит диалоговое окно Select Font (Выбор шрифта). ЪДДДВДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДї і - і Select font і ГДДДБДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДґ і ЪДДДДДДДДДДДДДДДДДДДДї ЪДДДДДДДДДДДДДДДДДї Style і і і Face name і і Size і ЪДДДДДДДДДДДДДДДДДїі і іЪДДДДДДДДДДДДДДДДВДїі іЪДДДДДДДДДДДДДДДїі і ЪДї іі і іі Courier і^іі іі 12 іі і іVі Bold іі і іі±Helvetica±±±±±±ГДґі іАДДДДДДДДДДДДДДДЩі і АДЩ іі і іі Modern іІіі іЪДДДДДДДДДДДДДВДїі і ЪДї іі і іі Roman і±іі іі 8 і^іі і іVі Italic і іі і іі Script і±іі іі 10 ГДґі і АДЩ ДДДДДДДЩ іі і іі Symbol і±іі іі±12±±±±±±±±±±іІіі і ЪДї іі і іі System і±іі іі 14 і±іі і і і Underline іі і іі Terminal ГДґі іі 18 ГДґі і АДЩ іі і іі іvіі іі 24 іvіі і ЪДї іі і іАДДДДДДДДДДДДДДДДБДЩі іАДДДДДДДДДДДДДБДЩі і і і Strikeout іі і і і і і і АДЩ іі і АДДДДДДДДДДДДДДДДДДДДЩ АДДДДДДДДДДДДДДДДДЩ АДДДДДДДДДДДДДДДДДЩі і Text і і ЪДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДї і і і і і і і ABCDEFGHIJKLMNOPQRSTUVWXYZ і і і і і і і і abcdefghijklmnopqrstuvwxyz і і і АДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЩ і ГДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДґ і ЪДДДДДДДДДДДї ЪДДДДДДДДДДДї ЪДДДДДДДДДДДї і і і _ і± і і± і і± і і і V OK і± і X Cancel і± і ? Help і± і і АДДДДДДДДДДДЩ± АДДДДДДДДДДДЩ± АДДДДДДДДДДДЩ± і і ±±±±±±±±±±±± ±±±±±±±±±±±± ±±±±±±±±±±±± і і і АДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЩ Рис. 8.17 Диалоговое окно Select Font Select font - выбор шрифта; Face name - имя гарнитуры; Size - размер; Style - стиль; Bold - жирный шрифт; Italic - наклонный; Underline - подчеркнутый; Strikeout - перечеркнутый; Text - текст; OK - подтвердить выбор; Cancel - отмена; Help - справка Вы можете выбрать нужную гарнитуру, размер или стиль текста. Например, можно выбрать в качестве гарнитуры Helvetica, размер в 10 пунктов и жирный наклонный в качестве стиля. Обратите внимание на символы, выводимые в нижней области ди- алогового окна Select Font. Они изменяются и отражают текущие выбранные гарнитуру и размер, но не показывают выбранные стили. Выбор формы кисти ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД Рисовать графические изображения в ресурсе можно с помощью кисти или краскораспылителя. Пакет разработчика ресурсов позволя- ет вам выбрать форму кисти или краскораспылителя. Текущая форма кисти или краскораспылителя всегда выводится как верхние два из четырех стилей в нижней части палитры инстру- ментальных средств. Вы можете выбрать форму кисти или струю краскораспылителя с помощью одного из следующих способов: - Для выбора формы кисти выберите команду OptionsіBrush Shape (ПараметрыіФорма кисти). - Чтобы задать струю краскораспылителя, используйте команду OptionsіAirbrush Shape (ПараметрыіСтруя краскораспылите- ля). - Щелкните кнопкой "мыши" на нужной форме кисти или краско- распылителя. Вы увидите диалоговое окно, в котором показаны все возможные формы кисти, которые вы можете выбирать. В верхней части диалого- вого окна Пакет разработчика ресурсов показывает вам текущую выб- ранную форму. Например, если вы изменяете форму кисти, то Пакет разработ- чика ресурсов выводит следующее диалоговое окно. ЪДДДВДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДї і - і Brush shape і ГДДДБДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДґ і Current shape і і ЪДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДїі і і ЪДДДДДї іі і і і . і іі і і АДДДДДЩ іі і і іі і і іі і і іі і і ЪДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДї іі і і і . * O o п П : : і і іі і і і і іі і і і - = Д ' / / " \ \ і іі і і АДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЩ іі і і іі і і іі і АДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЩі ГДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДґ і ЪДДДДДДДДДДДї ЪДДДДДДДДДДДї ЪДДДДДДДДДДДї і і і _ і± і і± і і± і і і V OK і± і X Cancel і± і ? Help і± і і АДДДДДДДДДДДЩ± АДДДДДДДДДДДЩ± АДДДДДДДДДДДЩ± і і ±±±±±±±±±±±± ±±±±±±±±±±±± ±±±±±±±±±±±± і і і АДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЩ Рис. 8.17 Диалоговое окно Brush Shape Brush shape - форма кисти; Current shape - текущая форма; OK - подтвердить выбор; Cancel - отмена; Help - справка Когда вы в следующий раз будете использовать кисть или крас- кораспылитель, Пакет разработчика ресурсов использует заданную вами форму. Она не изменяется, пока вы не определите новую форму. Выбор образцов закраски ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД Для рисования в одном из ваших графических изображений вы можете выбрать образец раскраски. Это можно сделать с помощью следующих инструментальных средств: - кисти; - краскораспылителя; - закрашенного прямоугольника; - закрашенного прямоугольника с закругленными углами; - закрашенного эллипса. Например, если вы выбираете образец, который заполнен редки- ми вертикальными линиями, этот образец выводится, если вы закра- шиваете область с помощью одного из перечисленных выше средств. Однако, если вы выберите средство, на которое не влияет выбор об- разца, например, банку с краской, область будет закрашиваться непрерывным цветом. Текущий образец всегда выводится в нижнем правом углу палит- ры инструментальных средств. Образец закраски вы можете выбрать одним из следующих спосо- бов: - с помощью выбора команды OptionsіPattern (ПараметрыіОбра- зец); - с помощью нажатия кнопки "мыши" на выборе стиля для образца закраски. Вы увидите диалоговое окно, в котором показаны все возможные образцы закраски, доступные для выбора. В верхней части диалого- вого окна Пакет разработчика ресурсов показывает вам текущий выб- ранный образец. ЪДДДВДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДї і - і Set pattern і ГДДДБДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДґ і Current pattern і і ЪДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДїі і і іі і і ІІІІІІІ іі і і ІІІІІІІ іі і і ІІІІІІІ іі і і іі і і іі і і ІІІІІІІ±±±±±±±#######.......ППППППП°°°°°°°::::::: іі і і ІІІІІІІ±±±±±±±#######.......ППППППП°°°°°°°::::::: іі і і ІІІІІІІ±±±±±±±#######.......ППППППП°°°°°°°::::::: іі і і \\\\\\\+++++++///////-------|||||||^^^^^^^<<<<<<< іі і і \\\\\\\+++++++///////-------|||||||^^^^^^^<<<<<<< іі і і \\\\\\\+++++++///////-------|||||||^^^^^^^<<<<<<< іі і і іі і АДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЩі ГДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДґ і ЪДДДДДДДДДДДї ЪДДДДДДДДДДДї ЪДДДДДДДДДДДї і і і _ і± і і± і і± і і і V OK і± і X Cancel і± і ? Help і± і і АДДДДДДДДДДДЩ± АДДДДДДДДДДДЩ± АДДДДДДДДДДДЩ± і і ±±±±±±±±±±±± ±±±±±±±±±±±± ±±±±±±±±±±±± і і і АДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЩ Рис. 8.19 Диалоговое окно Set Pattern Set pattern - задать образец; Current pattern - текущий об- разец; OK - подтвердить выбор; Cancel - отмена; Help - справка При следующем выборе инструментального средства закраски Па- кет разработчика ресурсов использует заданный вами образец. Этот образец закраски будет действовать до тех пор, пока вы не задади- те новый. Выбор типа линии ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД Вы можете управлять типом линии, отображаемым с помощью од- ного из следующих инструментальных средств: - пера; - средства "Линия"; - незакрашенного прямоугольника; - незакрашенного прямоугольника с закругленными углами; - незакрашенного эллипса. Тип линии можно выбрать одним из следующих способов: - с помощью команды OptionsіPen Style (ПараметрыіТип пера); - с помощью нажатия кнопки "мыши" на выборе типа линии в па- литре инструментальных средств. Вы увидите диалоговое окно, в котором выводятся все возможные доступные для выбора типы линий. В верхней части диало- гового окна Пакет разработчика ресурсов выводит текущий выбранный тип линии. ЪДДДВДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДї і - і Pen style і ГДДДБДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДґ і Current pen style і і ЪДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДїі і і ЪДДДДДї іі і і іДДДДДі іі і і АДДДДДЩ іі і і іі і і іі і і іі і і ЪДДДДДДВДДДДДДВДДДДДДВДДДДДДВДДДДДДї іі і і іДДДДДДіД Д Д іДД ДДіДД . ДіДД ..Ді іі і і ГДДДДДДЕДДДДДДЕДДДДДДЕДДДДДДЕДДДДДДґ іі і і і null і------і======і±±±±±±іІІІІІІі іі і і АДДДДДДБДДДДДДБДДДДДДБДДДДДДБДДДДДДЩ іі і і іі і і іі і АДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЩі ГДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДґ і ЪДДДДДДДДДДДї ЪДДДДДДДДДДДї ЪДДДДДДДДДДДї і і і _ і± і і± і і± і і і V OK і± і X Cancel і± і ? Help і± і і АДДДДДДДДДДДЩ± АДДДДДДДДДДДЩ± АДДДДДДДДДДДЩ± і і ±±±±±±±±±±±± ±±±±±±±±±±±± ±±±±±±±±±±±± і і і АДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЩ Рис. 8.20 Диалоговое окно Pen style Pen style - тип пера; Current pen style - текущий тип пера; OK - подтвердить выбор; Cancel - отмена; Help - справка Обратите внимание на нулевую толщину пера (null). Этот тип пера можно использовать для изображения закрашенных рамок, не имеющих границы. При следующем выборе инструментального средства изображения лини Пакет разработчика ресурсов использует заданную вами толщи- ну. Выбранная толщина пера будет действовать до тех пор, пока вы не зададите новую. Выравнивание выделенной области ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД Вы можете выровнять выделенную область по верхней части, нижней части, боковым сторонам или центру окна редактирования. Выравнивание выделенной области перемещает ее в указанное место, как это происходит при выделении области и перемещения ее с по- мощью "мыши". Чтобы выровнять выделенную область, выберите коман- ду OptionsіAlign (ПараметрыіВыравнивание) и нужные параметры в диалоговом окне Align Selection (Параметры выравнивания). ЪДДДВДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДї і - і Align selection і ГДДДБДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДґ і ЪДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДї ЪДДДДДДДДДДДДДДДДДДДДДДДДДДДїі і і Vertical і і Horizontal іі і іЪДДДДДДДДДДДДДДДДДДДДДДДДДДДДїі іЪДДДДДДДДДДДДДДДДДДДДДДДДДїіі і іі <* No change і іі іі <* No change ііі і іі ДДДДДДДДДДЩ іі іі ііі і іі > Top іі іі > Left side ііі і іі іі іі ііі і іі > Center іі іі > Center ііі і іі іі іі ііі і іі > Bottom іі іі > Right side ііі і іі іі іі ііі і іі іі іі ііі і іАДДДДДДДДДДДДДДДДДДДДДДДДДДДДЩі іАДДДДДДДДДДДДДДДДДДДДДДДДДЩіі і і і і іі і АДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЩ АДДДДДДДДДДДДДДДДДДДДДДДДДДДЩі ГДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДґ і ЪДДДДДДДДДДДї ЪДДДДДДДДДДДї ЪДДДДДДДДДДДї і і і _ і± і і± і і± і і і V OK і± і X Cancel і± і ? Help і± і і АДДДДДДДДДДДЩ± АДДДДДДДДДДДЩ± АДДДДДДДДДДДЩ± і і ±±±±±±±±±±±± ±±±±±±±±±±±± ±±±±±±±±±±±± і і і АДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЩ Рис. 8.21 Диалоговое окно Align Selection Align selection - параметры выравнивания; Vertical - верти- кальное; Horizontal - горизонтальное; No change - без изменения; Top - по верхней границе; Left side - по левой стороне; Center - по центру; Bottom - по нижней стороны; Right side - по правой стороне OK - подтвердить выбор; Cancel - отмена; Help - справка Для выравнивания выделенной области по вертикальной оси выберите параметры блока Vertical, а для выравнивания по горизон- тальной оси окна редактирования - параметры блока Horizontal. Например, если вы выберите параметры Top и Left Side и акти- визируете командную кнопку OK, выделенная область перемещается в левый верхний угол окна. Если вы выбираете команду Verticalі Center (По вертикалиіПо центру) и Right Side (Правая сторона) и активизируете кнопку OK, выделенная область центрируется на рав- ном расстоянии от верхней и нижней части окна и смещается на мак- симальное расстояние вправо. Графический редактор использует для закраски того места, где находилась выделенная область, фоновый цвет (как это происходит при перемещении области с помощью "мыши"). Изменение размера выделенной области ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД Вы можете изменить размер выделенной области или переместить ее с помощью инструментального средства выбора прямоугольной об- ласти (команда OptionsіSize (ПараметрыіРазмер)). Если вы измените размер области, графический редактор соответственно сжимает или растягивает графическое изображение в выделенной области. Когда вы выбираете команду OptionsіSize, графический редак- тор выводит диалоговое окно Stretch Selection (Параметры растяги- вания). ЪДДДВДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДї і - і Stretch Selection і ГДДДБДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДґ і ЪДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДї ЪДДДДДДДДДДДДДДДДДДДДДДДДДДДїі і і Old position/size і і New position/size іі і іЪДДДДДДДДДДДДДДДДДДДДДДДДДДДДїі іЪДДДДДДДДДДДДДДДДДДДДДДДДДїіі і іі іі іі ЪДДДДДДДДДїііі і іі Top 0 іі іі Left і±0 іііі і іі іі іі АДДДДДДДДДЩііі і іі Center 0 іі іі ЪДДДДДДДДДїііі і іі іі іі Top і±0 іііі і іі Width 52 іі іі АДДДДДДДДДЩііі і іі іі іі ЪДДДДДДДДДїііі і іі Height 33 іі іі Width і±0 іііі і іі іі іі АДДДДДДДДДЩііі і іі іі іі ЪДДДДДДДДДїііі і іі іі іі Height і±0 іііі і іі іі іі АДДДДДДДДДЩііі і іАДДДДДДДДДДДДДДДДДДДДДДДДДДДДЩі іАДДДДДДДДДДДДДДДДДДДДДДДДДЩіі і АДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЩ АДДДДДДДДДДДДДДДДДДДДДДДДДДДЩі ГДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДґ і ЪДДДДДДДДДДДї ЪДДДДДДДДДДДї ЪДДДДДДДДДДДї і і і _ і± і і± і і± і і і V OK і± і X Cancel і± і ? Help і± і і АДДДДДДДДДДДЩ± АДДДДДДДДДДДЩ± АДДДДДДДДДДДЩ± і і ±±±±±±±±±±±± ±±±±±±±±±±±± ±±±±±±±±±±±± і і і АДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЩ Рис. 8.21 Диалоговое окно Stretch Selection Stretch Selection - параметры растягивания; Old position/ size - старая позиция/размер; New position/size - новая пози- ция/размер; Top - верх; Center - центр; Width - ширина; Height - высота OK - подтвердить выбор; Cancel - отмена; Help - справка Данное диалоговое окно показывает координаты в элементах изображения текущей выделенной прямоугольной области (параметры Left и Top), а также текущую ширину и высоту в элементах изобра- жения. Чтобы переместить область или изменить ее размер (или вы- полнить оба действия), выберите значения в элементах изображения, которые попадают в область текущего окна, и ввести их в полях ввода блока New PositionіSize (Новая позицияіРазмер). Для переме- щения от поля к полю используйте клавишу Tab. Например, для перемещения прямоугольной области в левый верхний угол и приведения ее размера к ширине 30 элементов изоб- ражения и высоте 5 элементов изображения сделайте следующее: 1. Выделите область изображения с помощью инструментального средства "Выделение прямоугольника". 2. В поле Left (Левый) введите значение 0 и нажмите клавишу Tab. 3. В поле Top (Верх) введите значение 0 и нажмите клавишу Tab. 4. В качестве значения ширины Width введите 30 и нажмите клавишу Tab. 5. В качестве значения высоты Height введите 5 и нажмите клавишу Tab. 6. Выберите командную кнопку OK или нажмите клавишу Enter. Вы увидите, что текущий выделенный прямоугольник позициони- руется в верхний левый угол, а его высота и ширина изменяется в соответствии с заданными значениями. Кроме того, графический ре- дактор закрашивает исходный выделенный прямоугольник фоновым цве- том, как это происходило бы при перемещении прямоугольника с по- мощью "мыши". Установка глобальных параметров графического редактора ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД Чтобы установить глобальные параметры графического редакто- ра, для вывода диалогового окна Set Paint Editor (Параметры уста- новки графического редактора) выберите команду OptionsіEditor Options (ПараметрыіПараметры редактора). ЪДДДВДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДї і - і Set paint editor options і ГДДДБДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДґ і і і ЪДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДїі і і ЪДДї іі і і і і Draw on both images і іі і і АДДЩ ДДДДДДДДДДДДДДДДДДДДЩ іі і і іі і і ЪДДї іі і і і і Grig on zoomed windows іі і і АДДЩ іі і і іі і і ЪДДї іі і і іV і Save with default device colours іі і і АДДЩ іі і і іі і і іі і АДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЩі ГДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДґ і ЪДДДДДДДДДДДї ЪДДДДДДДДДДДї ЪДДДДДДДДДДДї і і і _ і± і і± і і± і і і V OK і± і X Cancel і± і ? Help і± і і АДДДДДДДДДДДЩ± АДДДДДДДДДДДЩ± АДДДДДДДДДДДЩ± і і ±±±±±±±±±±±± ±±±±±±±±±±±± ±±±±±±±±±±±± і і і АДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЩ Рис. 8.23 Диалоговое окно Set Paint Editor Options Set paint editor options - установка параметров графического редактора; Draw on both images - вывод обоих графических изобра- жений; Grig on zoomed windows - сетка на масштабируемых окнах; Save with default device colours - сохранение с используемыми по умолчанию цветами устройства; OK - подтвердить выбор; Cancel - отмена; Help - справка Draw on both images (вывод обоих графических изображений) Когда в графическом редакторе вы просматриваете два изобра- жения одного и того же графического образа, то можете Пакет раз- работчика ресурсов может обновлять в процессе рисования каждое изображение. Если вы не устанавливаете данный параметр, Пакет разработчи- ка ресурсов обновляет другое графическое изображение только тог- да, когда вы закончите рисовать элемент. Например, если вы пере- мещаете по графическому изображению кисть, Пакет разработчика ресурсов выводит линию только на том графическом изображении, где вы действительно рисуете. Однако, когда вы освободите кнопку "мы- ши", Пакет разработчика ресурсов обновляет также другое изображе- ние. Grig on zoomed windows (сетка на масштабируемых окнах) ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД В масштабируемых изображениях вы можете выводить сетку, ко- торая показывает вывод изображения на поэлементной основе. Подробнее этот параметр описывается выше в разделе "Масштабирова- ние". Save with default device colours (сохранение с используемыми по умолчанию цветами устройства) ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД Если вы хотите сохранить настроенную созданную вами цветовую палитру Colors, отмените данный параметр. Когда данный параметр установлен, при закрытии графического редактора любой настраивае- мый вами в палитре цвет будет изменен обратно на используемый по умолчанию цвет. Вы можете сохранить настроенную палитру цветов, только если ваш драйвер дисплея может выводить 256 цветов и поддерживает ло- гические палитры. О настройке палитры цветов рассказывается выше. Глава 9. Создание пиктограмм ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД Пиктограммы представляют собой небольшие битовые массивы, обычно имеющие размер 32х32 или 32х16 элементов изображения. Программы Windows используют обычно специальные пиктограммы для представления минимизированных окон. Следующая пиктограмма выво- дится, когда вы минимизируете программу-пример RWPDEMO. ±±±±±±±±±±±±±±±±±±±±±±±ІІІІІ ±±±±±±±±±±± ±±±±±±±ІІІІІ ±±±±±±±± ±± ±± ±±±±±±±±± ±±±±±± ±± ±± ±±±± ±±±±±±± ±±±± ±± ±±±± ±±± ±±±° ±±±±± ±±± ± ±±±±± ±± °±± ±±±± ±± ±± ±± ±±±± ±±± ±°±±±± ±±± ± ± ±± ±І°±± ±± ±± ±± ±± ±±±± І°ІІІІ±±±± ±±± ±±± ±±± ±± ±°ІІІІ±±±± ±±±± ±І±±± ±±±° ІІ±± ±±±±±± ІІІ±±±±± ° ±± ±± ±±±±±±±±± ІІІІІ±±±±±± ±±±±±±±±±±±± ±±±±±±±±±±±±±±±±±±±±±±±±±±±± Рис. 9.1 Пиктограмма RWPDEMO Для построения пиктограммы вы можете использовать графичес- кий редактор Пакета разработчика ресурсов. ЪДДДВДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДВДДДВДДДї і - і ICON : ICON_1 і v і ^ і ГДДДБДДДДДДДДДДДДДДДДДДДДДДДДДДДДДВДДДВДДДДДДДДДДДДДДДДДЕДДДЕДДДґ і і - і Colors і - і X і ГДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДВЕДДДБДДДДДДДВДДДДДДДДДЕДДДЕДДДґ і іі±±±±FG±±±±±і BG іЦ _і П і і ЪДДДДДДДДДДДДДДДДДДДДДДДДДДДДїіГДДДДДДДДДДДЕДДДДДДДДДЕДДДЕДДДґ і і±±±±±±±±±±±±±±±±±±±±±±±ІІІІІіііTransparentіInverted і±\±і п і і і±±±±±±±±±±± ±±±±±±±ІІІІІііГДДДДДДДДДДДЕДДДДДДДДДЕДДДЕДНДґ і і±±±±±±±± ±± ±± ±±±±±±±±±ііі±±±±±±±±±±±іІІІІІІІІІі Ъ і\\ і і і±±±±±± ±± ±± ±±±± ±±±±±±±ііАДДДДДДДДДДДБДДДДДДДДДЕДДДЕДДДґ і і±±±± ±± ±±±± ±±± ±±±° ±±±±±іі і \ і Т і і і±±± ± ±±±±± ±± °±± ±±±±іі ГДДДЕДДДґ і і±± ±± ±± ±±±± ±±± ±°±±±± ±±±іі іі іі ± і і і± ± ±± ±І°±± ±±іі ГДДДЕДДДґ і і±± ±± ±± ±±±± І°ІІІІ±±±± ±±±іі і О і * і і і±±± ±±± ±± ±°ІІІІ±±±± ±±±±іі ±±±±І ГДДДЕДДДґ і і±І±±± ±±±° ІІ±± ±±±±±±іі ± І± і о і * і і іІІІ±±±±± ° ±± ±± ±±±±±±±±±іі І°±±± ГДДДЕДДДґ і іІІІІІ±±±±±± ±±±±±±±±±±±±іі і . і . і і і±±±±±±±±±±±±±±±±±±±±±±±±±±±±іі ГДДДЕДДДґ і АДДДДДДДДДДДДДДДДДДДДДДДДДДДДЩі і і І і і і АДДДБДДДґ і і і і і і АДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДБДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЩ Рис. 9.2 Графический редактор с загруженной пиктограммой RWPDEMO Графический редактор выключает в себя различные различные графические средства и простую в использовании палитру цветов для выбора множества цветов. Он позволяет также увеличивать изображе- ние и выводить несколько изображений создаваемой пиктограммы. Ис- пользование графического редактора поясняется в Главе 8. При работе с пиктограммами выполняются следующие четыре ос- новные задачи: - запуск графического редактора; - настройка пиктограммы; - проверка пиктограммы; - сохранение пиктограммы. Первая задача (запуск графического редактора) позволяет вывести рабочую область, содержащую готовую к настройке (редакти- рованию) пиктограмму. Вторая и третья задача (настройка пиктог- раммы и проверка пиктограммы) позволяет настроить (отредактиро- вать) пиктограмму и проверить ее. Это функции самого графического редактора. Четвертая задача (сохранение пиктограммы) выполняется автоматически при сохранении проекта. Если вы хотите сохранить пиктограмму в отдельном файле, нужно выполнить еще несколько ша- гов. Дополнительные задачи, обсуждаемые в данной главе, касаются того, как добавить графических образ к ресурсу пиктограммы, как удалить пиктограмму или графический образ, и как отредактировать запись ресурса пиктограммы. Создание и настройку пиктограммы иллюстрирует пример проек- та в конце главы. Запуск графического редактора ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД Для работы с пиктограммой вам потребуется запустить графи- ческий редактор, создав новую пиктограмму или выбрав уже сущест- вующую. Имеется также третья возможность: создание нового графичес- кого образа для уже существующей пиктограммы. Поскольку данная возможность используется обычно просто для добавления нового фор- мата цвета, он освещается позднее в разделе "Добавление графичес- кого образа к ресурсу пиктограммы". Если вы хотите редактировать запись ресурса пиктограммы, вы- берите пиктограмму в окне проекта, щелкнув на ней кнопкой "мыши", и выбрав команду ResourceіEdit As Text (РесурсіРедактирование в виде текста). Маловероятно, что вы захотите редактировать пиктог- рамму как запись ресурса, так как эта запись почти полностью представляет собой последовательность шестнадцатиричных значений. Примечание: Пример записи ресурса см. ниже. Создание новой пиктограммы ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД Чтобы создать новую пиктограмму, сделайте следующее: 1. Убедитесь, что вы уже открыли проект. (Об открытии проек- та рассказывается в Главе 3.) 2. Выберите команду ResourceіNew (РесурсіНовый). Пакет раз- работчика ресурсов выводит диалоговое окно New Resource (Новый ресурс). Прокрутите изображение в данном диалого- вом окне вниз до элемента ICON и выделите его. 3. В диалоговом окне под "Place resource in" ("Поместить ре- сурс в...") подсвечивается текущий файл проекта. Вы може- те прокрутить вниз этот список для выбора другого файла (если такой файл содержится в списке), либо активизиро- вать командную кнопку OK для выбора текущего файла проек- та. 4. Пакет разработчика ресурсов запрашивает далее, хотите ли вы создать пиктограмму в исходной форме (как запись ре- сурса) или в формате, совместимом с двоичным форматом фирмы Microsoft: ЪДДДВДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДї і - і Resource Workshop і ГДДДБДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДґ і і і ЪДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДїі і і іі і і іі і і іі і і Do you want this resource to be іі і і created in source form, or as a іі і і Microsoft compatible binary? іі і і іі і і іі і АДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЩі ГДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДґ і ЪДДДДДДДДДДДї ЪДДДДДДДДДДДї ЪДДДДДДДДДДДї ЪДДДДДДДДДДДї і і і ;;; і± і \ і± і і± і і± і і і .. Source і± і \ Binary і± і X Cancel і± і ? Help і± і і АДДДДДДДДДДДЩ± АДДДДДДДДДДДЩ± АДДДДДДДДДДДЩ± АДДДДДДДДДДДЩ± і і ±±±±±±±±±±±± ±±±±±±±±±±±± ±±±±±±±±±±±± ±±±±±±±±±±±± і і і АДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЩ Рис. 9.3 Диалоговое окно с подсказкой В следующем разделе о выборе соответствующего формата для пиктограммы рассказывается более подробно. 5. После выбора формата записи, для запуска графического ре- дактора вы можете дважды щелкнуть кнопкой "мыши" на новом графическом изображении пиктограммы окна Icon или выде- лить новое графическое изображение и выбрать команду ImagesіEdit Image (Графическое изображениеіРедактирование графического изображения). Выбор формата записи Сохранение пиктограммы в качестве записи ресурса позволяет поместить ее непосредственно в файл проекта. Если вы хотите запи- сать пиктограмму в отдельном файле, на который ссылается файл проекта (например, если на пиктограмму ссылаются несколько проек- тов), или вы хотите, чтобы ваша пиктограмма была совместима с Компилятором ресурсов фирмы Microsoft, запишите пиктограмму в двоичном формате. В зависимости от вашего выбора Пакет разработ- чика ресурсов выводит соответствующее диалоговое окно. Оглавление Дополнения и изменения к "Руководству пользователя по пакету разработчика ресурсов"................................... Введение......................................................... Глава 2. Основы пакета разработчика ресурсов..................... Глава 3. Работа с проектами и ресурсами.......................... Глава 4. Создание диалоговых окон................................ Глава 5. Создание меню........................................... Глава 6. Создание клавиш-акселераторов........................... Глава 8. Использование графического редактора Paint.............. Глава 9. Создание пиктограмм..................................... Глава 10. Создание макрокоманд................................... Глава 12. Создание шрифтов....................................... Приложение A. Технические замечания.............................. Числа с предшествующими нулями................................... Директива препроцессора #undef................................... Вставка лексем................................................... Шестнадцатиричные числа в идентификаторах и типах ресурсов....... Выражения в идентификаторах ресурсов и типах идентификаторов ресурсов........................................ Сложные выражения-константы...................................... Дублирование идентификаторов ресурсов............................ Идентификаторы ресурсов, превышающие 32767....................... Свободные операторы END.......................................... Свободные операции в выражениях.................................. Пропущенные операции в выражениях................................ Синтаксический анализ оператора CAPTION.......................... Макрокоманды во включаемых директивах............................ Поддержка оператора CTLDATA...................................... Символы, допустимые в именах ресурсов............................ Изменения к данному изданию...................................... Параметр Visible................................................. Совместимость с версией Windows.................................. Позиционирование диалогового окна................................ Новые средства в Windows 3.1..................................... Стили диалоговых окон............................................ Размеры пиктограмм............................................... Информация о версии.............................................. Требования компоновщика.......................................... Библиотека BWCC.LIB.............................................. Библиотека BWCC.DLL.............................................. BWCC и библиотека объектных окон (OWL)........................... Специализированные управляющие элементы Borland.................. Использование специализированного диалогового класса............. Использование специализированных управляющих элементов........... Сообщения командной кнопки и кнопки с независимой фиксацией...... Использование стиля диалоговых окон BWCC......................... Стиль диалогового окна командной кнопки Borland.................. Стиль диалогового окна кнопки с зависимой фиксацией Borland...... Стиль диалогового окна кнопки с независимой фиксацией Borland......................................................... Стиль теневого диалогового блока Borland......................... Настройка существующих прикладных программ на использование BWCC............................................................ Загрузка BWCC для разрешения использования....................... Пример: настройка существующего приложения....................... Сохранение резервной копии приложения............................ Открытие проекта................................................. Редактирование управляющих элементов приложения.................. Запуск диалогового редактора..................................... Изменение имени диалогового класса............................... Изменение размера и переупорядочивание диалогового окна.......... Добавление тени группы........................................... Добавление текстовой строки...................................... Преобразование кнопок с зависимой фиксацией...................... Добавление горизонтальной выемки................................. Замена командных кнопок.......................................... Сохранение и тестирование проекта................................ Рекомендации по редактированию ресурсов.......................... Акселераторы..................................................... Графические изображения.......................................... Курсоры.......................................................... Диалоговые окна.................................................. Пиктограммы...................................................... Меню............................................................. Строковые таблицы................................................ Инструментальные средства, работающие в режиме командной строки: RLINK.EXE, BRCC.EXE и BRC.EXE........................... RLINK.EXE........................................................ Примеры.......................................................... Компилятор BRCC.EXE.............................................. Примеры.......................................................... Компилятор BRC.EXE............................................... Примеры.......................................................... СОЗДАНИЕ КЛАССОВ СПЕЦИАЛИЗИРОВАННЫХ УПРАВЛЯЮЩИХ ЭЛЕМЕНТОВ........ Для тех, кто работает на языке Си................................ Функция ListClasses.............................................. Функция Info..................................................... Функция Style.................................................... Функция Flags.................................................... Для программистов, работающих на Паскале......................... Функция ListClasses.............................................. Функция Info..................................................... Функция Style.................................................... Функция Flags.................................................... СТИЛИ И КОМАНДНЫЕ КНОПКИ......................................... Вопросы разметки................................................. Панели........................................................... Шрифты........................................................... Групповые блоки.................................................. Командные кнопки................................................. Рекомендации по размера и выравниванию........................... Упорядочивание панелей........................................... Основная панель.................................................. Горизонтальная оперативная панель................................ Вертикальная оперативная панель.................................. Заголовки групповых блоков....................................... Элементы групповых блоков........................................ Блоки сообщений.................................................. Проверка вашего диалога.......................................... Использование стандартных командных кнопок....................... ТЕХНИЧЕСКИЕ АСПЕКТЫ СПЕЦИАЛИЗИРОВАННЫХ УПРАВЛЯЮЩИХ ЭЛЕМЕНТОВ BORLAND (BWCC)........................................ Определение производного диалогового класса...................... Техническое описание специализированных управляющих элементов Borland............................................... Управляющий элемент BORBTN....................................... Стили окна....................................................... BS_DEFPUSHBUTTON и BS_PUSHBUTTON................................. Типы, уникальные для BWCC........................................ BBS_BITMAP....................................................... Параметры, наследуемые от стандартных управляющих элементов Windows......................................................... Параметры, уникальные для BWCC................................... BBS_PARENTNOTIFY................................................. BBS_OWNERDRAW.................................................... BBS_DLGPAINT..................................................... Сообщения........................................................ Команды, наследуемые из.......................................... BM_SETSTYLE...................................................... BM_SETSTATE...................................................... BM_GETSTATE...................................................... Команды, уникальные для BWCC..................................... BBM_SETBITS...................................................... Уведомления, наследуемые из стандартных управляющих элементов Windows............................................... Сообщение BN_CLICKED............................................. Уведомления, уникальные для BWCC................................. BBN_SETFOCUS..................................................... BBN_SETFOCUSMOUSE................................................ BBN_GOTATAB...................................................... BBN_GOTABTAB..................................................... Сообщение WM_DRAWITEM............................................ Схема нумерации идентификатора ресурса командной кнопки.......... Управляющий элемент BORRADIO..................................... Стили окна....................................................... Типы, наследуемые из............................................. Тип BS_RADIOBUTTON............................................... Тип BS_AUTORADIOBUTTON........................................... Типы, уникальные для BWCC........................................ Параметры, наследуемые........................................... Параметр BS_LEFTTEXT............................................. Параметры, уникальные для BWCC................................... Параметр BBS_PARENTNOTIFY........................................ Параметр BBS_OWNERDRAW........................................... Параметр BBS_DLGPAINT............................................ Сообщения........................................................ Команды, наследуемые............................................. из стандартных управляющих элементов Windows..................... BM_GETCHECK...................................................... Сообщение BM_SETCHECK............................................ Сообщение BM_GETSTATE............................................ Сообщение BM_SETSTATE............................................ Команды, уникальные для BWCC..................................... Уведомления, наследуемые......................................... Сообщение BN_CLICKED............................................. Уведомления, уникальные для BWCC................................. BBN_SETFOCUS..................................................... BBN_SETFOCUSMOUSE................................................ BBN_GOTATAB...................................................... BBN_GOTABTAB..................................................... WM_DRAWITEM...................................................... Управляющий элемент BORCHECK..................................... Стили окна....................................................... BS_CHECKBOX...................................................... BS_AUTOCHECKBOX.................................................. Типы, уникальные BWCC............................................ Параметры, наследуемые........................................... Параметр BS_LEFTTEXT............................................. Параметры, уникальные для BWCC................................... Параметр BBS_PARENTNOTIFY........................................ Параметр BBS_OWNERDRAW........................................... Параметр BBS_DLGPAINT............................................ Сообщения........................................................ Команды, наследуемые............................................. Сообщение BM_GETCHECK............................................ Сообщение BM_SETCHECK............................................ Сообщение BM_GETSTATE............................................ Сообщение BM_SETSTATE............................................ Команды, уникальные для BWCC..................................... Уведомления, наследуемые......................................... Сообщение BN_CLICKED............................................. Уведомления, уникальные для BWCC................................. BBN_SETFOCUS..................................................... BBN_SETFOCUSMOUSE................................................ BBN_GOTATAB...................................................... BBN_GOTABTAB..................................................... Сообщение WM_DRAWITEM............................................ Управляющий элемент BORSHADE..................................... Стили окна....................................................... Типы, наследуемые из............................................. Типы, уникальные для BWCC........................................ BSS_GROUP........................................................ BSS_HDIP......................................................... BSS_VDIP......................................................... BSS_HBUMP........................................................ BSS_VBUMP........................................................ Сообщения........................................................ Диалоговый класс BORDLG.......................................... Стили окна....................................................... Типы, наследуемые из............................................. Типы, уникальные для BWCC........................................ Использование управляющих элементов BWCC в недиалоговых окнах........................................................... Прочие функции................................................... Функция BWCCGetVersion........................................... Функция BWCCGetPattern........................................... Функция BWCCMessageBox........................................... Двоичный формат ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД Если вы выбираете двоичный формат (Binary), Пакет разработ- чика ресурсов выводит диалоговое окно Add File To Project (Добав- ление файла к проекту). ЪДДДВДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДї і - і Add file to project і ГДДДБДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДВДДДДДДДДДДДДДДДґ і і і іЪДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДї і ЪДДДДДДДДДДДї і іі ЪДДДДДДДДДДДДДДДДДДДДДДДДДїі і і _ і±і іі File name і±*.ico± іі і і V OK і±і іі АДДДДДДДДДДДДДДДДДДДДДДДДДЩі і АДДДДДДДДДДДЩ±і іі ЪДДДДДДДДДДДДДДДДДДДДДДДВДїі і ±±±±±±±±±±±±і іі File type і ICO icon image іvіі і і іі АДДДДДДДДДДДДДДДДДДДДДДДБНЩі і і іі і і і іі The resource in і і і іі ЪДДДДДДДДДДДДДДДВДїі і і іі this file will be і rwpdemo.rc іvіі і і іі АДДДДДДДДДДДДДДДБНЩі і ЪДДДДДДДДДДДї і іАДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЩ і і і±і і і і X Cancel і±і і Path±±±±±c:\workshop±±±±±±±±±±±±±±±±±±±±±±± і АДДДДДДДДДДДЩ±і і і ±±±±±±±±±±±±і і ЪДДДДДДДДДДДДДДДДДДДДї ЪДДДДДДДДДДДДДДДДДДДДї і і і і Files і і Directories і і і і і ЪДДДДДДДДДДДДДДДВДїі і ЪДДДДДДДДДДДДДДДВДїі і і і і і К calc1.ico і^іі і і П .. і^іі і і і і і К calc2.ico ГДґі і і П temp ГДґі і і і і і К rwdemo.ico іІіі і і П A і±іі і і і і і К telecomm.icoі±іі і і П B іІіі і і і і і і±іі і і П C і±іі і ЪДДДДДДДДДДДї і і і і і±іі і і П F і±іі і і і±і і і і ГДґі і і П G ГДґі і і ? Help і±і і і і іvіі і і П I іvіі і АДДДДДДДДДДДЩ±і і і АДДДДДДДДДДДДДДДБДЩі і АДДДДДДДДДДДДДДДБДЩі і ±±±±±±±±±±±±і і АДДДДДДДДДДДДДДДДДДДДЩ АДДДДДДДДДДДДДДДДДДДДЩ і і АДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДБДДДДДДДДДДДДДДДЩ Рис. 9.4 Диалоговое окно Add File To Project Add file to project - добавление файла к проекту; File name - имя файла; File type - тип файла; The resource in this file will be... - ресурс в данном файле будет в...; Path - маршрут; Files - файлы; Directories - каталоги Данное диалоговое окно выводит подсказку для ввода файла, в который будет записана пиктограмма. В блоке Files (Файлы) выво- дятся все файлы в текущем каталоге, имеющие расширение .ICO. Для выбора нового каталога вы можете использовать блок Directory (Ка- талог). Введите новое имя файла или маршрута, либо выберите файл из списка. Расширение .ICO указывать не нужно (хотя, если вы этого не сделаете, Пакету разработчика ресурсов может оказаться не просто найти файл пиктограммы). Пакет разработчика ресурсов пре- дусматривает для вас корректный тип файла - ICO (файл образа пик- тограммы). Когда вы сделаете свой выбор, активизируйте командную кнопку OK. Пакет разработчика ресурсов выводит диалоговое окно New Icon. (Если вы выберите существующий файл, то сначала выве- дется запрос, хотите ли вы затереть его.) ЪДДДВДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДї і - і New icon image і ГДДДБДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДґ і і і ЪДДДДДДДДДДДДДДДДДДДДї ЪДДДДДДДДДДДДДДДДДДДДї і і і Size і і Colors і і і і ЪДДДДДДДДДДДДДДДДДїі і ЪДДДДДДДДДДДДДДДДДїі і і і і <* 32x32 і іі і і > 2 colors іі і і і і ДДДДДДЩ іі і і іі і і і і > 32x16 іі і і > 8 colors іі і і і і іі і і іі і і і і іі і і <* 16 colors іі і і і і іі і і іі і і і і іі і і > 256 colors іі і і і АДДДДДДДДДДДДДДДДДЩі і АДДДДДДДДДДДДДДДДДЩі і і АДДДДДДДДДДДДДДДДДДДДЩ АДДДДДДДДДДДДДДДДДДДДЩ і ГДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДґ і ЪДДДДДДДДДДї ЪДДДДДДДДДДї ЪДДДДДДДДДДї і і і _ і± і і± і і± і і і V OK і± і Х Cancel і± і ? Help і± і і АДДДДДДДДДДЩ± АДДДДДДДДДДЩ± АДДДДДДДДДДЩ± і і ±±±±±±±±±±± ±±±±±±±±±±± ±±±±±±±±±±± і АДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЩ Рис. 9.5 Диалоговое окно New Icon Image New Icon Image - новый графический образ пиктограммы; Size - размер; Colors - цвета Выберите нужный формат изображения и его цвет, затем активи- зируйте командную кнопку OK. Пакет разработчика ресурсов помещает новое имя пиктограммы в окно проекта и выводит окно графического редактора, позволяющее вам начать редактирование пиктограммы. ЪДДДВДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДВДДДВДДДї і - і ICON : ICON_1 32x32 16 Colors і v і ^ і ГДДДБДДДДДДДДДДДДДДДДДДДДДДДДДДДДДВДДДВДДДДДДДДДДДДДДДДДЕДДДЕДДДґ і Inverted і - і Colors і - і X і ГДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДВЕДДДБДДДДДДДВДДДДДДДДДЕДДДЕДДДґ і іі±±±±FG±±±±±і BG іЦ _і П і і ЪДДДДДДДДДДДДДДДДДДДДДДДДДДДДїіГДДДДДДДДДДДЕДДДДДДДДДЕДДДЕДДДґ і і±±±±±±±±±±±±±±±±±±±±±±±±±±±±іііTransparentіInverted і±\±і п і і і±±±±±±±±±±±±±±±±±±±±±±±±±±±±ііГДДДДДДДДДДДЕДДДДДДДДДЕДДДЕДНДґ і і±±±±±±±±±±±±±±±±±±±±±±±±±±±±ііі±±±±±±±±±±±іІІІІІІІІІі Ъ і\\ і і і±±±±±±±±±±±±±±±±±±±±±±±±±±±±ііАДДДДДДДДДДДБДДДДДДДДДЕДДДЕДДДґ і і±±±±±±±±±±±±±±±±±±±±±±±±±±±±іі і \ і Т і і і±±±±±±±±±±±±±±±±±±±±±±±±±±±±іі ГДДДЕДДДґ і і±±±±±±±±±±±±±±±±±±±±±±±±±±±±іі іі іі ± і і і±±±±±±±±±±±±±±±±±±±±±±±±±±±±іі ГДДДЕДДДґ і і±±±±±±±±±±±±±±±±±±±±±±±±±±±±іі і О і * і і і±±±±±±±±±±±±±±±±±±±±±±±±±±±±іі ±±±±± ГДДДЕДДДґ і і±±±±±±±±±±±±±±±±±±±±±±±±±±±±іі ±±±±± і о і * і і і±±±±±±±±±±±±±±±±±±±±±±±±±±±±іі ±±±±± ГДДДЕДДДґ і і±±±±±±±±±±±±±±±±±±±±±±±±±±±±іі і . і . і і і±±±±±±±±±±±±±±±±±±±±±±±±±±±±іі ГДДДЕДДДґ і АДДДДДДДДДДДДДДДДДДДДДДДДДДДДЩі і і І і і і АДДДБДДДґ АДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДБДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЩ Рис. 9.6 Окно графического редактора для новой 16-цветной пиктограммы Исходный формат Если вы выберите Source (Исходный), Пакет разработчика ре- сурсов выводит диалоговое окно New Icon Image (см. Рис. 9.5). Вы- берите нужный размер изображения и его цвет, затем активизируйте командную кнопку OK. Пакет разработчика ресурсов помещает в окно проекта новую запись ICON и выводит окно графического редактора (см. Рис. 9.6). Редактирование существующей пиктограммы ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД Для редактирования существующей пиктограммы сделайте следую- щее: 1. Откройте либо существующий проект, либо уже существующий. (все, что нужно знать об открытии проектов, рассказывает- ся в Главе 3). При этом Пакет разработчика ресурсов выво- дит окно проекта. 2. Каждый ресурс может содержать несколько графических изоб- ражений (обычно это одна и та же пиктограмма с различными форматами цветов). Чтобы редактировать одно из изображе- ний ресурса Icon, откройте запись ресурса (дважды щелкнув на ней кнопкой "мыши" или выбрав команду ResourceіEdit (РекурсіРедактирование). Если в ресурсе имеется несколько изображений, Пакет разработчика ресурсов выводит окно Icon (Пиктограмма), содержащее все графические изображе- ния. Для открытия пиктограммы дважды щелкните кнопкой "мыши" на записи окна проекта... і і ЪДДДДДДДДДДДДДДДДДДДДДДДДДДДДї і і myproj.rc і і ГДДДДДДДДДДДДДДДДДДДДДДДДДДДДґ і іmyproj.rc і і і DIALOG: my_db і АДДДДДДДДЕДД> ICON: my_ico і і iconfile.ico і ЪДДДДДДДДДДДДДДДДДДДДДДДДДДДДї і ICON: my_ico1 і і ICON: my_icon і і і ГДДДДДДДДДДДДДДДДДДДДДДДДДДДДґ АДДДДДДДДДДДДДДДДДДДДДДДДДДДДЩ і2 images <ДДДДДДДДДЕДДї Окно проекта і 32x32 2 Colors і і і 32x32 16 Colors і ... и вы увидите, какие і і графические изображения і і пиктограммы она содержит і і АДДДДДДДДДДДДДДДДДДДДДДДДДДДДЩ Окно пиктограммы 3. В окне Icon (Пиктограммы) найдите графическое изображение пиктограммы, которую вы хотите редактировать. Дважды щелкните на нем кнопкой "мыши" или выделите ее и выберите команду ImagesіEdit Image (Графический образіРедактирова- ние графического образа). Пакет разработчика ресурсов вы- водит пиктограмму в графическом редакторе. 4. После того, как вы выведите пиктограмму в графическом ре- дакторе, для настройки пиктограммы используйте графичес- кие средства. Настройка пиктограммы ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД После того, как вы откроете пиктограмму в графическом редак- торе, можно начать ее настройку и редактирования с помощью средств графического редактора, описанных в Главе 8. Перед нача- лом работы рассмотрим несколько заслуживающих внимания вопросов. Вопросы проектирования ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД Перед началом работы с пиктограммой стоит рассмотреть следу- ющие вопросы: - Что должна представлять пиктограмма для пользователя? Пиктограмма должна давать четкое представление о том, что она изображает. Во многих случаях пиктограмма прикладной программы позволяет пользователю получить представление о ее основных свойствах. Например, вы можете для программы текстовой обработки создать пиктограмму в виде документа, а для графической программы - в виде кисти. Пиктограмма может также представлять эмблему вашей фирмы. - Достаточно ли проста ваша пиктограмма, чтобы поместиться в область 32х32 или 32х16 элементов изображения? Нужно помнить о том, что пиктограмма должна быть малень- кой, поэтому вы не сможете включить в нее много деталей. - Будет ли пиктограмма нормально выглядеть при выборе поль- зователем различных фоновых цветов? Подумайте о том, где скорее всего будет выводиться пиктог- рамма скорее всего будет выводиться, и проверьте как она выглядит при различном выборе фонового цвета и образца. - При изображении пиктограммы подумайте о том, будут ли раз- личимы цвета пиктограммы и цвета, назначенные для прозрач- ной и инверсной областей? Попробуйте выбрать цвета прозрачной и инверсной областей пиктограммы, которые не выводятся как фактические цвета самой пиктограммы. Когда вы примете решение о соответствующей стратегии, можете начать настройку своей пиктограммы. Увеличение размера пиктограммы ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД Вы можете масштабировать (увеличивать размер) пиктограмму, как и любой другой графический ресурс. Однако в меню View (Прос- мотр) имеется дополнительная команда, CGA Resolution [32x16] (Разрешающая способность CGA), которая позволяет вам увидеть, как пиктограмма будет выглядеть на экране CGA. Выбор данной команду преобразует изображение к его фактическому размеру и выводит его в формате 32х16. Чтобы выйти из режима CGA, выберите одну из ко- манд масштабирования. С помощью данной команды вы можете только изменить вывод пиктограммы, но не саму пиктограмму - она останется пиктограммой в формате 32х32. Работа с прозрачной и инвертированной областями ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД Как уже упоминалось в Главе 8, прозрачная и инвертированная области выводятся при редактировании пиктограммы цветами. Однако, когда вы используете пиктограмму, прозрачная область выводится цветом, соответствующим цвету оперативной области, а инвертиро- ванная область - цветом, инвертированным к данному цвету. Фоновый цвет Новая пиктограмма или изображение курсора автоматически име- ет прозрачный фон. Поэтому, если создается новое изображение, и вы нарисуете в нем только одну линию, то увидите эту линию только при проверке графического изображения на фоне оперативной области - блок с фоновым цветом и линия в нем не видны. Если вы хотите для графического изображения использовать вместо прозрачного фонового цвета фоновый цвет, то первым шагом в изображении должен быть выбор фонового цвета, банки с краской и нажатие правой кнопки "мыши" на изображении для заполнения его фоновым цветом. Изменение цвета прозрачной и инвертированной областей Вы можете изменить цвета, которыми графический редактор вы- водит прозрачную и инвертированную области. Это делается следую- щим образом: 1. Выделите Transparent (Прозрачная) или Inverted (Инверти- рованная), выполнив следующие шаги: - В палитре Colors дважды щелкните кнопкой "мыши" на строке под Transparent или Inverted. - Выделите Transparent или Inverted, как основной и фоно- вый цвета. Затем выберите команду IconіEdit Foreground (ПиктограммаіРедактирование основного цвета) или IconіEdit Background (ПиктограммаіРедактирование фоно- вого цвета). 2. Пакет разработчика ресурсов выводит следующее диалоговое окно: ЪДДДВДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДї і - і Set transparent color і ГДДДБДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДґ і ЪДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДїі і і ±±±±±±± °°°°°°° ІІІІІІІ іі і і ±±±±±±± °°°°°°° ІІІІІІІ іі і і ±±±±±±± °°°°°°° ІІІІІІІ іі і і іі і і Requested Granted Inverse іі і і іі і і ЪДДДДї ЪДДДДї ЪДДДДї ЪДВДДДДДДДДДДДДДДДДДДДВДїіі і і і160±і і160 і і128 і Red і<і°°°°°°°°°І°°°°°°°°°і>ііі і і АДДДДЩ АДДДДЩ АДДДДЩ АДБДДДДДДДДДДДДДДДДДДДБДЩіі і і ЪДДДДї ЪДДДДї ЪДДДДї ЪДВДДДДДДДДДДДДДДДДДДДВДїіі і і і160 і і160 і і128 і Green і<і±±±±±±±±±І±±±±±±±±±і>ііі і і АДДДДЩ АДДДДЩ АДДДДЩ АДБДДДДДДДДДДДДДДДДДДДБДЩіі і і ЪДДДДї ЪДДДДї ЪДДДДї ЪДВДДДДДДДДДДДДДДДДДДДВДїіі і і і164 і і164 і і128 і Blue і<іІІІІІІІІ°ІІІІІІІІІІі>ііі і і АДДДДЩ АДДДДЩ АДДДДЩ АДБДДДДДДДДДДДДДДДДДДДБДЩіі і АДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЩі ГДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДґ і ЪДДДДДДДДДДДї ЪДДДДДДДДДДДї ЪДДДДДДДДДДДї і і і _ і± і і± і і± і і і V OK і± і X Cancel і± і ? Help і± і і АДДДДДДДДДДДЩ± АДДДДДДДДДДДЩ± АДДДДДДДДДДДЩ± і і ±±±±±±±±±±±± ±±±±±±±±±±±± ±±±±±±±±±±±± і і і АДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЩ Рис. 9.7 Диалоговое окно Set Transparent Color Set transparent color - установка цвета прозрачной области; Requested - запрошен; Granted - задан; Inverse - инвертированный; OK - подтверждение выбора; Cancel - отмена; Help - справка Данное диалоговое окно работает аналогично окну Edit Colors (Редактирование цветов) (см. Рис. 8.13), но изменяет одновременно цвет и прозрачной, и инвертированной области. Как вы можете заметить, в данном окне имеется третий цвет, Inverted, который является инвертированным по отношению к цвету в среднем блоке. Цвет в среднем блоке становится цветом прозрачной области, а цвет в блоке справа становится цветом инвертированной области. "Трехмерное" изображение пиктограммы ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД "Трехмерные" объекты в Windows изображаются так, как будто их освещает источник света, расположенный в левом верхнем углу. По этой причине пиктограммы имеют обычно "тень" справа и внизу (подробнее об этом будет рассказано ниже), а трехмерные кнопки имеют белую границу слева и вверху и темную границу справа и вни- зу. Если вы хотите получить такое "трехмерное", объемное изобра- жение, имейте в виду следующее: - Не имея художественного таланта, лучше рисовать простые, плоские изображения, которые могут быть тем не менее дос- таточно неплохими (возьмите, например, различные пиктог- раммы Пакета разработчика ресурсов). - Трехмерные пиктограммы обычно много теряют по сравнению с более простыми двухмерными при преобразовании цветов и ис- пользовании вместо VGA монохромного дисплея, EGA или пор- тативных плазменных дисплеев. - Жирный черный контур не всегда представляет собой лучший выбор для трехмерного представления. Попробуйте использо- вать различные тени и посмотрите, какая из них выглядит лучше. Если вы хотите создать объемное изображение, можно использо- вать метод падающих теней. Например, чтобы черный прямоугольник стал объемным, вы можете изобразить серую границу с левой стороны и внизу: ІІІІІІІІІІІІІІ ІІІІІІІІІІІІІІ± ІІІІІІІІІІІІІІ± ІІІІІІІІІІІІІІ± ІІІІІІІІІІІІІІ± ІІІІІІІІІІІІІІ± ±±±±±±±±±±±±± Рис. 9.8 Пиктограмма в виде черного прямоугольника с серой падающей тенью Проверка пиктограммы ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД Простейший способ проверки пиктограммы состоит в минимизации окна графического редактора, в котором редактируется пиктограмма (с помощью активизации кнопки минимизации в правом верхнем углу окна или выбора команды IconіTest (ПиктограммаіПроверка). Пиктог- раммой данного минимизированного окна будет та пиктограмма, с ко- торой вы работаете. Если вы не видите пиктограмму после минимизации окна, причи- ной этого может быть наличие других открытых окон. Чтобы освободить пространство для пиктограммы в нижней части оператив- ной области Пакета разработчика ресурсов, выберите команду WindowіTile (ОкноіВывод без перекрытия). Вы можете также связать ресурс пиктограммы с выполняемым файлом, а затем запустить файл и посмотреть, как выглядит пиктог- рамма. О привязке ресурсов к выполняемым файлам рассказывается в Главе 3. Пиктограмму следует проверять по двум основным причинам: - чтобы увидеть, как выглядят цвета пиктограммы при ее пере- мещении (когда вы перемещаете пиктограмму, Windows превра- щает ее в курсор). - чтобы увидеть, как будут на различном фоне выглядеть проз- рачные и инвертированные области пиктограммы. Первую проверку выполнить легко: можно просто минимизировать пиктограмму редактора и перемещать ее. Вторая проверка несколько более сложна, так как Windows окружает пиктограмму рабочим цветом текущей прикладной программы, что делает невозможной проверку цвета без изменения рабочего цве- та прикладной программы. Чтобы получить некоторое представление о том, как выглядят комбинации цветов, вы можете изменить цвета прозрачной и инвертированной областей. Однако для полной проверки пиктограммы нужно минимизировать пиктограмму в редакторе, а затем изменить цвет рабочего пространства прикладной программы. Чтобы проверить пиктограмму на наборе различных цветов рабо- чего пространства прикладной программы, сделайте следующее: 1. Если необходимо, уменьшите размер в Пакете разработчика ресурсов, чтобы он не занимал весь экран, затем перемес- титесь в нижнюю часть экрана. 2. Минимизируйте графический редактор, содержащий пиктограм- му. Убедитесь, что пиктограмма является видимой и нахо- дится в точке с фоновым цветом рабочей области прикладной программы. 3. Переключите задачи на Администратор программ. 4. Выберите команду ControlіPanel. Когда она появится, пере- местите ее в верхнюю часть экрана. 5. Выберите Color (Цвет). 6. В диалоговом окне Colors выберите палитру цветов. 7. Щелкните кнопкой "мыши" в области, непосредственно окру- жающей блок с надписью "Window Text" ("Текст окна"). Вы увидите сообщение "Application Workspace" ("Рабочая об- ласть прикладной задачи"), которое появляется в блоке Screen Element над палитрой Colors. 8. Щелкните кнопкой "мыши" на цвете, затем выберите команд- ную кнопку OK. 9. Измените задачу обратно на Пакет разработчика ресурсов и щелкните кнопкой "мыши" на новом фоновом цвете. Здесь вы можете видеть и диалоговое окно Пакета разработчика ресурсов и управляющее диалоговое окно одновременно. Вы можете выбрать другой цвет, просто щелкнув кнопкой "мыши" в палитре Colors (Цвета) в управляющем окне, и выполнить шаги 5 - 8. Когда вы изменяете цвет рабочей области прикладной программы, Windows изменяет цвет Пакета разработчика ресурсов, и вы можете прове- рить, как выглядит пиктограмма на новом цвете. Сохранение пиктограммы ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД В процессе работы полезно сохранять изменения, не дожидаясь, пока Пакет разработчика ресурсов выведет подсказку при сох- ранении проекта. Основной метод сохранения изменений в ресурсе пиктограммы - это сохранение всего проекта. Вы можете также сох- ранить ресурс пиктограммы в отдельном файле, но данная возмож- ность используется только в определенных обстоятельствах. Сохранение проекта ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД Чтобы сохранить весь проект, выберите команду FileіSave Project (ФайліСохранение проекта). Пакет разработчика ресурсов компилирует ресурсы, которые изменились во времени последней ком- пиляции, и сохраняет их в файле проекта. Все измененные ресурсы, скомпонованные во внешнем файле, обновляются в этом внешнем фай- ле. Сохранение ресурса пиктограммы в виде файла ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД Сохранение всего проекта приводит также к сохранению ресурса пиктограммы, с которым вы работаете. Однако, ресурс пиктограммы можно сохранить в файле, чтобы данный двоичный формат использо- вался другими программами. В этом случае нужно выбирать команду ResourceіSave Resource As (РесурсіСохранение ресурса в виде...). 1. При выборе команды ResourceіSave As Пакет разработчика ресурсов выводит диалоговое окно Save Resource As (Сохра- нение ресурса). ЪДДДВДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДї і - і Save resource as і ГДДДБДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДВДДДДДДДДДДДДДДДґ і і і іЪДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДї і ЪДДДДДДДДДДДї і іі ЪДДДДДДДДДДДДДДДДДДДДДДДДДїі і і _ і±і іі New file name і±*.ico± іі і і V OK і±і іі АДДДДДДДДДДДДДДДДДДДДДДДДДЩі і АДДДДДДДДДДДЩ±і іі ЪДДДДДДДДДДДДДДДДДДДДДДДВДїі і ±±±±±±±±±±±±і іі File type і ICO icon image іvіі і і іі АДДДДДДДДДДДДДДДДДДДДДДДБНЩі і і іі і і і іАДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЩ і і і Resource±±±±±±icon:±icon_1±±±±±±±±±±±±±±±± і і і і ЪДДДДДДДДДДДї і і і і і±і і і і X Cancel і±і і Path±±±±±c:\workshop±±±±±±±±±±±±±±±±±±±±±±± і АДДДДДДДДДДДЩ±і і і ±±±±±±±±±±±±і і ЪДДДДДДДДДДДДДДДДДДДДї ЪДДДДДДДДДДДДДДДДДДДДї і і і і Files і і Directories і і і і і ЪДДДДДДДДДДДДДДДВДїі і ЪДДДДДДДДДДДДДДДВДїі і і і і і К calc1.ico і^іі і і П .. і^іі і і і і і К calc2.ico ГДґі і і П temp ГДґі і і і і і К rwdemo.ico іІіі і і П A і±іі і і і і і К telecomm.icoі±іі і і П B іІіі і і і і і і±іі і і П C і±іі і ЪДДДДДДДДДДДї і і і і і±іі і і П F і±іі і і і±і і і і ГДґі і і П G ГДґі і і ? Help і±і і і і іvіі і і П I іvіі і АДДДДДДДДДДДЩ±і і і АДДДДДДДДДДДДДДДБДЩі і АДДДДДДДДДДДДДДДБДЩі і ±±±±±±±±±±±±і і АДДДДДДДДДДДДДДДДДДДДЩ АДДДДДДДДДДДДДДДДДДДДЩ і і АДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДБДДДДДДДДДДДДДДДЩ Рис. 9.9 Диалоговое окно Save File As Save file as - сохранение файла; New file name - имя нового файла; File type - тип файла; The resource in this file will be... - ресурс в данном файле будет в...; Path - маршрут; Files - файлы; Directories - каталоги; OK - подтверждение выбора; Cancel - отмена; Help - справка 2. Введите имя нового файла или выберите корректное имя фай- ла из списка Files (Файлы). Если вы хотите поместить файл в другой каталог, можете изменить маршрут в списке Directories (Каталоги), либо ввести маршрут при задании имени файла. Когда имя файла будет корректным, нажмите клавишу Enter или щелкните кнопкой "мыши" на командной кнопке OK. 3. Пакет разработчика ресурсов запрашивает у вас, хотите ли вы включить в файл проекта ссылку на данный внешний файл, и в какой именно. Ответ Yes (Да) приведет к тому, что все последующие изменения в пиктограмме будут сохраняться в двоичном виде во внешнем файле пиктограммы, но не в файле проекта или в предыдущем файле пиктограммы. Добавление к ресурсу пиктограммы графического изображения ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД В общем случае вы можете создать ресурс пиктограммы для каж- дой создаваемой пиктограммы и не помещать пиктограммы в один и тот же ресурс пиктограммы. Однако, вы, вероятно, захотите помес- тить различные форматы цветов для одной пиктограммы в один и тот же ресурс пиктограммы. Вариации цветов одной и той же пиктограммы называются графическими образами. Например, если вы хотите полу- чить 2-цветную и 16-цветную версию одной и той же разрабатываемой пиктограммы, то обе версии можно сохранить в одном ресурсе пик- тограммы. Причиной использования различных цветовых форматов является то, что Windows выбирает формат цвета на основе способности аппа- ратуры дисплея поддерживать этот формат. Windows выбирает 2-цвет- ный формат для монохромного дисплея и 16-цветный формат для стан- дартного драйвера Windows VGA. Windows 3.0 не обеспечивает полную поддержку 256-цветной версии пиктограммы, даже если аппаратура дисплея его поддержива- ет. Ваша программа должна обеспечить свою собственную поддержку 256 цветов. К существующему ресурсу пиктограммы новый графический образ можно добавить следующим образом: 1. Убедитесь, что вы уже открыли файл проекта (об этом расс- казывается в Главе 3). 2. Дважды щелкните кнопкой "мыши" на записи ICON окна проек- та, выделите запись ICON и выберите команду Resource іEdit (РесурсіРедактирование). Пакет разработчика ресур- сов выводит окно Icon (Пиктограмма). ЪДДДВДДДДДДДДДДДДДДДДДДДДДДВДВДї і - і ICON : ICON_1 і^іvі ГДДДБДДДДДДДДДДДДДДДДДДДДДДБДЕДґ і 3 images і^і і ±32x32±±16±Colors±±±±±±±ГДґ і 32x32 8 Colors іІі і 32x32 2 Colors і±і і і±і і і±і і і±і і і±і і і±і і ГДґ і іvі АДДДДДДДДДДДДДДДДДДДДДДДДДДДДБДЩ Рис. 9.10 Окно Icon 3. Чтобы создать новую версию существующей пиктограммы, вы- берите команду ImagesіNew Image (Графический образіНовый графический образ). Пакет разработчика ресурсов выводит диалоговое окно New Icon Image (см. Рис. 9.5), из которо- го вы можете выбрать размер образа и формат цвета. 4. Выберите тот же размер, что и размер существующего графи- ческого образа, затем щелкните кнопкой "мыши" на команд- ной кнопке OK. Пакет разработчика ресурсов выводит в окне Icon (Пиктограмма) новую запись графического образа. 5. Дважды щелкните кнопкой "мыши" на новой пиктограмме, или выделите ее и выберите команду ImagesіEdit Image (Графи- ческий образіРедактирование графического образа). Вы уви- дите графический редактор. 6. Обычно далее открывается один из существующих образов пиктограмм и копируется в новый (пока пустой) образ. Если цвета транслируются таким образом, что изменяется форма пиктограммы, то может потребоваться ее редактирование. Примечание: О копировании пиктограммы рассказывается ниже. Удаление пиктограмм и графических изображений ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД Ресурс пиктограммы или ее графический образ можно удалить. При удалении всего ресурса пиктограммы удаляются все графические образы в данном ресурсе. При удалении графического образа пиктог- раммы удаляется только отдельное изображение в ресурсе пиктограм- мы. Удаление ресурса пиктограммы ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД Чтобы удалить ресурс пиктограммы, выделите его в окне проек- та и сделайте следующее: - нажмите клавишу Del или выберите команду EditіDelete (РедактированиеіУдаление) для полного удаления; - выберите команду EditіCut (РедактированиеіВырезание) для удаления ресурса и помещения его в буфер вырезанного изоб- ражения Windows, благодаря чему его можно вставить его в другом месте. Удаление графического образа пиктограммы ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД Чтобы удалить графический образ из ресурса пиктограммы, сде- лайте следующее: 1. Откройте ресурс пиктограммы в окне проекта (дважды щелк- нув на нем кнопкой "мыши" или выделив его и выбрав коман- ду ResourceіEdit) для вывода окна Icon (Пиктограмма). 2. Выделите запись образа, который вы хотите удалить, затем сделайте следующее: - для полного удаления нажмите клавишу Del или выберите команду EditіDelete; - для удаления графического изображения и помещения его в буфер вырезанного изображения Windows используйте ко- манду EditіCut (его можно вставить в другом месте). Редактирование записи ресурса пиктограммы ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД Хотя это маловероятно, иногда возникает необходимость редак- тирования записи ресурса пиктограммы. Чтобы сделать это, выделите ресурс пиктограммы в окне проекта и выберите команду ResourceіEdit as Text (РесурсіРедактирование в виде текста). Па- кет разработчика ресурсов выводит запись ресурса пиктограммы в окне редактирования. ЪДДДВДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДВДДДВДДДї і - і ICON : ICON_1 і v і ^ і ГДДДБДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДБДДДБДВДґ іICON_1 ICON і^і іBEGIN ГДґ і '00 00 01 00 03 00 20 20 10 00 00 00 00 00 E8 02' іІі і '00 00 36 00 00 00 20 20 08 00 00 00 00 00 E8 02' і±і і '00 00 06 06 03 00 28 00 00 00 20 00 00 00 40 00' і±і і '00 00 01 00 04 00 00 00 00 80 02 00 00 00 00 00' і±і і '00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00' і±і і '00 00 00 00 BF 00 00 BF 00 00 00 BF BF 00 BF 00' і±і і '00 00 BF 00 BF 00 BF BF 00 00 C0 C0 C0 00 80 80' і±і і '80 00 00 00 FF 00 00 FF 00 00 FF FF FF 00 FF 00' і±і і '00 00 FF 00 FF FF 00 00 FF FF FF 00 FF 00 FF FF' і±і і 'FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF' і±і і 'FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF' і±і і 'FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF' і±і і 'FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF' і±і і 'FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF' і±і і 'FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF' і±і і 'FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF' і±і і 'FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF' ГДґ і 'FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF' іvі ГДВДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДВДЕДґ і<іІ±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±і>і і АДБДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДБДБДЩ Рис. 9.11 Запись ресурса для пиктограммы Единственными полностью понятными частями записи ресурса пиктограммы является первая и вторая строка (имя ресурса и "BEGIN" и последняя строка "END"). Между второй строкой и послед- ней содержится шестнадцатиричный код. Если хотите, можете на свой страх и риск отредактировать этот код, и посмотреть, как это по- действует на пиктограмму. Создание образца пиктограммы ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД Чтобы пояснить некоторые шаги, которые нужно выполнить для создания пиктограммы, мы создали пример пиктограммы для программы финансовых расчетов "Домашний бюджет". Чтобы сформулировать основную идею этой прикладной програм- мы, скажем следующее: мы хотели построить нечто для работы с циф- рами и бюджетом. Для этого можно включить калькулятор и предста- вить набросок пиктограммы: ЪДДДДДДї іДДДДДДі ІІІІДДДДі ++++ ДДДЩ ++++ Создание новой пиктограммы ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД Чтобы создать новую пиктограмму, нужно сначала открыть про- ект, а затем выполнить следующую последовательность шагов для вы- вода графического редактора с новым пустым изображением. 1. Для создания нового проекта выберите команду FileіNew Project (ФайліНовый проект) или FileіOpen Project (ФайліОткрытие проекта) для открытия существующего. Ес- ли вы работаете с примерами предыдущей главы, откройте проект MYPROJ.RC. 2. Выберите команду ResourceіNew (РесурсіНовый) и укажите Пакету разработчика ресурсов на создание нового ресурса. Когда Пакет разработчика ресурсов запросит у вас тип ре- сурса, выберите ICON (Пиктограмма). 3. Выберите Source для записи пиктограммы в виде записи ре- сурса в файл .RC. 4. Пакет разработчика ресурсов открывает диалоговое окно New Icon Image (Новый графический образ пиктограммы). Выбери- те параметр 32x32 и 16 Colors, затем активизируйте ко- мандную кнопку OK. 4. Пакет разработчика ресурсов открывает графический редак- тор. Изменение цвета прозрачной области ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД Перед началом рисования неплохо изменить цвет прозрачной и инвертированной областей пиктограммы, поскольку используемый по умолчанию цвет (бирюзовый) - это цвет, используемый для рисова- ния. Для изменения этих цветов сделайте следующее: 1. В палитре Colors (Цвета) дважды щелкните кнопкой "мыши" на цвете Transparent (Прозрачная область). 2. В диалоговом окне Set Transparent Color (Установить цвет прозрачной области) переместите скользящий маркер Red (Красный) вправо, а Green (Зеленый) - влево. Вы увидите, что цвет прозрачной области изменится на ма- линовый, а цвет инвертированной области - на зеленый. 3. Щелкните кнопкой "мыши" на командной кнопке OK, чтобы применить новый цвета к палитре Coplors. Отображение калькулятора ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД Чтобы нарисовать пиктограмму калькулятора, сделайте следую- щее: 1. Выберите команду OptionsіEditor Options (ПараметрыіПара- метры редактора) и выберите параметр Grid On Zoomed Windows (Сетка на масштабированных областях), что поможет вам нарисовать калькулятор. Когда вы увеличиваете свою пиктограмму в окне графическо- го редактора, сетка показывает вам отдельные элементы изображения. В окне с нормальным изображением пиктограммы легко видеть то, что получается. 2. Перейдите от пиктограммы (с ее фактическим размером) в правое окно. Чтобы увеличить пиктограмму в левом окне. Дважды щелкните кнопкой "мыши" на пиктограмме "Масштаби- рование" в палитре инструментальных средств, пока пиктог- рамма не увеличится максимальным образом (помещаясь в эк- ран). Два изображения пиктограммы будут выглядеть следую- щим образом: ЪДДДВДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДВДДДВДДДї і - і ICON : ICON_4 32x32 16 Colors і v і ^ і ГДДДБДДДДДДДДДДДДДДДДДДДДДДДДДДДДДВДДДВДДДДДДДДДДДДДДДДДЕДДДЕДДДґ і Transparent Inverted і - і Colors і - і X і ГДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДВЕДДДБДДДДДДДВДДДДДДДДДЕДДДЕДДДґ і іі±±±±FG±±±±±і BG іЦ _і П і і ЪДДДДДДДДДДДДДДДДДДДДДДДДДДДДїіГДДДДДДДДДДДЕДДДДДДДДДЕДДДЕДДДґ і і++++++++++++++++++++++++++++іііTransparentіInverted і±\±і п і і і++++++++++++++++++++++++++++ііГДДДДДДДДДДДЕДДДДДДДДДЕДДДЕДНДґ і і++++++++++++++++++++++++++++ііі±±±±±±±±±±±іІІІІІІІІІі Ъ і\\ і і і++++++++++++++++++++++++++++ііАДДДДДДДДДДДБДДДДДДДДДЕДДДЕДДДґ і і++++++++++++++++++++++++++++іі і \ і Т і і і++++++++++++++++++++++++++++іі ГДДДЕДДДґ і і++++++++++++++++++++++++++++іі іі іі ± і і і++++++++++++++++++++++++++++іі ГДДДЕДДДґ і і++++++++++++++++++++++++++++іі і О і * і і і++++++++++++++++++++++++++++іі +++++ ГДДДЕДДДґ і і++++++++++++++++++++++++++++іі +++++ і о і * і і і++++++++++++++++++++++++++++іі +++++ ГДДДЕДДДґ і і++++++++++++++++++++++++++++іі і . і . і і і++++++++++++++++++++++++++++іі ГДДДЕДДДґ і АДДДДДДДДДДДДДДДДДДДДДДДДДДДДЩі і і І і і і АДДДБДДДґ і і і і і і АДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДБДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЩ Рис. 9.12 Начальный экран для новой пиктограммы (см. также в оригинале документации) Каждая квадратная ячейка увеличенного изображения предс- тавляет один элемент изображения. Теперь вы можете начать рисование. 3. Выберите для калькулятора темно-красный цвет. Когда вы щелкните кнопкой "мыши" в палитре Colors, то увидите на темно-красном цвете буквы FG (основной цвет). 4. Щелкните кнопкой "мыши" на пиктограмме "Закрашенный пря- моугольник" палитры инструментальных средств. 5. В нижней левой части окна нарисуйте калькулятор. Примечание: Не забудьте в нижней части калькулятора оставить два элемента изображения для тени. Вы можете использовать закрашенный прямоугольник для изображения всех частей калькулятора - гарнитуры шрифта, дисплея и кнопок. Щелкнув кнопкой "мыши" в палитре Colors выберите для дисплея калькулятора и его кнопок разные цвета (попробуйте использовать желтый цвет для клавиш и темно-синий для дисплея). Когда вы закончите, калькулятор может выглядеть следующим образом: ЪДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДї і ±і±і±і±і±і±і±і±і±і±і±і±і±і±і±і±і±і±і±і±і±і±і±і±і±і±і±і±і±і±і± і і ДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕД і і ±і±і±і±і±і±і±і±і±і±і±і±і±і±і±і±і±і±і±і±і±і±і±і±і±і±і±і±і±і±і± і і ДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕД і і ±і±і±і±і±і±і±і±і±і±і±і±і±і±і±і±і±і±і±і±і±і±і±і±і±і±і±і±і±і±і± і і ДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕД і і ±і±і±і±і±і±і±і±і±і±і±і±і±і±і±і±і±і±і±і±і±і±і±і±і±і±і±і±і±і±і± і і ДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕД і і ±і±і±і±і±і±і±і±і±і±і±і±і±і±і±і±і±і±і±і±і±і±і±і±і±і±і±і±і±і±і± і і ДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕД і і ІіІіІіІіІіІіІіІіІіІіІі±і±і±і±і±і±і±і±і±і±і±і±і±і±і±і±і±і±і±і± і і ДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕД і і Іі°і°і°і°і°і°і°і°і°іІі±і±і±і±і±і±і±і±і±і±і±і±і±і±і±і±і±і±і±і± і і ДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕД і і Іі°і°і°і°і°і°і°і°і°іІі±і±і±і±і±і±і±і±і±і±і±і±і±і±і±і±і±і±і±і± і і ДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕД і і ІіІі іІі іІі іІі іІіІі±і±і±і±і±і±і±і±і±і±і±і±і±і±і±і±і±і±і±і± і і ДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕД і і ІіІі іІі іІі іІі іІіІі±і±і±і±і±і±і±і±і±і±і±і±і±і±і±і±і±і±і±і± і і ДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕД і і ІіІі іІі іІі іІі іІіІі±і±і±і±і±і±і±і±і±і±і±і±і±і±і±і±і±і±і±і± і і ДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕД і і ІіІі іІі іІі іІі іІіІі±і±і±і±і±і±і±і±і±і±і±і±і±і±і±і±і±і±і±і± і і ДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕД і і ІіІі іІі іІі іІі іІіІі±і±і±і±і±і±і±і±і±і±і±і±і±і±і±і±і±і±і±і± і і ДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕД і і ІіІіІіІіІіІіІіІіІіІіІі±і±і±і±і±і±і±і±і±і±і±і±і±і±і±і±і±і±і±і± і і ДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕД і і ±і±і±і±і±і±і±і±і±і±і±і±і±і±і±і±і±і±і±і±і±і±і±і±і±і±і±і±і±і±і± і АДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЩ Рис. 9.13 Увеличенное изображение калькулятора перед добав- лением тени Если вы сделаете ошибку, то для ее отмены можно использовать средство Undo (EditіUndo (РедактированиеіОтмена) или клавиши Alt+ Backspace). Для выделения контура и удаления области можно испо- льзовать также инструментальные средства "Выделения прямоугольной области" и "Ножницы" (либо использовать клавишу Del или команду EditіDelete), а также "Ластик". Если вы хотите стереть все и на- чать сначала, нужно просто дважды щелкнуть кнопкой "мыши" на инс- трументальном средстве "Ластик" палитры инструментальных средств. Примечание: Если вы сотрете слишком много, это можно исправить с помощью выбора команды EditіUndo или нажатия клавиш Alt+Backspace. Получение объемного эффекта ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД Чтобы добавить к калькулятору эффект трехмерного изображе- ния, сделайте следующее: 1. Выберите для тени черный цвет. 2. Используйте для заполнения тенью области справа от каль- кулятора и внизу инструментальное средство "Линия". Линия должна иметь толщину в два элемента изображения и должна начинаться на два элемента изображения ниже верхнего края и отступать на два элемента изображения от левой стороны. Калькулятор будет выглядеть следующим образом: ЪДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДї і ±і±і±і±і±і±і±і±і±і±і±і±і±і±і±і±і±і±і±і±і±і±і±і±і±і±і±і±і±і±і± і і ДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕД і і ±і±і±і±і±і±і±і±і±і±і±і±і±і±і±і±і±і±і±і±і±і±і±і±і±і±і±і±і±і±і± і і ДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕД і і ±і±і±і±і±і±і±і±і±і±і±і±і±і±і±і±і±і±і±і±і±і±і±і±і±і±і±і±і±і±і± і і ДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕД і і ±і±і±і±і±і±і±і±і±і±і±і±і±і±і±і±і±і±і±і±і±і±і±і±і±і±і±і±і±і±і± і і ДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕД і і ±і±і±і±і±і±і±і±і±і±і±і±і±і±і±і±і±і±і±і±і±і±і±і±і±і±і±і±і±і±і± і і ДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕД і і ІіІіІіІіІіІіІіІіІіІіІі±і±і±і±і±і±і±і±і±і±і±і±і±і±і±і±і±і±і±і± і і ДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕД і і Іі#і#і#і#і#і#і#і#і#іІі і±і±і±і±і±і±і±і±і±і±і±і±і±і±і±і±і±і±і± і і ДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕД і і Іі#і°і°і°і°і°і°і°і°іІі і±і±і±і±і±і±і±і±і±і±і±і±і±і±і±і±і±і±і± і і ДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕД і і ІіІі іІі іІі іІі іІіІі і±і±і±і±і±і±і±і±і±і±і±і±і±і±і±і±і±і±і± і і ДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕД і і ІіІі іІі іІі іІі іІіІі і±і±і±і±і±і±і±і±і±і±і±і±і±і±і±і±і±і±і± і і ДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕД і і ІіІі іІі іІі іІі іІіІі і±і±і±і±і±і±і±і±і±і±і±і±і±і±і±і±і±і±і± і і ДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕД і і ІіІі іІі іІі іІі іІіІі і±і±і±і±і±і±і±і±і±і±і±і±і±і±і±і±і±і±і± і і ДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕД і і ІіІі іІі іІі іІі іІіІі і±і±і±і±і±і±і±і±і±і±і±і±і±і±і±і±і±і±і± і і ДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕД і і ІіІіІіІіІіІіІіІіІіІіІі і±і±і±і±і±і±і±і±і±і±і±і±і±і±і±і±і±і±і± і і ДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕД і і ±і і і і і і і і і і і і±і±і±і±і±і±і±і±і±і±і±і±і±і±і±і±і±і±і± і АДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЩ Рис. 9.14 Увеличенное изображение калькулятора с добав- лением тени (см. также в оригинале руководства) Когда вы закончите изображение калькулятора, для сохранения нового образа пиктограммы выберите команду FileіSave Project (ФайліСохранение проекта). На практике полезно почаще сохранять изображение. Изображение книги счетов ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД Чтобы нарисовать книгу счетов, сделайте следующее: 1. Выберите черный цвет, затем выберите инструментальное средство "Линия". 2. Используйте инструментальное средство "Линия" для изобра- жения вертикальной линии, начиная с пятого элемента изоб- ражения слева от правого верхнего угла калькулятора (см. рисунок в оригинале руководства). Проведите линию до верхней части окна редактирования, в его правый верхний угол в нижнюю часть графического редактора (не доведя ее на два элемента изображения до нижней границы окна) и влево до тени калькулятора. Вы нарисуете таким образом контур книги. 3. Выберите белый цвет и "Банку с краской". Щелкните кнопкой "мыши", позиционировав банку с краской на странице книги для заполнения ее белым цветом. 4. Выберите светло-бирюзовый цвет и инструментальное средс- тво "Линия". 5. Щелкните кнопкой "мыши" на типе линии в нижнем правом уг- лу палитры инструментальных средств в диалоговом окне Current Pen Style (Текущий тип пера). Выберите толщину линии в два элемента изображения (справа от Null). 6. Отступив на два элемента изображения вверх от нижней гра- ницы книги счетов, нарисуйте горизонтально последователь- ность линий (толщиной в два элемента изображения) в види- мой части книги. Между линиями должно быть расстояние в два элемента изображения. (Нижние три строки будут огра- ничены тенью калькулятора.) 7. Выберите светло-красный цвет и инструментальное средство "Линия". 8. Щелкните кнопкой "мыши" на пиктограмме "Линия" в нижнем правом углу палитры инструментальных средств. В диалого- вом окне Current Pen Style выберите толщину линии в один элемент изображения. 9. Отступив на три элемента изображения от правого края кни- ги, нарисуйте вертикальную линию размером в страницу справочника. Сместитесь на четыре элемента изображения влево и нарисуйте вторую линию. 10. Выберите черный цвет и нарисуйте горизонтальную линию, которая начинается непосредственно над верхней бирюзовой областью и имеет размер, соответствующий странице спра- вочника. 11. Когда вы закончите рисовать пиктограмму, графический ре- дактор будет выглядеть примерно следующим образом (см. также рисунок в оригинале руководства). ЪДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДї і ±і±і±і±і±і±і і і і і і і і і і і і і і і і і і і і і і і і і і і ДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕД і і ±і±і±і±і±і±і і±і±і±і±і±і±і±і±і±і±і±і±і±і±і±і±і|і±і±і±і|і±і±і і і ДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕД і і ±і±і±і±і±і±і і і і і і і і і і і і і і і і і і і і і і і і і і і ДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕД і і ±і±і±і±і±і±і і±і±і±і±і±і±і±і±і±і±і±і±і±і±і±і±і|і±і±і±і|і±і±і і і ДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕД і і ±і±і±і±і±і±і і=і=і=і=і=і=і=і=і=і=і=і=і=і=і=і=і=і=і=і=і=і=і=і і і ДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕД і і ІіІіІіІіІіІіІіІіІіІіІі±і±і±і±і±і±і±і±і±і±і±і±і|і±і±і±і|і±і±і і і ДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕД і і Іі#і#і#і#і#і#і#і#і#іІі і=і=і=і=і=і=і=і=і=і=і=і=і=і=і=і=і=і=і і і ДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕД і і Іі#і°і°і°і°і°і°і°і°іІі і±і±і±і±і±і±і±і±і±і±і±і|і±і±і±і|і±і±і і і ДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕД і і ІіІі іІі іІі іІі іІіІі і=і=і=і=і=і=і=і=і=і=і=і=і=і=і=і=і=і=і і і ДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕД і і ІіІі іІі іІі іІі іІіІі і±і±і±і±і±і±і±і±і±і±і±і|і±і±і±і|і±і±і і і ДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕД і і ІіІі іІі іІі іІі іІіІі і=і=і=і=і=і=і=і=і=і=і=і=і=і=і=і=і=і=і і і ДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕД і і ІіІі іІі іІі іІі іІіІі і±і±і±і±і±і±і±і±і±і±і±і|і±і±і±і|і±і±і і і ДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕД і і ІіІі іІі іІі іІі іІіІі і±і±і±і±і±і±і±і±і±і±і±і|і±і±і±і|і±і±і і і ДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕД і і ІіІіІіІіІіІіІіІіІіІіІі і і і і і і і і і і і і і і і і і і і і і ДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕДЕД і і ±і і і і і і і і і і і і±і±і±і±і±і±і±і±і±і±і±і±і±і±і±і±і±і±і± і АДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЩ Рис. 9.15 Пиктограмма "Домашний бюджет" Копирование графического образа с другим цветовым форматом ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД Иногда желательно получить для одного и того же изображения различные форматы цветов для использования при работе с различны- ми дисплейными адаптерами, например, черно-белое изображение для монохромного адаптера. Если вы хотите создать черно-белую версию пиктограммы, то вместо того, чтобы рисовать пиктограмму сначала, вы можете скопировать цветную версию и вставить ее в черно-белую версию. Это делается следующим образом: 1. Во-первых, нужно создать 2-цветный образ. Выведите окно Icon (см. Рис. 9.10), затем выберите команду ImagesіNew Image (ОбразыіНовое изображение). Пакет разработчика ре- сурсов выводит диалоговое окно New Icon Image (Новое изображение пиктограммы) (см. Рис. 9.5). 2. Выберите кнопку с независимой фиксацией после 2 Colors, затем активизируйте командную кнопку OK. В окне Icon Па- кет разработчика ресурсов выводит новую строку "32x32 2 Colors", представляющую новое изображение. 3. В окне Icon (Пиктограмма) дважды дважды щелкните кнопкой "мыши" на записи для 16-цветного изображения, которую вы уже создали ("32х32 16 Colors"). 4. Выберите команду EditіSelect All (РедактироватьіВыделить все) для выделения всего образа. 5. Выберите команду EditіCopy (РедактированиеіКопирование) для копирования образа пиктограммы в буфер вырезанного изображения (или используйте для этого команды Ctrl+Ins). 6. Дважды щелкните кнопкой "мыши" в меню графического редак- тора для его закрытия (либо нажмите клавиши Ctrl+F4). 7. В окне Icon дважды щелкните кнопкой "мыши" на 2-цветной пиктограмме. Пакет разработчика ресурсов выводит в графи- ческом редакторе 2-цветную пиктограмму. 8. Выберите команду EditіPaste (РедактированиеіВставка) для вставки 16-цветного образа пиктограммы "Домашний бюджет". Вы увидите, что она выведется в черно-белом варианте. 9. Так как Пакет разработчика ресурсов преобразует пиктог- рамму из цветной версии в черно-белую, могут потеряться некоторые детали в цветной версии. Если это необходимо, вы можете отредактировать 2-цветную версию и добавить де- тали. Глава 10. Создание курсоров ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД Курсоры - это битовые изображения размером 32х32 элемента изображения, указывающую текущую позицию на экране. Прикладная программа Windows имеет часто различные курсоры, представляющие различные функции программы. В Windows предусмотрен набор стандартных курсоров, которые можно использовать в программах. Кроме того, для представления различных функций программы вы можете создать собственные специ- альные курсоры. Примером специального курсора может быть курсор "банки с краской" Пакета разработчика ресурсов, позволяющий вам в графическом редакторе выбрать инструментальное средство "Банка с краской". ЪДДДВДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДВДДДВДДДї і - і BITMAP : bmp_StatusLine і v і ^ і ГДДДБДДДДДДДДДДДДДДДДДДДДДДДДДДДДДВДДДВДДДДДДДДДДДДДДДДДЕДДДЕДДДґ і і - і Colors і - і X і ГДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДВЕДДДБДДДДДДДДДДДДДДДДДЕДДДЕДДДґ і ііFG±±±±±±±±±±±±±±±±±±±іЦ _і П і і іі °°°°°°±±±±±ІІІBGГДДДЕДДДґ і іАДДДДДДДДДДДДДДДДДДДДДґ±\±і п і і і ГДДДЕДНДґ і і і Ъ і\\ і і і ГДДДЕДДДґ і і і \ і Т і і і ГДДДЕДДДґ і і іі іі ± і і ( \ і ГДДДЕДДДґ і .\/ і і О і * і і + і ГДДДЕДДДґ і ЪДДДДДДДДДДДДДДДДДДДДДДДДДДДДїі і о і * і і іІ±±±±±±±±±±±±±±±±±±±±±±±±±±±іі ±±±±±± ГДДДЕДДДґ і іІ±±±±±±±±±±±±±±±±±±±±±±±±±±±іі і . і . і і іІ±±±±±±±±±±±±±±±±±±±±±±±±±±±іі ГДДДЕДДДґ і іІ±±±±±±±±±±±±±±±±±±±±±±±±±±±іі і і І і і іІІІІІІІІІІІІІІІІІІІІІІІІІІІІіі АДДДБДДДґ і АДДДДДДДДДДДДДДДДДДДДДДДДДДДДЩі і і і і АДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДБДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЩ Рис. 10.1 Графический редактор с курсором банки с краской Для создания ваших собственных курсоров используйте графичес- кий редактор Пакета разработчика ресурсов. ЪДДДВДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДВДДДВДДДї і - і CURSOR : CURSOR_1 і v і ^ і ГДДДБДДДДДДДДДДДДДДДДДДДДДДДДДДДДДВДДДВДДДДДДДДДДДДДДДДДЕДДДЕДДДґ і і - і Colors і - і X і ГДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДВЕДДДБДДДДДДДВДДДДДДДДДЕДДДЕДДДґ і іі±±±±FG±±±±±і BG іЦ _і П і і ЪДДДДДДДДДДДДДДДДДДДДДДДДДДДДїіГДДДДДДДДДДДЕДДДДДДДДДЕДДДЕДДДґ і і±±±±±±±±±±±±± ±±±±±±±±±±±±±±іііTransparentіInverted і±\±і п і і і±±±±±±±±±±± ±±±±±±±±±±±±ііГДДДДДДДДДДДЕДДДДДДДДДЕДДДЕДНДґ і і±±±±±±±± ±± ±± ±±±±±±±±±ііі±±±±±±±±±±±іІІІІІІІІІі Ъ і\\ і і і±±±±±± ±±±±± ±±±±± ±±±±±±±ііАДДДДДДДДДДДБДДДДДДДДДЕДДДЕДДДґ і і±±±± ±±±±±±± ±±±±±±± ±±±±±іі і \ і Т і і і±±± ±±±±±±±±±±±±±±±±±±± ±±±±іі ГДДДЕДДДґ і і±± ±±±±±±±±±± ±±±±±±±±±± ±±±іі іі іі ± і і і± ± ±± ±± ± ±±іі ГДДДЕДДДґ і і±± ±±±±±±±±±± ±±±±±±±±±± ±±±іі і О і * і і і±±± ±±±±±±±±±±±±±±±±± ±±±±іі ±± ±± ГДДДЕДДДґ і і±±±±± ±±±±± ±±±±± ±±±±±±іі ± ± і о і * і і і±±±±±±±± ±± ±± ±±±±±±±±±іі ±± ±± ГДДДЕДДДґ і і±±±±±±±±±±± ±±±±±±±±±±±±іі і . і . і і і±±±±±±±±±±±±± ±±±±±±±±±±±±±±іі ГДДДЕДДДґ і АДДДДДДДДДДДДДДДДДДДДДДДДДДДДЩі і і І і і і АДДДБДДДґ і і і і і і АДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДБДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЩ Рис. 10.2 Графический редактор с простым курсором Графический редактор включает в себя различные инструмен- тальные средства и палитру Colors (Цвета), облегчающую выбор цве- тов. Об использовании графического редактора рассказывается в Главе 8. При работе с курсорами выполняются следующие четыре основные задачи: - запуск графического редактора; - настройка курсора; - проверка курсора; - сохранение курсора. Первая задача (запуск графического редактора) позволяет вы- вести рабочую область, содержащую готовый к настройке (редактиро- ванию) курсор. Вторая и третья задача (настройка и проверка кур- сора) позволяет настроить курсор и проверить его. Это функции самого графического редактора. Четвертая задача (сохранение курсо- ра) выполняется автоматически при сохранении проекта. Если вы хо- тите сохранить курсор в отдельном файле, нужно выполнить еще нес- колько шагов. Запуск графического редактора ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД Для работы с курсором вам потребуется запустить графический редактор, создав новый курсор или выбрав уже существующий. Создание нового курсора ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД Чтобы создать новый курсор, сделайте следующее: 1. Убедитесь, что вы уже открыли проект. (Об открытии проек- та рассказывается в Главе 3.) 2. Выберите команду ResourceіNew (РесурсіНовый). Ресурс дол- жен быть уже выбран. Активизируйте командную кнопку OK. 3. Пакет разработчика ресурсов выводит диалоговое окно New Resource (Новый ресурс). Прокрутите вниз окно Resource Type (Тип ресурса) до CURSOR и выберите его. 4. В диалоговом окне под "Place resource in" ("Поместить ре- сурс в...") подсвечивается текущий файл проекта. Вы може- те прокрутить вниз этот список для выбора другого файла (если такой файл содержится в списке), либо активизиро- вать командную кнопку OK для выбора текущего файла проек- та. 4. Пакет разработчика ресурсов запрашивает далее, хотите ли вы создать курсор в исходной форме (как запись ресурса) или в формате, совместимом с двоичным форматом фирмы Microsoft: ЪДДДВДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДї і - і Resource Workshop і ГДДДБДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДґ і і і ЪДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДїі і і іі і і іі і і іі і і Do you want this resource to be іі і і created in source form, or as a іі і і Microsoft compatible binary? іі і і іі і і іі і і іі і і іі і і іі і і іі і і іі і АДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЩі ГДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДґ і ЪДДДДДДДДДДДї ЪДДДДДДДДДДДї ЪДДДДДДДДДДДї ЪДДДДДДДДДДДї і і і ;;; і± і \ і± і і± і і± і і і .. Source і± і \ Binary і± і X Cancel і± і ? Help і± і і АДДДДДДДДДДДЩ± АДДДДДДДДДДДЩ± АДДДДДДДДДДДЩ± АДДДДДДДДДДДЩ± і і ±±±±±±±±±±±± ±±±±±±±±±±±± ±±±±±±±±±±±± ±±±±±±±±±±±± і і і АДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЩ Рис. 10.3 Диалоговое окно с подсказкой Source - исходный; Binary - двоичный; Cancel - отмена; Help - справка Сохранение курсора в качестве записи ресурса позволяет по- местить его непосредственно в файл проекта. Если вы хотите запи- сать курсор в отдельном файле, на который ссылается файл проекта (например, если на курсор ссылаются несколько проектов), или вы хотите, чтобы ваш курсор был совместим с Компилятором ресурсов фирмы Microsoft (таким как компилятор RC), запишите курсор в дво- ичном формате. В зависимости от вашего выбора Пакет разработчика ресурсов выводит соответствующее диалоговое окно. Исходный формат При выборе Source (Исходный) Пакет разработчика ресурсов по- мещает новую запись курсора с используемым по умолчанию заголов- ком в окно графического редактора и открывает графический редак- тор с новым курсором. Двоичный формат Если вы выбираете двоичный формат (Binary), Пакет разработ- чика ресурсов выводит диалоговое окно Add File To Project (Добав- ление файла к проекту). ЪДДДВДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДї і - і Add file to project і ГДДДБДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДВДДДДДДДДДДДДДДДґ і і і іЪДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДї і ЪДДДДДДДДДДДї і іі ЪДДДДДДДДДДДДДДДДДДДДДДДДДїі і і _ і±і іі File name і±*.cur± іі і і V OK і±і іі АДДДДДДДДДДДДДДДДДДДДДДДДДЩі і АДДДДДДДДДДДЩ±і іі ЪДДДДДДДДДДДДДДДДДДДДДДДВДїі і ±±±±±±±±±±±±і іі File type і CUR cursor image іvіі і і іі АДДДДДДДДДДДДДДДДДДДДДДДБНЩі і і іі і і і іі The resource in і і і іі ЪДДДДДДДДДДДДДДДВДїі і і іі this file will be і rwpdemo.rc іvіі і і іі АДДДДДДДДДДДДДДДБНЩі і ЪДДДДДДДДДДДї і іАДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЩ і і і±і і і і X Cancel і±і і Path±±±±±c:\workshop±±±±±±±±±±±±±±±±±±±±±±± і АДДДДДДДДДДДЩ±і і і ±±±±±±±±±±±±і і ЪДДДДДДДДДДДДДДДДДДДДї ЪДДДДДДДДДДДДДДДДДДДДї і і і і Files і і Directories і і і і і ЪДДДДДДДДДДДДДДДВДїі і ЪДДДДДДДДДДДДДДДВДїі і і і і і К arrow.cur і^іі і і П .. і^іі і і і і і К mycursor.curГДґі і і П temp ГДґі і і і і і К rwdemo.cur іІіі і і П A і±іі і і і і і і±іі і і П B іІіі і і і і і і±іі і і П C і±іі і ЪДДДДДДДДДДДї і і і і і±іі і і П F і±іі і і і±і і і і ГДґі і і П G ГДґі і і ? Help і±і і і і іvіі і і П I іvіі і АДДДДДДДДДДДЩ±і і і АДДДДДДДДДДДДДДДБДЩі і АДДДДДДДДДДДДДДДБДЩі і ±±±±±±±±±±±±і і АДДДДДДДДДДДДДДДДДДДДЩ АДДДДДДДДДДДДДДДДДДДДЩ і і АДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДБДДДДДДДДДДДДДДДЩ Рис. 9.4 Диалоговое окно Add File To Project Add file to project - добавление файла к проекту; File name - имя файла; File type - тип файла; The resource in this file will be... - ресурс в данном файле будет в...; Path - маршрут; Files - файлы; Directories - каталоги Данное диалоговое окно выводит подсказку для ввода файла, в который будет записан курсор. В блоке Files (Файлы) выводятся все файлы в текущем каталоге, имеющие расширение .CUR. Для выбора но- вого каталога вы можете использовать блок Directory (Каталог). Введите новое имя файла или маршрута, либо выберите файл из списка. Расширение .CUR указывать не нужно (хотя, если вы этого не сделаете, Пакету разработчика ресурсов может оказаться не просто найти файл курсора). Пакет разработчика ресурсов предус- матривает для вас корректный тип файла - CUR (файл образа курсо- ра). Когда вы сделаете свой выбор, активизируйте командную кнопку OK. Пакет разработчика ресурсов выводит новую запись курсора в окне проекта и открывает графический редактор с новым ресурсом курсора. Редактирование существующего курсора ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД Перед началом работы с курсором нужно открыть либо новый проект, либо уже существующий. (Об открытии проектов рассказыва- ется в Главе 3.) При этом Пакет разработчика ресурсов выводит ок- но проекта. Чтобы вывести курсор в окне графического редактора, нужно дважды щелкнуть кнопкой "мыши" на записи курсора в окне проекта, или выделить запись ресурса и выбрать команду ResourceіEdit (Ре- сурсіРедактирование). Если вы хотите отредактировать запись ресурса для курсора, выберите курсор в окне проекта, щелкнув на нем кнопкой "мыши", затем выберите команду ResourceіEdit As Text (РесурсіРедактирова- ние в виде текста). Маловероятно, что вы захотите редактировать курсор в виде записи ресурса, поскольку эта запись почти целиком состоит из последовательности шестнадцатиричных значений. Настройка курсора ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД После того, как вы откроете курсор в окне графического ре- дактора, можете начать его настраивать. Вы можете использовать все средства, описанные в Главе 8. Перед началом работы рассмот- рим несколько заслуживающих внимания вопросов. Вопросы проектирования ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД Перед началом работы с курсором стоит рассмотреть следующие вопросы: - Что должен представлять курсор для пользователя? Специальный курсор должен ясно показывать, для чего он предназначен. Типичным случаем использования курсора явля- ется представление задачи, выполняемой пользователем. Нап- ример, в графической программе курсор может выводиться в виде кисти, ластика или пера, в зависимости от того, что делает пользователь. - Будет ли очевидным, где находится оперативная точка курсо- ра? Оперативная точка - это активная область курсора, которую пользователь может перемещать на управляющие элементы, ме- ню, и т.д. и щелкать кнопкой "мыши". Например, если вы ис- пользуете курсор в виде стрелки, то пользователь ожидает, что оперативная точка находится на кончике стрелки. В дру- гих случаях для указания активной области вы можете ис- пользовать крестик. Например, когда вы выбираете инстру- ментальное средство "Банка с краской", редактор Пакета разработчика ресурсов превращает курсор "мыши" в банку с краской с крестиком (см. выше Рис. 10). - Достаточно ли прост ваш курсор, чтобы помещаться в область 32х32 или 32х16 элементов изображения? Нужно помнить о том, что курсор будет маленьким, поэтому вы не можете вместить в него много деталей. - Будет ли курсор нормально выглядеть при выборе пользовате- лем различных фоновых цветов? Подумайте о том, где скорее всего будет выводиться курсор скорее всего будет выводиться, и проверьте как он выглядит при различном выборе фонового цвета и образца. Когда вы определитесь с выбором подходящей стратегии, можете начать создание курсора. Увеличение размера курсора ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД Вы можете масштабировать (увеличивать размер) курсора, как и любой другой графический ресурс. Как и для пиктограмм, в меню View (Просмотр) имеется дополнительная команда, CGA Resolution [32x16] (Разрешающая способность CGA), которая позволяет вам уви- деть, как курсор будет выглядеть на экране CGA. Выбор данной ко- манду преобразует изображение к его фактическому размеру и выво- дит его в формате 32х16. Чтобы выйти из режима CGA, выберите одну из команд масштабирования. Пакет разработчика ресурсов создает только курсоры размером 32х32 элемента изображения. Посмотреть, как курсор будет выгля- деть на экране CGA, можно с помощью команды ViewіCGA Resolution [32x16] (ПросмотріРазрешающая способность CGA). Но с помощью дан- ной команды вы можете только изменить вывод курсора, но не сам курсор - он останется курсором в формате 32х32. Работа с прозрачной и инвертированной областями ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД Как уже упоминалось в Главе 8, прозрачная и инвертированная области выводятся при редактировании пиктограммы цветами. Однако, когда вы используете пиктограмму, прозрачная область выводится цветом, соответствующим цвету оперативной области, а инвертиро- ванная область - цветом, инвертированным к данному цвету. Фоновый цвет Новое изображение курсора автоматически имеет прозрачный фон. Поэтому, если создается новое изображение и вы нарисуете в нем только одну линию, то увидите эту линию только при проверке графического изображения на фоне оперативной области - блок с фо- новым цветом и линия в нем не видны. Как и в случае пиктограммы, вы можете изменить цвет прозрач- ной и инвертированной области курсора. Обычно фон курсора остает- ся прозрачным, благодаря чему пользователь может видеть изображе- ние, на котором находится курсор. Изменение цвета прозрачной и инвертированной областей Вы можете изменить цвета, которыми графический редактор вы- водит прозрачную и инвертированную области. Это один из способов, позволяющий вам увидеть, как выглядит курсор на различных цветах. Но лучше проверить курсор (см. далее раздел "Проверка курсора"). Вы можете изменить цвет ввода прозрачной и инвертированной областей в графической редакторе. Это делается следующим образом: 1. Выделите Transparent (Прозрачная) или Inverted (Инверти- рованная), выполнив следующие шаги: - В палитре Colors дважды щелкните кнопкой "мыши" на строке под Transparent или Inverted. - Выберите команду CursorіEdit Transparent Color (Курсорі Редактирование цвета прозрачной области). 2. Пакет разработчика ресурсов выводит следующее диалоговое окно: ЪДДДВДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДї і - і Set transparent color і ГДДДБДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДґ і ЪДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДїі і і іі і і ±±±±±±± °°°°°°° ІІІІІІІ іі і і ±±±±±±± °°°°°°° ІІІІІІІ іі і і ±±±±±±± °°°°°°° ІІІІІІІ іі і і іі і і Requested Granted Inverse іі і і іі і і ЪДДДДї ЪДДДДї ЪДДДДї ЪДВДДДДДДДДДДДДДДДДДДДВДїіі і і і160±і і160 і і128 і Red і<і°°°°°°°°°І°°°°°°°°°і>ііі і і АДДДДЩ АДДДДЩ АДДДДЩ АДБДДДДДДДДДДДДДДДДДДДБДЩіі і і ЪДДДДї ЪДДДДї ЪДДДДї ЪДВДДДДДДДДДДДДДДДДДДДВДїіі і і і160 і і160 і і128 і Green і<і±±±±±±±±±І±±±±±±±±±і>ііі і і АДДДДЩ АДДДДЩ АДДДДЩ АДБДДДДДДДДДДДДДДДДДДДБДЩіі і і ЪДДДДї ЪДДДДї ЪДДДДї ЪДВДДДДДДДДДДДДДДДДДДДВДїіі і і і164 і і164 і і128 і Blue і<іІІІІІІІІ°ІІІІІІІІІІі>ііі і і АДДДДЩ АДДДДЩ АДДДДЩ АДБДДДДДДДДДДДДДДДДДДДБДЩіі і і іі і АДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЩі ГДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДґ і ЪДДДДДДДДДДДї ЪДДДДДДДДДДДї ЪДДДДДДДДДДДї і і і _ і± і і± і і± і і і V OK і± і X Cancel і± і ? Help і± і і АДДДДДДДДДДДЩ± АДДДДДДДДДДДЩ± АДДДДДДДДДДДЩ± і і ±±±±±±±±±±±± ±±±±±±±±±±±± ±±±±±±±±±±±± і і і АДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЩ Рис. 10.5 Диалоговое окно Edit Transparent and Inverted Color Set transparent color - установка цвета прозрачной области; Requested - запрошен; Granted - задан; Inverse - инвертированный; OK - подтверждение выбора; Cancel - отмена; Help - справка Данное диалоговое окно работает аналогично окну Edit Colors (Редактирование цветов) (см. Рис. 8.13), но изменяет одновременно цвет и прозрачной, и инвертированной области. Как вы можете заметить, в данном окне имеется третий цвет, Inverted, который является инвертированным по отношению к цвету в среднем блоке. Цвет в среднем блоке становится цветом прозрачной области, а цвет в блоке справа становится цветом инвертированной области. Задание оперативной точки курсора ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД При создании курсора и его настройки важным вопросом являет- ся размещение его оперативной точки - активной области курсора. Активная точка - это одиночный элемент изображения курсора, фик- сирующая то место, в которое пользователь помещает курсор и нажи- мает кнопку "мыши", чтобы сделать выбор. Чтобы задать оперативную точку, нужно решить, какие коорди- наты должна иметь оперативная точка в элементах изображения. Ко- ординаты в элементах изображения задаются в горизонтальных (x) и вертикальных (y) единицах. Верхний левый угол образа курсора име- ет координаты x=0, y=0. Нижним правым элементом изображения кур- сора 32х32 является x=31 и y=31, а для курсора 32х16 - x=31, y =15. К счастью, вам не нужно считать координаты. Нужно просто по- местить элемент рисования (например, перо) на то место, где вы хотите получить оперативную точку. Строка состояния в нижней час- ти окна редактирования покажет координаты в элементах изображе- ния. (Запомните эти координаты, чтобы ввести их позднее в диало- говом окне Set Hot Spot.) После того, как вы определите координаты, выберите команду CursorіSet Hot Spot (КурсоріЗадание оперативной точки). ЪДДДВДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДї і - і Set hot spot і ГДДДБДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДґ і ЪДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДїі і і іі і і ЪДДДДДДДДДДДДДДДДДДДДДДДї іі і і Horizontal (x): і±16± і іі і і АДДДДДДДДДДДДДДДДДДДДДДДЩ іі і і ЪДДДДДДДДДДДДДДДДДДДДДДДї іі і і Vertical (y): і 14 і іі і і АДДДДДДДДДДДДДДДДДДДДДДДЩ іі і і іі і АДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЩі ГДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДґ і ЪДДДДДДДДДДДї ЪДДДДДДДДДДДї ЪДДДДДДДДДДДї і і і _ і± і і± і і± і і і V OK і± і X Cancel і± і ? Help і± і і АДДДДДДДДДДДЩ± АДДДДДДДДДДДЩ± АДДДДДДДДДДДЩ± і і ±±±±±±±±±±±± ±±±±±±±±±±±± ±±±±±±±±±±±± і і і АДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЩ Рис. 10.6 Диалоговое окно Set Hot Spot Set hot spot - задание оперативной области; Horizontal - по горизонтали; Vertical - по вертикали; OK - подтвердить выбор; Cancal - отмена; Help - справка Подробно процесс задания оперативной точки можно описать следующим образом: 1. Когда курсор находится в графическом редакторе, увеличьте образ курсора, пока он не достигнет величины, позволяющей вам точно выбрать координаты оперативной точки. 2. Обеспечьте вывод в увеличенном изображении сетки. Если необходимо, выберите команду OptionsіEditor Options (Па- раметрыіПараметры редактора) и установить параметр Grid On Zoomed Windows (Сетка на увеличенных окнах). 3. Выберите инструментальное средство, позволяющее вам точно указать на элемент изображения. Хорошим выбором здесь бу- дет инструментальное средство "Линия", поскольку для точ- ного указания оно использует крестик. 4. Используя выбранное средство, укажите то место в увели- ченном изображении, где вы хотите получить оперативную точку, и запомните координаты, выводимые в строке состоя- ния. 5. Выберите команду CursorіSet Hot Spot (КурсоріЗадание опе- ративной точки) и наберите данные координаты. Проверка курсора ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД В любой нужный момент с помощью команды CursorіTest вы може- те проверить свой курсор. Пакет разработчика ресурсов превращает текущий курсор в проверочную версию вашего курсора. Вы можете перемещать его и посмотреть, как он выглядит на различном фоне. Когда вы завершите проверку, просто щелкните кнопкой "мыши", чтобы получить снова реальный курсор. Для проверки оперативной точки курсора сделайте следующее: 1. Увеличьте изображение курсора с включенной сеткой. 2. Выберите инструментальное средство с крестиком, например, банку с краской. 3. Выберите команду CursorіTest (КурсоріПроверка). 4. Переместите оперативную точку в конкретный элемент изоб- ражения увеличенного образа и щелкните кнопкой "мыши". Когда вы щелкните кнопкой "мыши", проверочный курсор ис- чезнет и заменится инструментальным средством, выбранным на шаге 2. Если вы корректно установили оперативную точ- ку, инструментальное средство будет указывать на ту же точку (элемент изображения), на какую указывает ваш про- веряемый курсор. Сохранение изменений ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД В процессе работы полезно сохранять изменения, не дожидаясь пока Пакет разработчика ресурсов выведет вам подсказку при закры- тии проекта. Основным методом сохранения изменений, внесенных в ресурс курсора, является сохранение всего проекта. Вы можете так- же сохранить ресурс курсора отдельно в виде файла, но эта возмож- ность используется только в определенных обстоятельствах. Сохранение проекта ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД Чтобы сохранить весь проект, выберите команду FileіSave Project (ФайліСохранение проекта). Пакет разработчика ресурсов компилирует ресурсы, которые изменились со времени последней ком- пиляции, и сохраняет их в файле проекта. Любой измененный ресурс, связанный с внешним файлом, обновляется во внешнем файле. Примечание: Чаше всего используется параметр Save. Сохранение ресурса курсора в виде файла ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД Сохранение всего проекта сохраняет также ресурс курсора, с которым вы работаете. Однако, ресурс курсора можно сохранить в файле, чтобы данный двоичный формат использовался другими прог- раммами. В этом случае нужно выбирать команду ResourceіSave Resource As (РесурсіСохранение ресурса в виде...). 1. При выборе команды ResourceіSave As Пакет разработчика ресурсов выводит диалоговое окно Save Resource As (Сохра- нение ресурса). ЪДДДВДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДї і - і Save resource as і ГДДДБДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДВДДДДДДДДДДДДДДДґ і і і іЪДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДї і ЪДДДДДДДДДДДї і іі ЪДДДДДДДДДДДДДДДДДДДДДДДДДїі і і _ і±і іі New file name і±*.cur± іі і і V OK і±і іі АДДДДДДДДДДДДДДДДДДДДДДДДДЩі і АДДДДДДДДДДДЩ±і іі ЪДДДДДДДДДДДДДДДДДДДДДДДВДїі і ±±±±±±±±±±±±і іі File type і CUR cursor image іvіі і і іі АДДДДДДДДДДДДДДДДДДДДДДДБНЩі і і іі і і і іАДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЩ і і і і і і File±selected±rwdemo.cur±±±±±±±±±±±±±±±±±±± і і і і ЪДДДДДДДДДДДї і і і і і±і і і і X Cancel і±і і Path±±±±±c:\workshop±±±±±±±±±±±±±±±±±±±±±±± і АДДДДДДДДДДДЩ±і і і ±±±±±±±±±±±±і і ЪДДДДДДДДДДДДДДДДДДДДї ЪДДДДДДДДДДДДДДДДДДДДї і і і і Files і і Directories і і і і і ЪДДДДДДДДДДДДДДДВДїі і ЪДДДДДДДДДДДДДДДВДїі і і і і і К arrow.cur і^іі і і П .. і^іі і і і і і К mycursor.curГДґі і і П temp ГДґі і і і і і К rwdemo.cur іІіі і і П A і±іі і і і і і і±іі і і П B іІіі і і і і і і±іі і і П C і±іі і ЪДДДДДДДДДДДї і і і і і±іі і і П F і±іі і і і±і і і і ГДґі і і П G ГДґі і і ? Help і±і і і і іvіі і і П I іvіі і АДДДДДДДДДДДЩ±і і і АДДДДДДДДДДДДДДДБДЩі і АДДДДДДДДДДДДДДДБДЩі і ±±±±±±±±±±±±і і АДДДДДДДДДДДДДДДДДДДДЩ АДДДДДДДДДДДДДДДДДДДДЩ і і АДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДБДДДДДДДДДДДДДДДЩ Рис. 10.7 Диалоговое окно Save File As Save file as - сохранение файла; File selected - имя выбран- ного файла; File type - тип файла; Path - маршрут; Files - файлы; Directories - каталоги; OK - подтверждение выбора; Cancel - отме- на; Help - справка 2. Введите имя нового файла или выберите корректное имя файла из списка Files (Файлы). Если вы хотите поместить файл в другой каталог, можете изменить маршрут в списке Directories (Каталоги), либо ввести маршрут при задании имени файла. Когда имя файла будет корректным, нажмите клавишу Enter или щелкните кнопкой "мыши" на командной кнопке OK. 3. Пакет разработчика ресурсов запрашивает у вас, хотите ли вы включить в файл проекта ссылку на данный внешний файл, и в какой именно. Ответ Yes (Да) приведет к тому, что все последующие изменения в курсоре будут сохраняться в дво- ичном виде во внешнем файле курсора, но не в файле проек- та или в предыдущем файле курсора. Редактирование записи ресурса курсора ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД Хотя это маловероятно, иногда возникает необходимость редак- тирования записи ресурса курсора. Чтобы сделать это, выделите ре- сурс курсора в окне проекта и выберите команду ResourceіEdit as Text (РесурсіРедактирование в виде текста). Пакет разработчика ресурсов выводит запись ресурса курсора в окне редактирования. ЪДДДВДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДВДДДВДДДї і - і CURSOR : CURSOR_1 і v і ^ і ГДДДБДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДБДДДБДВДґ іCURSOR_1 CURSOR і^і іBEGIN ГДґ і '00 00 00 02 00 01 00 20 40 00 00 10 0E 00 38 01' іІі і '00 00 16 00 00 00 00 28 08 00 00 20 00 00 40 00' і±і і '00 00 01 00 01 00 00 00 00 00 00 02 00 00 00 00' і±і і '00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00' і±і і '00 00 FF FF FF 00 00 00 00 00 00 00 00 00 00 00' і±і і '00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00' і±і і '00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00' і±і і '00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00' і±і і '00 00 00 00 80 00 00 00 80 00 00 03 E0 00 00 00' і±і і '80 00 00 00 80 00 00 00 00 00 00 00 00 00 00 00' і±і і '00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00' і±і і '00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00' і±і і '00 00 00 00 00 00 FF FF FF FF FF FF FF FF FF FF' і±і і '7F FF FF FF FF FF FF FF FF FF FF F8 0F FF FF E7' і±і і '73 BF FF 7D FF FF FF FF FF FF FF FF FF FF FF FF' і±і і '7F EF FF FF FF FF FF FF FF FF 01 8F FF FF FB FF' і±і і 'FF EF FF 7F FF FF FF FF FF FF FF FF F8 C0 FB FF' і±і і 'FF DF FF 7D FF FF FF FF FF FF FF FF DF 7F FF FF' і±і і '7F FF FF 7F FF FF 01 FF FF FF 7F FF 7F FF FF FF' і±і і 'FE FF FF FF FF FF FF E3 FF FF FF FF FF FF FF FF' ГДґ і '7F FF FF FF 7F FF 00 00 00 00' іvі ГДВДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДВДЕДґ і<іІ±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±і>і і АДБДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДБДБДЩ Рис. 10.8 Запись ресурса для курсора в окне редактирования Единственными полностью понятными частями записи ресурса пиктограммы является первая и вторая строка (имя ресурса и "BEGIN" и последняя строка "END"). Между второй строкой и послед- ней содержится шестнадцатиричный код. Если хотите, можете на свой страх и риск отредактировать этот код, и посмотреть, как это по- действует на курсор. Глава 11. Создание битовых массивов ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД Битовые ресурсы выводят в программах Windows графические изображения. Windows использует битовые массивы для представления полос прокрутки, кнопок минимизации и максимизации и т.д. Вы мо- жете также использовать битовые ресурсы для создания образцов кистей, которые ваша программа может использовать для закраски областей экрана. ЪДДДДДДДДДДДДДДДДДДДДДДДДДДДДї і±±±±±±±±±±±±±±±±±±±±±±±±±±±±і і±±±±±±±±±±±±±±±±±±±±±±±±±±±±і і±±±±±±±±±±±±±± П ±±±±±±±±±±і і±±±±±±±±±±±±±± П ±±±±±±±±±±і і±±±±±±±±±±±±±± П ±±±±±±±±±±і і±±±±±±±±±±±±± ±±±±±±±±±і і±±±±±±±±±±± П ±±±±±±±і і±±±±±±±±±±± П ±±±±±±±і і±±±±±±±±±±±± П ±±±±±±±±і і±±±±±±±±±±±±± П ±±±±±±±±±і і±±±±±±±±±±±±± п ±±±±±±±±±±і і±±±±±±±±±±± п ±±±±±±±±±±±і і±±±±±±±± ±±±±±±±±±±±±±і і±±±±±±±±±±±±±±±±±±±±±±±±±±±±і і±±±±±±±±±±±±±±±±±±±±±±±±±±±±і АДДДДДДДДДДДДДДДДДДДДДДДДДДДДЩ Рис. 11.1 Битовый массив Brush (Кисть) из инструментальной палитры графического редактора (увеличено) Чтобы построить различные типы битовых массивов, вы можете использовать многофункциональный графический редактор Пакета раз- работчика ресурсов, который включает в себя множество инструмен- тальных средств и палитру цветов. В графическом редакторе вы мо- жете просматривать и увеличивать в размере различные изображения создаваемого битового массива. Создание битового массива аналогично созданию пиктограммы, только здесь не используются прозрачные и инвертированные облас- ти. Однако с помощью команд Size и Attributes вы можете изменить размер и атрибуты своего графического изображения. Если вы готовы начать, и вам требуется помощь в создании би- товых массивов, мы рекомендуем вам прочитать следующее: - Главу 8 "Использование графического редактора", в которой описаны все функции данного редактора. Большинство функций графического редактора при создании пиктограмм, курсоров, битовых массивов и шрифтов работают одинаково. Подробную информацию о различиях можно найти в главах 8 - 12. - Создание пример пиктограммы в Главе 9. Эта глава включает в себя инструкции для пошагового создания пиктограмм и по- казывает вам некоторые средства графического редактора. При работе с битовыми массивами выполняются следующие четыре основные задачи: - запуск графического редактора; - настройка курсора; - проверка курсора; - сохранение курсора. Запуск графического редактора ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД Для работы с битовым массивом вам потребуется запустить гра- фический редактор, создав новый битовый массив или выбрав уже су- ществующий. Создание нового битового массива ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД Чтобы создать новый курсор, сделайте следующее: 1. Откройте существующий проект или создайте новый. 2. Выберите команду ResourceіNew (РесурсіНовый) или выберите тип ресурса .BMP. Пакет разработчика ресурсов запрашивает у вас, хотите ли вы создать битовый массив в исходном ви- де или в двоичном формате. ЪДДДВДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДї і - і Resource Workshop і ГДДДБДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДґ і і і ЪДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДїі і і іі і і іі і і іі і і Do you want this resource to be іі і і created in source form, or as a іі і і Microsoft compatible binary? іі і і іі і і іі і і іі і і іі і і іі і і іі і і іі і АДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЩі ГДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДґ і ЪДДДДДДДДДДДї ЪДДДДДДДДДДДї ЪДДДДДДДДДДДї ЪДДДДДДДДДДДї і і і ;;; і± і \ і± і і± і і± і і і .. Source і± і \ Binary і± і X Cancel і± і ? Help і± і і АДДДДДДДДДДДЩ± АДДДДДДДДДДДЩ± АДДДДДДДДДДДЩ± АДДДДДДДДДДДЩ± і і ±±±±±±±±±±±± ±±±±±±±±±±±± ±±±±±±±±±±±± ±±±±±±±±±±±± і і і АДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЩ Рис. 11.2 Диалоговое окно с подсказкой Source - исходный вид; Binary - двоичный формат; Cancel - отмена; Help - справка Создание битового массива в исходном виде позволяет объ- единить ресурсы, поскольку все записи ресурсов можно сох- ранить в исходном файле ресурсов. Если требуется совмес- тимость битового массива с компиляторами Microsoft, или вы хотите использовать битовый массив в нескольких проек- тах, запишите битовый массив в двоичном формате (файл .BMP). 3. Выберите Source (Исходный) для сохранения битового масси- ва в виде записи ресурса или Binary (Двоичный) для записи его в двоичном формате. При выборе Source выводится диалоговое окно New Bitmap Attributes (Новые атрибуты битового массива). ЪДДДВДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДї і - і New bitmap attributes і ГДДДБДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДґ і ЪДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДїі і і Size іі і і ЪДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДї іі і і і ЪДДДДДДДДДДДДДДДї і іі і і і Width in pixels і 64 і і іі і і і АДДДДДДДДДДДДДДДЩ і іі і і і ЪДДДДДДДДДДДДДДДї і іі і і і Heihgt in pixels і 64 і і іі і і і АДДДДДДДДДДДДДДДЩ і іі і і і і іі і і АДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЩ іі і і Colors іі і і ЪДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДї іі і і і і іі і і і > 2 Color і іі і і і і іі і і і *> 16 color і іі і і і і іі і і і > 256 color і іі і і і і іі і і АДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЩ іі і АДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЩі ГДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДґ і ЪДДДДДДДДДДДї ЪДДДДДДДДДДДї ЪДДДДДДДДДДДї і і і _ і± і і± і і± і і і V OK і± і X Cancel і± і ? Help і± і і АДДДДДДДДДДДЩ± АДДДДДДДДДДДЩ± АДДДДДДДДДДДЩ± і і ±±±±±±±±±±±± ±±±±±±±±±±±± ±±±±±±±±±±±± і і і АДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЩ Рис. 11.3 Диалоговое окно New Bitmap Attributes New bitmap attributes - новый атрибуты битового массива; Size - размер; Width in pixels - ширина в элементах изображения; Heihgt in pixels - высота в элементах изображения; Colors - цве- та; OK - выполнить; Cancel - отменить; Help - справка Эти параметры позволяют вам определить: - Размер битового массива. Введите высоту и ширину битового изображения, которое вы хотите создать (в элементах изоб- ражения). - Число цветов, с которыми вы хотите работать при создании битового изображения. Выберите 2 color (2 цвета), 16 color (16 цветов) или 256 color. Возможности вашей компьютерной системы могут ограничивать возможный выбор. Например, если компьютер не может выводить 256 цветов, данный параметр будет выведен с пониженной яркостью, и вы не сможете его выбрать. После выбора нужных параметров активизируйте командную кноп- ку OK. Выводится графический редактор. Если вы выберите Binary (Двоичный), Пакет разработчика ре- сурсов выводит диалоговое окно, позволяющее вам указать имя файла битового массива и задать, куда вы хотите записать ресурс. После выполнения действий в диалоговом окне выберите командную кнопку OK. Выводится графический редактор. Редактирование существующих битовых массивов ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД После открытия проекта, содержащего существующий битовый массив, найдите запись BITMAP, которую вы хотите редактировать в окне проекта. Каждая запись BITMAP в окне проекта представляет ресурс. Дважды щелкните на имени кнопкой "мыши", либо выделите имя и выберите команду ResourceіEdit (РесурсіРедактирование). Вы увидите окно графического редактора с битовым массивом. Если вы хотите редактировать запись ресурса битового масси- ва, выделите битовый массив в окне проекта (щелкнув на нем кноп- кой "мыши"), затем выберите команду ResourceіEdit As Text (Ресурс іРедактирование в виде текста). Настройка битового массива ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД Когда вы выведите битовый массив в графическом редакторе, используйте для внесения в него изменений инструментальные средс- тва. Например, вы можете нарисовать новую часть битового массива, либо изменить существующий битовый массив, стерев некоторую его часть. Здесь применимы многие процедуры, которые вы уже изучили при работе с другими подобными ресурсами. Однако к битовому изо- бражению нельзя добавить прозрачную или инвертированную область. Изменение размера и цветов битового массива ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД Команда BitmapіSize (Битовый массивіРазмер) позволяет вам изменить следующее: - Размер битового изображения и нужно ли сжать или растянуть изображение, если вы изменяете размер всего графического образа. - Число цветов, используемых в графическом изображении. - Как должен записываться битовый массив (в сжатом или рас- пакованном формате, или в формате, совместимом с Windows или OS/2). Чтобы изменить любой из этих атрибутов битового изображения, с которым вы работаете, в графическом редакторе, выберите команду BitmapіSize and Attributes (Битовое изображениеіРазмер и атрибу- ты). Вы увидите диалоговое окно Set Bitmap Attributes (Установка атрибутов битового массива). ЪДДДВДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДї і - і New bitmap attributes і ГДДДБДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДґ і ЪДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДїі і і Size іі і іЪДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДїЪДДДДДДДДДДДДДДДДДДДДДДДї іі і іі ЪДДДДДДДї іі і іі і іі Width in pixels і 64 і іі <* None і іі і іі АДДДДДДДЩ іі і іі і іі ЪДДДДДДДї іі > RLE 4 і іі і іі Heihgt in pixels і 64 і іі і іі і іі АДДДДДДДЩ іі > RLE 8 і іі і іі ЪДї іі і іі і іі іVі Resize current bitmap іі і іі і іі АДЩ іі і іі і іАДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЩАДДДДДДДДДДДДДДДДДДДДДДДЩ іі і і Colors Format іі і і ЪДДДДДДДДДДДДДДДДДДДДДДДДДДДДДїЪДДДДДДДДДДДДДДДДДДДДДДДї іі і і і іі і іі і і і > 2 Color іі <* Windows і іі і і і іі і іі і і і *> 16 color іі > OS/2 і іі і і і іі і іі і і і > 256 color іі і іі і і і іі і іі і і АДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЩАДДДДДДДДДДДДДДДДДДДДДДДЩ іі і АДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЩі ГДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДґ і ЪДДДДДДДДДДДї ЪДДДДДДДДДДДї ЪДДДДДДДДДДДї ЪДДДДДДДДДДДї і і і _ і± і і± і _ Device і± і і± і і і V OK і± і X Cancel і± і І Info і± і ? Help і± і і АДДДДДДДДДДДЩ± АДДДДДДДДДДДЩ± АДДДДДДДДДДДЩ± АДДДДДДДДДДДЩ± і і ±±±±±±±±±±±± ±±±±±±±±±±±± ±±±±±±±±±±±± ±±±±±±±±±±±± і і і АДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЩ Рис. 11.4 Диалоговое окно Set Bitmap Attributes Set bitmap attributes - задание атрибутов битового массива; Size - размер; Compression - сжатие; None - нет сжатия; Width in pixels - ширина в элементах изображения; Format - формат; Heihgt in pixels - высота в элементах изображения; Resize current bitmap - изменить размер текущего битового массива; Colors - цвета; OK - выполнить; Device info - информация об устройстве; Cancel - отме- нить; Help - справка Перечислим параметры: Размер битового массива и параметры атрибутов Таблица 11.1 ЪДДДДДДДДДДДДДДДДДДДВДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДї і Параметр і Описание і ГДДДДДДДДДДДДДДДДДДДЕДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДґ і Size і Введите высоту и ширину в элементах изоб-і і (размер) і ражения полного графического образа. і і і і і і Максимальный размер, с которым вы можетеі і і работать, ограничивается только объемомі і і памяти вашего компьютера. Даже если выі і і введете для высоты и ширины значения 9999,і і і весьма вероятно, что максимальный размері і і битового изображения для вашего компьютераі і і значительно меньше. і і і і і і Если вы хотите сжать или растянуть уже на-і і і рисованное изображение, установите пара-і і і метр Resize Current Bitmap (Изменение раз-і і і мера текущего битового массива).і і і Предположим, например, что вы создаете би-і і і товое изображение размером 64х64. Если выі і і хотите, чтобы это изображение поместилосьі і і в половинном размере (32х32 элемента изоб-і і і ражения), установите параметр Resizeі і і current bitmap (Изменение размера текущегоі і і графического изображения) при задании но-і і і вого размера. і і і і ГДДДДДДДДДДДДДДДДДДДЕДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДґ і Colors і Если ваш компьютер работает с цветами, выі і (цвета) і можете выбрать 16- и 256-цветные изобра-і і і жения. Те параметры, с которым компьютері і і работать не может, выводятся с пониженнойі і і яркостью, что означает, что вы не можетеі і і их выбирать. Поэтому, если ваш компьютері і і может создавать 16-цветные изображения, ноі і і не может работать с 256-цветными, вы смо-і і і жете выбирать только 2 или 16 цветов, аі і і параметр 256 color будет запрещен. і і і і ГДДДДДДДДДДДДДДДДДДДЕДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДґ і Compression і Пакет разработчика ресурсов позволяет вамі і (сжатие) і сжимать графические изображения і і і і і None і Выберите данный параметр для 2-цветных би-і і (нет) і товых массивов. і і і і і RLE4 і Выберите данный параметр для 16-цветныхі і (нет) і битовых массивов. і і і і і RLE8 і Выберите данный параметр для 256-цветныхі і (нет) і битовых массивов. і і і і ГДДДДДДДДДДДДДДДДДДДЕДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДґ і Format і Позволяет вам записывать битовый массив ві і (формат) і формате Windows или OS/2. і і і і АДДДДДДДДДДДДДДДДДДДБДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЩ Сохранение битового массива ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД Полезно сохранять изменения в процессе работы, не дожидаясь, пока Пакет разработчика ресурсов выведет вам подсказку при закры- тии проекта. При сохранении изменений, внесенных в ресурс битово- го массива, вы можете использовать две возможности (хотя второй метод используется редко). Вы можете: - Сохранить весь проект. - Сохранить ресурс битового массива в виде файла. Сохранение всего проекта ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД Чтобы сохранить весь проект, выберите команду FileіSave All (ФайліСохранить все). Пакет разработчика ресурсов компилирует ре- сурсы, которые изменились со времени последней компиляции, и сох- раняет их в файле проекта. Он обновляет также все изменения ре- сурса, связанные с внешним файлом. Этот параметр сохранения используется наиболее часто. Сохранение битового массива в виде файла ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД Сохранение всего проекта приводит также к сохранению битово- го массива, с которым вы работаете. Если вы хотите сохранить только битовый массив, то можете выбрать команду ResourceіSave Resource As (РесурсіСохранение ресурса) для сохранения ресурса в виде файла. Это может потребоваться в случае первоначального раз- мещения ресурса в двоичном формате в отдельном файле. Чтобы сох- ранить ресурс в виде файла, сделайте следующее: 1. Выберите команду ResourceіSave As (РесурсіСохранение). Пакет разработчика ресурсов выводит диалоговое окно Save File As (Сохранение файла). 2. Введите новое имя файла или выберите корректное имя из списка Files (Файлы). Если вы хотите поместить файл в другой каталог, то можете изменить маршрут с помощью списка Directories (Каталоги), либо ввести маршрут при наборе имени файла. Когда вы убедитесь, что имя файла корректно, нажмите клавишу Enter или выберите командную кнопку OK. 3. Пакет разработчика ресурсов запрашивает у вас, хотите ли вы ссылаться в файле проекта на данный внешний файл и где. Если вы выберите Yes (Да), все последующие изменения битового массива сохраняются в двоичном виде во внешнем файле битового массива, а не в файле проекта или предыду- щем файле битового массива. Проверка битового массива ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД Чтобы проверить битовый массив, вам нужно скомпилировать ре- сурс битового массива и связать его с выполняемым файлом (.EXE). После этого вы можете запустить выполняемый файл и посмотреть, как выглядит битовый массив. Примечание: О компиляции ресурсов в выполняемом файле рассказывается в Главе 3. Глава 12. Создание шрифтов ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД Шрифт - это набор данных, используемых компьютером для отоб- ражения или реализации отдельных символов на устройстве вывода, таком как монитор дисплея или принтер. Шрифт содержит описывающие набор данные, такие как гарнитура, набор символов, буквы в шрифте и т.д. Шрифт содержит также информацию о компьютере, необходимую для отображения каждого символа. Windows поддерживает два основных типа шрифта: растровые и рисуемые шрифты. Растровые шрифты содержат битовый образ каждого символа. Рисуемый шрифт содержит набор команд рисования каждого символа. Обычно эти шрифты содержат также некоторые коэффициенты отображения, которые компьютер использует для получения графичес- ких изображений лучшего качества различного размера. В рисуемом шрифте, который поддерживает Windows, эти коэффициенты отсутству- ют. Такие ограниченные рисуемые шрифты называются векторными шрифтами, примерами которых являются шрифты Roman, Script и Modern. Как пользователь Windows вы можете получить более разви- тую технологию работы со шрифтами, если используете преобразова- тели в растровые шрифты других фирм. Пакет разработчика ресурсов создает и редактирует только растровые шрифты Windows. Хотя вы можете использовать Пакет разработчика ресурсов для создания специальных букв, очевидно для этой работы предпочти- тельнее использовать специализированные пакеты работы со шрифта- ми. Вероятнее всего вы будете использовать Пакет разработчика ре- сурсов для работы с графическими шрифтами - небольшими битовыми массивами, которые желательно объединять вместе. Если графические шрифты представляют собой битовые массивы, почему бы не создать их, как простой битовый массив? В некоторых случаях ресурсы шрифтов и ресурсы битовых массивов взаимозаменяе- мы. Если вы создаете кисть для рисования в области экрана, вам потребуется использовать ресурсы битового массива. Но для созда- ния ресурсов битового массива, таких, как специальный символ "бомба" или выводимый на экран знак "стоп", вы можете использо- вать ресурс битового массива или шрифта. Например, следующий сим- вол "бомбы" создается в виде ресурса шрифта: . . . . .. . . ..... ±± ±±±±±± ±±±±±±±± ±±±±±±±± ±±±±±± ±± Рис. 12.1 Специализированный символ "бомба" Есть две причины, по которым желательно определять графичес- кие изображения, как часть ресурса шрифта, а не битового массива: - Проще писать код Windows для загрузки шрифта в память и его изображения. Загрузка и изображение того же образа, который хранится в виде битового массива, несколько более сложна. - Если важным является эффективное использование памяти, и вы пытаетесь пытаетесь решить, создать ли ресурс шрифта, или ресурс битового массива, вероятно следует определить его в виде битового массива. Это связано с тем, что при использовании шрифта возникают дополнительные непроизводи- тельные издержки использования памяти - при каждой загруз- ке шрифта в память Windows загружает также заголовок шриф- та (см. далее). - Шрифт содержит большое число графических образов, и для нескольких образов может оказаться более эффективной за- пись в виде части отдельного ресурса шрифта. Затем, на этапе выполнения, вам потребуется только загрузить отдель- ный ресурс. При работе с ресурсом шрифта выполняется пять основных задач: - запуск графического редактора; - настройка ресурса шрифта; - сохранение ресурса шрифта; - добавление ресурса шрифта к вашей прикладной программе; - проверка ресурса шрифта. Первая задача, запуск графического редактора, позволяет вы- вести набор готовых для настройки шрифтов. Вторая задача, наст- ройка образа шрифта, это функция самого графического редактора. Третья задача, сохранение ресурса шрифта, выполняется автомати- чески, если вы хотите записать ресурс в файле проекта. Если вы хотите сохранить ресурс в отдельном файле, то потребуется выпол- нить еще несколько шагов. Четвертая и пятая задачи, добавление ресурса шрифта к прикладной задаче и его проверка, выполняются вне Пакета разработчика ресурсов. Запуск графического редактора ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД Для работы с ресурсом шрифта вам нужно запустить графический редактор для модификации существующего или создания нового шриф- та. Создание нового ресурса шрифта ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД Для открытия графического редактора с целью создания нового ресурса шрифта сделайте следующее: 1. Откройте существующий проект или создайте новый. 2. Выберите команду ResourceіNew (РесурсіНовый) или выберите тип ресурса .FNT. Пакет разработчика ресурсов запрашивает у вас, хотите ли вы создать битовый массив в исходном ви- де или в двоичном формате. ЪДДДВДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДї і - і Resource Workshop і ГДДДБДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДґ і і і ЪДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДїі і і іі і і іі і і іі і і Do you want this resource to be іі і і created in source form, or as a іі і і Microsoft compatible binary? іі і і іі і і іі і і іі і АДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЩі ГДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДґ і ЪДДДДДДДДДДДї ЪДДДДДДДДДДДї ЪДДДДДДДДДДДї ЪДДДДДДДДДДДї і і і ;;; і± і \ і± і і± і і± і і і .. Source і± і \ Binary і± і X Cancel і± і ? Help і± і і АДДДДДДДДДДДЩ± АДДДДДДДДДДДЩ± АДДДДДДДДДДДЩ± АДДДДДДДДДДДЩ± і і ±±±±±±±±±±±± ±±±±±±±±±±±± ±±±±±±±±±±±± ±±±±±±±±±±±± і і і АДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЩ Рис. 12.2 Диалоговое окно с подсказкой Source - исходный вид; Binary - двоичный формат; Cancel - отмена; Help - справка Сохранение ресурса шрифта в исходном виде позволяет объ- единить ресурсы, поскольку все записи ресурсов можно сох- ранить в исходном файле проекта. Если требуется совмести- мость битового массива с компиляторами Microsoft, или вы хотите использовать шрифт в нескольких проектах, запишите шрифт в двоичном формате (файл .FNT). 3. Выберите Source (Исходный) для сохранения шрифта в виде записи ресурса или Binary (Двоичный) для записи его в двоичном формате. При выборе Source выводится графический редактор. Если вы выберите Binary, Пакет разработчика ресурсов выводит диа- логовое окно, позволяющее вам задать имя файла шрифта, в котором вы хотите сохранить ресурс. Введите имя файла, выберите командную кнопку OK, после чего выведется графи- ческий редактор. ЪДДДВДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДВДДДВДДДї і - і FONT : 2 і v і ^ і ГДДДБДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДБДДДБДДДґ і Facename: fixed Current Letter: 32, 0x20 і ГДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДВДДДВДДДДДДДДДДДДДДДДДВДДДВДДДґ і і - і Colors і - і X і ГДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДВЕДДДБДДДДДДДДДДДДДДДДДЕДДДЕДДДґ і іі±±±±±FG±±±±°°°BG°°°°°іЦ _і П і і іАДДДДДДДДДДДДДДДДДДДДДЕДДДЕДДДґ і і і±\±і п і і і ГДДДЕДНДґ і ±±±±±±±±±±±±±±±± і і Ъ і\\ і і ± ± і ГДДДЕДДДґ і ± ± і і \ і Т і і ± ± і ЪДДДї ГДДДЕДДДґ і ± ± і і і іі іі ± і і ± ± і АДДДЩ ГДДДЕДДДґ і ± ± і і О і * і і ±±±±±±±±±±±±±±±± і ГДДДЕДДДґ і і і о і * і і і ГДДДЕДДДґ і і і . і . і і і ГДДДЕДДДґ і і і і І і і і АДДДБДДДґ і і і ГДДДДДДДДДДДДДДДДДДДДДВДДДДДДДДДДБДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДґ і Ready і Pen x 50y - 160 і АДДДДДДДДДДДДДДДДДДДДДБДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЩ Рис. 12.3 Графический редактор при определении нового шрифта Редактирование существующего ресурса шрифта ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД Для открытия графического редактора и редактирования сущест- вующего ресурса шрифта откройте соответствующий проект. Пакет разработчика ресурса выводит окно проекта. Каждая запись FONT в окне проекта представляет один ресурс шрифта, хотя один шрифт может содержать несколько образов. Дважды щелкните кнопкой "мыши" на ресурсе в файле проекта, либо выделите имя и выберите команду ResourceіEdit (РесурсіРедактирование) для загрузки шрифта в графический редактор. Настройка файла шрифта ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД После того, как вы откроете ресурс шрифта в графическом ре- дакторе, можете начать с ним работать. Здесь вы можете использо- вать все средства графического редактора, описанные в Главе 8. Графический редактор облегчает работу со всеми символами или об- разами в ресурсе шрифта. В то время как в правой части графичес- кого редактора выводятся инструментальные средства (как при ре- дактировании курсора, пиктограммы или битового массива), в правой части выводятся все символы или образы шрифта, который вы редак- тируете. ЪДДДВДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДВДДДВДДДї і - і FONT : 2 і v і ^ і ГДДДБДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДБДДДЕДДДґ і Facename: fixed Current Letter: 32, 0x20 і°#°і ГДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДВДДДВДДДДДДДДДДДДДДДВДДДВДДДґstoі і і - і Colors і - і X ііOіі ГДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДВЕДДДБДДДДДДДДДДДДДДДЕДДДЕДДДґіOіі і іі±±±±±FG±±±°°°°BG°°°іЦ _і П іі*іі і іАДДДДДДДДДДДДДДДДДДДЕДДДЕДДДґ°°°і іЪДДДДДДДДДДДДДДДДДДДДДДДДДДДДїі і±\±і п і°°°і іі±±±±±±±± ±±±±±±±±іі ГДДДЕДНДґ°°°і іі±±±±±±± ±±±±±±±±±±±± ±±±±±±іі і Ъ і\\ і°°°і іі±±±±±±± ±±± ±±±± ±±±±±±іі ГДДДЕДДДґ°°°і іі±±±±±±± ±± ±±±±± ±±± ±±±±±±іі і \ і Т і°°°і іі±±±±±±± ±± ±±±±± ±±± ±±±±±±іі ЪДДДї ГДДДЕДДДґ°°°і іі±±±±±±± ±±± ±±±± ±±±±±±іі і O і іі іі ± і°°°і іі±±±±±±± ±±±±±±±±±±±± ±±±±±±іі і O і ГДДДЕДДДґ°°°і іі±±±±±±± ±±± ±±±± ±±±±±±іі і * і і О і * і°°°і іі±±±±±±± ±± ±±±±± ±±± ±±±±±±іі АДДДЩ ГДДДЕДДДґ°°°і іі±±±±±±± ±± ±±±±± ±±± ±±±±±±іі і о і * і°°°і іі±±±±±±± ±±± ±±±± ±±±±±±іі ГДДДЕДДДґ°°°і іі±±±±±±± ±±±±±±±±±±±± ±±±±±±іі і . і . і°°°і іі±±±±±±± ±±± ±±±± ±±±±±±іі ГДДДЕДДДґ°°°і іі±±±±±±± ±± ±±± ±±±±±±іі і і І і°°°і іі±±±±±±± ±± ±±± ±±±±±±іі АДДДБДДДґ°°°і іі±±±±±±± ±±± ±±±± ±±±±±±іі і°°°і іі±±±±±±± ±±±±±±±±±±±± ±±±±±±іі і°°°і іі±±±±±±±± ±±±±±±±±іі і°°°і іАДДДДДДДДДДДДДДДДДДДДДДДДДДДДЩі і°°°і і і і°°°і АДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДБДДДДДДДДДДДДДДДДДДДДДДДДДДДДБДДДЩ Рис. 12.4 Графический редактор с символами шрифта По умолчанию графический редактор загружает образ шрифта в верхней части дисплея. Можно щелкнуть кнопкой "мыши" на любом об- разе шрифта с правой стороны графического редактора для загрузки того шрифта, с которым вы будете работать. Изменение изображения шрифта ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД После того как вы выведете на экран графического редактора изображение шрифта, используйте необходимые графические инстру- ментальные средства. Например, вы можете нарисовать некоторые части шрифта или стереть часть существующего изображения. Если вы работаете с записью ресурса шрифта, выберите шрифт в окне проекта, щелкнув на нем кнопкой "мыши", затем выберите ко- манду ResourceіEdit As Text (РесурсіРедактирование в виде текс- та). Определение набора символов для шрифта ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД Когда вы создаете новый ресурс шрифта, то включаются только образ 8х8 элементов изображения. Обычно желательно получить в ре- сурсе шрифта более одного образа. Иногда желательно также задать различный размер образов шрифта. Чтобы задать более одного образа в ресурсе шрифта и изменить размер образа шрифта, используйте ко- манду FontіFont Size (ШрифтіРазмер шрифта). Чтобы определить размер шрифта, сделайте следующее: 1. После того, как шрифт выведен в графическом редакторе, для задания размера шрифта выберите команду FontіFont Size. Вы увидите диалоговое окно Font Size Information (Информация о размере шрифта). ЪДДДВДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДї і - і Font size information і ГДДДБДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДґ і ЪДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДїі і і Size Character іі і іЪДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДїЪДДДДДДДДДДДДДДДДДДДДїіі і іі ЪДДДДДДї іі ЪДДДДДДї ііі і іі Width (0 = variable) і±8 і іі First і 32 і ііі і іі АДДДДДДЩ іі АДДДДДДЩ ііі і іі ЪДДДДДДї іі ЪДДДДДДї ііі і іі Height і 8 і іі Last і 32 і ііі і іі АДДДДДДЩ іі АДДДДДДЩ ііі і іі ЪДДДДДДї іі ЪДДДДДДї ііі і іі Average width і±8±±±±і іі Default і 32 і ііі і іі АДДДДДДЩ іі АДДДДДДЩ ііі і іі ЪДДДДДДї іі ЪДДДДДДї ііі і іі Maximum width і 8 і іі Break і 0 і ііі і іі АДДДДДДЩ іі АДДДДДДЩ ііі і іі іі ііі і іі ІІ Stretch current chars іі ііі і іАДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЩАДДДДДДДДДДДДДДДДДДДДЩіі і АДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЩі ГДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДґ і ЪДДДДДДДДДДДї ЪДДДДДДДДДДДї ЪДДДДДДДДДДДї і і і _ і± і і± і і± і і і V OK і± і X Cancel і± і ? Help і± і і АДДДДДДДДДДДЩ± АДДДДДДДДДДДЩ± АДДДДДДДДДДДЩ± і і ±±±±±±±±±±±± ±±±±±±±±±±±± ±±±±±±±±±±±± і і і АДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЩ Рис. 12.5 Диалоговое окно Font Size Information Font size information - информация о размере шрифта; Size - размер; Width (0 = variable) - ширина (0 = переменная); Height - высота; Average width - средняя ширина; Maximum width - макси- мальная ширина; Character - символ; Stretch current chars - рас- тягивание текущих символов; Break - разрыв; First - первый; Last - последний; Default - по умолчанию; OK - выполнить; Cancel - от- менить; Help - справка 2. Сделайте выбор. Образы в ресурсе шрифта могут различаться по ширине, или могут все иметь один и тот же размер. Для выбора размера изображений (образов) шрифта используйте параметры Font Size (Размер шрифта). Параметры размера шрифта Таблица 12.1 ЪДДДДДДДДДДДДДДДДДДДДДДВДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДї і Параметр і Описание і ГДДДДДДДДДДДДДДДДДДДДДДЕДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДґ і Width і Если вы хотите, чтобы все образы имелиі і (ширина) і одну ширину, наберите ширину в элемен-і і і тах изображения. Если вы хотите полу-і і і чить разную ширину, наберите здесь 0і і і (что означает переменную длину шрифта).і і і В противном случае Average Width совпа-і і і дает с Width. і і і і і і Значение Average Width вычисляется,і і і когда вы открываете диалоговое окно.і і і (Поэтому вы не увидите изменение значе-і і і ние, когда набираете в данном диалого-і і і вом блоке другое значение.) і і і і ГДДДДДДДДДДДДДДДДДДДДДДЕДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДґ і Maximum Width і Для шрифтов с переменной длиной задай-і і (максимальная і те максимальную ширину в элементах изо-і і ширина) і бражения. Этот параметр доступен толькоі і і в том случае, если набрали в поле Widthі і і значение 0. і і і і ГДДДДДДДДДДДДДДДДДДДДДДЕДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДґ і Stretch current і Установите данный параметр, если вы хо-і і cahrs і тите растянуть или сжать существующиеі і (растягивание і образы на основе изменений высоты и ши-і і текущих символов) і рины, которые вы ввели в данном диало-і і і говом окне. і і і і АДДДДДДДДДДДДДДДДДДДДДДБДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЩ Диалоговое окно Font Size Information содержит также пара- метры шрифта, которые позволяют вам выбрать, сколько графических образов нужно включить в ресурс шрифта. Определите, сколько обра- зов вы хотите получить в ресурсе шрифта (позднее вы можете изме- нить решение). Выберите диапазон десятичных кодов для отображения образов шрифта на набор символов ANSI. Например, чтобы отобразить образ шрифта на символ a, задайте десятичный код 97. Если вы хотите, сам графический образ не обязательно должен быть символом a. В примере ресурса шрифта, обсуждаемого в конце данной главы, в сим- вол a отображается символ "бомбы". Тогда второй образ шрифта бу- дет отображаться на символ b (десятичный код 98). Для отображения набора символов или образов, которые должны быть включены в ваш ресурс шрифта, используйте следующий парамет- ры Character (Символы): Параметры символов Таблицы 12.2 ЪДДДДДДДДДДДДДДДДДДДДДДДВДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДї і Параметр і Описание і ГДДДДДДДДДДДДДДДДДДДДДДДЕДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДґ і First і Для определения первого образа вашегоі і (первый) і шрифта введите десятичный код ANSI.і і і Например, если вы хотите получить пер-і і і вый образ, соответствующий a, наберитеі і і 97. і і і і ГДДДДДДДДДДДДДДДДДДДДДДДЕДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДґ і Last і Наберите десятичный код ANSI для опре-і і (последний) і деления последнего графического образаі і і вашего шрифта. Например, если вы хоти-і і і те, чтобы последний символ соответс-і і і твовал z, наберите 122. і і і і ГДДДДДДДДДДДДДДДДДДДДДДДЕДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДґ і Default і Наберите десятичный код ANSI для опре-і і (по умолчанию) і деления образа щрифта по умолчанию,і і і который будет выводиться при редакти-і і і ровании данного ресурса шрифта. Ис-і і і пользуемое по умолчанию значение долж-і і і но находится в диапазоне символов, оп-і і і ределяемом значениями First и Last.і і і Например, если вы набрали в поле Firstі і і 97, а в поле Last 122, то для поляі і і Default нельзя набрать 88. і і і і ГДДДДДДДДДДДДДДДДДДДДДДДЕДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДґ і Break і Наберите десятичный код ANSI, для оп-і і (разрыв) і ределения символа прерывания в ресурсеі і і шрифта. Значение Break должно лежать ві і і диапазоне символов, определенном зна-і і і чениями First и Last. і і і і АДДДДДДДДДДДДДДДДДДДДДДДБДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЩ Создание шрифтов переменной ширины ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД Если вы создаете набор символов, нужно решить, хотите ли вы, чтобы все символы имели одинаковый размер, или переменную ширину литер. Шрифты с постоянной шириной литер, такие как Courier, Elite и Pica, выглядят аналогично шрифту пишущей машинки. Шрифты с переменной шириной, такие как Helvetica, Times Roman и Palatino, присваивают буквам различные размеры. При этом, напри- мер, ширина буквы i будет отличаться от ширины w. Если вы используете ресурс шрифта для определения графичес- кого шрифта, который не основывается в действительности на наборе символов, иногда желательно, чтобы все образы имели одинаковую ширину, а иногда нет. При редактировании шрифта с помощью команды FontіFont Size (ШрифтіРазмер шрифта) вы можете выбрать переменную ширину шрифта. В поле Width (Ширина) наберите 0, в поле Maximum Width (Макси- мальная ширина) укажите максимальную ширину (в элементах изобра- жения) образов в ресурсе шрифта. После выбрав диалоговом окне Font Size Information нулевой ширины с помощью команды FontіCharacter Widtn (ШрифтіШирина сим- вола) вы можете выбирать ширину отдельного графического образа. Предположим, например, что вы использовали параметр FontіFont Size для определения следующих размеров ресурса шрифта: - Width = 0; - Height = 32; - Maximum Width = 32. На основе этих размеров все графические образы будут иметь высоту 32 элемента изображения, а длина каждого образа может быть различной (максимум 32 элемента изображения). При редактировании конкретного графического образа для определения его ширины вы мо- жете использовать команду FontіCharacter Width (ШрифтіШирина сим- вола). При этом выводится диалоговое окно Character Width (Ширина символа). ЪДДДВДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДї і - і Character width і ГДДДБДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДґ і і і ЪДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДї і і і ЪДДДДДДї і і і і Maximum width і 8 і і і і і АДДДДДДЩ і і і і ЪДДДДДДї і і і і Width і±8 і і і і і АДДДДДДЩ і і і і і і і і і і і і ІІі Stretch current chars і і і і ДДЩ і і і АДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЩ і і і ГДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДґ і ЪДДДДДДДДДДДї ЪДДДДДДДДДДДї ЪДДДДДДДДДДДї і і і _ і± і і± і і± і і і V OK і± і X Cancel і± і ? Help і± і і АДДДДДДДДДДДЩ± АДДДДДДДДДДДЩ± АДДДДДДДДДДДЩ± і і ±±±±±±±±±±±± ±±±±±±±±±±±± ±±±±±±±±±±±± і і і АДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЩ Рис. 12.6 Диалоговое окно Character Width Character width - ширина символа; Width - ширина; Stretch current char - сжатие текущего символа; OK - выполнить; Cancel - отменить; Help - справка В поле Width (Ширина) введите значение, меньшее или равное Maximum Width (Максимальная ширина). Кроме того, если нужно сжать или растянуть ширину текущего образа, которую вы указали в данном диалоговом окне, вы можете установить параметр Stretch current char (сжатие текущего символа). Определение заголовка ресурса шрифта ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД Каждый ресурс шрифта включает в себя заголовок, описывающий общую информацию о шрифте, например, имя гарнитуры шрифта или ин- формацию об авторских правах. Если вы определяете ресурс шрифта, состоящий из алфавитных символов, заголовок определяет тип и раз- мер для всех символов шрифта. Для определения заголовка шрифта сделайте следующее: 1. Выведите шрифт в графическом редакторе, дважды щелкнув кнопкой "мыши" на имени ресурса, или используя для созда- ния нового ресурса команду ResourceіNew (РесурсіНовый). 2. В графическом редакторе для задания информации заголовка выберите команду FontіHeader (ШрифтіЗаголовок). Вы увиди- те диалоговое окно Font Header Information (Информация заголовка шрифта). ЪДДДВДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДї і - і Font header information і ГДДДБДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДґ і ЪДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДїі і і ЪДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДїіі і і Face name і fixed ііі і і АДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЩіі і і ЪДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДїіі і і Device і ііі і і АДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЩіі і і ЪДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДїіі і і Copyright і (c) Copyright Your Name. All rights reserved.ііі і і АДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЩіі і АДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЩі і Font version і і ЪДДДДДДДДДДДДїЪДДДДДДДДДДДДДДДДДДДДДДДїЪДДДДДДДДДДДДДДДДДДДДДїі і і іі іі ЪДДДДДДїіі і і > 2.00 іі ІІі Italic іі Horz res і 100 ііі і і іі ДДЩ іі АДДДДДДЩіі і і <* 3.00і іі ІІі Underline іі ЪДДДДДДїіі і і ДДДДДЩ іі ДДЩ іі Vert res і 100 ііі і АДДДДДДДДДДДДЩі ІІі Strikeout іі АДДДДДДЩіі і Type і ДДЩ іі ЪДДДДДДїіі і ЪДДДДДДДДДДДДїі ІІі Variable pitch іі Points і 8 ііі і іЪДДДДДДДДДДїіі ДДЩ іі АДДДДДДЩіі і іі RASTER ііі ЪДДДДДДДДДїіі ЪДДДДДДїіі і іАДДДДДДДДДДЩіі Weight і 400 ііі Int leading і 0 ііі і АДДДДДДДДДДДДЩі АДДДДДДДДДЩіі АДДДДДДЩіі і і ЪДДДДДДДДДїіі ЪДДДДДДїіі і і Family і 0 ііі Ext. leadingі 0 ііі і і АДДДДДДДДДЩіі АДДДДДДЩіі і і ЪДДДДДДДДДїіі ЪДДДДДДїіі і і Char set і 0 ііі Ascent і 8 ііі і і АДДДДДДДДДЩіі АДДДДДДЩіі і АДДДДДДДДДДДДДДДДДДДДДДДЩАДДДДДДДДДДДДДДДДДДДДДЩі ГДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДґ і ЪДДДДДДДДДДДї ЪДДДДДДДДДДДї ЪДДДДДДДДДДДї і і і _ і± і і± і і± і і і V OK і± і X Cancel і± і ? Help і± і і АДДДДДДДДДДДЩ± АДДДДДДДДДДДЩ± АДДДДДДДДДДДЩ± і і ±±±±±±±±±±±± ±±±±±±±±±±±± ±±±±±±±±±±±± і і і АДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЩ Рис. 12.7 Диалоговое окно Font Header Information Font header information - информация о заголовке шрифта; Face name - название гарнитуры; fixed - фиксированная; Device - устройство; Copyright - авторские права; Font version - версия шрифта; Italic - наклонный; Horz res - разрешение по горизонтали; Underline - подчеркивание; Vert res - разрешение по вертикали; Strikeout - перечеркнутый; Type - тип; Variable pitch - перемен- ная высота; Points - пункты; Weight - вес; Int leading - внутрен- нее разбиение; Family - семейство; Ext. leading - внешнее разбие- ние; Char set - набор символов; Ascent - высота над базовой линией; OK - выполнить; Cancel - отменить; Help - справка 3. Определите заголовок настраиваемого шрифта. Вы можете сделать следующий выбор: Параметры заголовка шрифта Таблица 12.3 ЪДДДДДДДДДДДДДДДДДДДДДДДДВДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДї і Параметр і Описание і ГДДДДДДДДДДДДДДДДДДДДДДДДЕДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДґ і Font Version і Выберите версию шрифта Windows 2.00і і (версия шрифта) і или Windows 3.00. Для лучшей читае-і і і мости следует всегда выбирать 2.00. і і і і ГДДДДДДДДДДДДДДДДДДДДДДДДЕДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДґ і Face Name і Наберите имя, которое вы хотите прис-і і (имя гарнитуры) і воить своему шрифту. і і і і ГДДДДДДДДДДДДДДДДДДДДДДДДЕДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДґ і Device і Наберите имя устройства для шрифта,і і (устройство) і если вы хотите информировать програм-і і і мы, что данный шрифт должен использо-і і і ваться только на конкретной устройс-і і і тве. і і і і ГДДДДДДДДДДДДДДДДДДДДДДДДЕДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДґ і Copyright і Наберите информацию об авторских пра-і і (авторские права) і вах для вашего специального шрифта. і і і і АДДДДДДДДДДДДДДДДДДДДДДДДБДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЩ Для сообщения Windows и прикладной программе, что шрифт реа- лизует определенные атрибуты, используйте следующие параметры атрибутов: Атрибуты шрифта Таблица 12.4 ЪДДДДДДДДДДДДДДДДДДДДДДВДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДї і Параметр і Описание і ГДДДДДДДДДДДДДДДДДДДДДДЕДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДґ і Italics і Шрифт содержит наклонные символы. і і (наклонный) і і і і і ГДДДДДДДДДДДДДДДДДДДДДДЕДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДґ і Underline і Шрифт содержит символы подчеркивания. і і (подчеркивание) і і і і і ГДДДДДДДДДДДДДДДДДДДДДДЕДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДґ і Strikeout і Шрифт содержит перечеркнутые символы. і і (перечеркнутый) і і і і і ГДДДДДДДДДДДДДДДДДДДДДДЕДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДґ і Variable Pitch і Шрифт имеет переменную высоту. і і (Переменная высота)і і і і і ГДДДДДДДДДДДДДДДДДДДДДДЕДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДґ і Weight і Шрифт может быть нормальным (400) илиі і (вес) і жирным (700). і і і і ГДДДДДДДДДДДДДДДДДДДДДДЕДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДґ і Family і Описывает семейство шрифта. Допустимыі і (семейство) і следующие значения: і і і і і і 0 - -"- і і і 1 - Roman і і і 2 - Swiss і і і 3 - Modern і і і 4 - Script і і і 5 - Decorative і і і і ГДДДДДДДДДДДДДДДДДДДДДДЕДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДґ і Char set і Определяет набор символов. Значениямиі і (набор символов) і могут быть 0 - 255, но предопределен-і і і ный смысл имеют только значения 0, 2 иі і і 255. і і і і і і 0 - ANSI (набор символов, использу-і і і емый в Windows по умолчанию). і і і і і і 2 - Символ, используемый в матема-і і і тических и специальных форму-і і і лах. і і і і і і 255 - OEM (набор символов, зависящийі і і от конкретной машины). і і і і АДДДДДДДДДДДДДДДДДДДДДДБДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЩ Размеры шрифта Таблицы 12.5 ЪДДДДДДДДДДДДДДДДДДДДДДВДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДї і Параметр і Описание і ГДДДДДДДДДДДДДДДДДДДДДДЕДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДґ і Horizontal Res. і Число элементов изображения по горизон-і і (разрешение по і тали на логический дюйм вашего видео-і і горизонтали) і адаптера. і і і і ГДДДДДДДДДДДДДДДДДДДДДДЕДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДґ і Vertical Res. і Число элементов изображения по вертика-і і (разрешение по і ли на логический дюйм вашего видео-і і горизонтали) і адаптера. і і і і ГДДДДДДДДДДДДДДДДДДДДДДЕДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДґ і Points і Размер типа. Пункт - это 1/72 дюйма.і і (пункты) і Символ измеряется от вершины до основа-і і і ния. Введенное здесь значение не включа-і і і ет в себя пространство для диакритичес-і і і ких знаков. і і і і ГДДДДДДДДДДДДДДДДДДДДДДЕДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДґ і Internal і Пространство (в элементах изображения)і і Leading і для диакритических знаков в элементахі і (внутреннее і изображения. і і разбиение) і і і і і ГДДДДДДДДДДДДДДДДДДДДДДЕДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДґ і External і Дополнительное пространство между линия-і і Leading і ми символов в элементах изображения. і і (внешний і і і интервал) і і і і і ГДДДДДДДДДДДДДДДДДДДДДДЕДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДґ і Ascent і Высота символа над базовой линией в эле-і і (высота над і ментах изображения. і і базовой линией) і і і і і АДДДДДДДДДДДДДДДДДДДДДДБДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЩ Изменение размера и атрибутов ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД Когда вы редактируете в графическом редакторе ресурс шрифта, меню Font (Шрифт) имеет три команды, которые позволяют вам изме- нить образы шрифта: ЪДДДДДДДДДДДДДДДДДДДДДДДї Скрыть инструмен- і Hide toolbox і тальное средство ГДДДДДДДДДДДДДДДДДДДДДДДґ і Header... і Заголовок і Font size... і Размер шрифта і Character width... і Ширина символа АДДДДДДДДДДДДДДДДДДДДДДДЩ - Header (Заголовок) определяет информацию заголовка для ва- шего ресурса шрифта, включая версию шрифта, имя шрифта, авторские права и т.д. Подробности см. выше. - Font Size (Размер шрифта) определяет набор символов в дан- ном шрифте, а также ширину и высоту символа. Более подроб- но см. выше. - Character Width (Ширина символа) задает ширину конкретного образа шрифта в ресурсе шрифта с переменной шириной. (Дан- ная команда будет доступна, если вы определите с помощью команды FontіFont Size (ШрифтіРазмер шрифта) переменную ширину шрифта.) Удаление образа шрифта ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД Для удаления образа шрифта сделайте следующее: 1. Дважды щелкните кнопкой "мыши" на образе шрифта, который вы хотите удалить, чтобы он вывелся в окне графического редактора. 2. Выберите команду EditіSelect All (РедактированиеіВыделите все) для выделения образа шрифта. 3. Выберите команду EditіCut (РедактированиеіВырезание), EditіDelete (РедактированиеіУдаление), или нажмите для удаления образа клавишу Del. Графический образ исчезает. Он может выводиться в правой области графического редак- тора, но это изображение исчезнет, когда вы выделите для редактирования другой графический образ. 4. Выберите команду FileіSave All (ФайліСохранить все) для сохранения изменений. Сохранение ресурса шрифта ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД В процессе работы полезно сохранять изменения, не дожидаясь, пока Пакет разработчика ресурсов выведет вам подсказку при закры- тии проекта. При сохранении ресурса шрифта вы можете использовать следующие две возможности: - сохранение всего проекта; - сохранение ресурса шрифта в файле. Сохранение проекта ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД Для сохранения всего проекта выберите команду FileіSave All (ФайліСохранить все). Пакет разработчика ресурсов компилирует ре- сурсы, измененные со времени последней компиляции, и сохраняет их в файле проекта. Все измененные ресурсы, связанные с внешним фай- лом, будут обновляться во внешнем файле. Этот параметр сохранения (Save) вы можете использовать наиболее часто. Сохранение шрифта в виде файла ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД Сохранение всего проекта приводит также к сохранению шрифта, с которым вы работаете. Если вы хотите сохранить шрифт массив, то можете выбрать команду ResourceіSave Resource As (РесурсіСохране- ние ресурса) для сохранения ресурса в виде файла. Поскольку дан- ный шаг несколько более сложен, чем простое сохранение проекта, маловероятно что вы будете делать это в других случаях, кроме случая первоначального размещения ресурса в двоичном формате в отдельном файле. Чтобы сохранить ресурс в виде файла, сделайте следующее: 1. Выберите команду ResourceіSave As (РесурсіСохранение). Пакет разработчика ресурсов выводит диалоговое окно Save File As (Сохранение файла). 2. Введите новое имя файла или выберите корректное имя из списка Files (Файлы). Если вы хотите поместить файл в другой каталог, то можете изменить маршрут с помощью списка Directories (Каталоги), либо ввести маршрут при наборе имени файла. Когда вы убедитесь, что имя файла корректно, нажмите клавишу Enter или выберите командную кнопку OK. 3. Пакет разработчика ресурсов запрашивает у вас, хотите ли вы ссылаться в файле проекта на данный внешний файл и где. Если вы выберите Yes (Да), все последующие изменения шрифта сохраняются в двоичном виде во внешнем файле шриф- та, а не в файле проекта или предыдущем файле шрифта. Добавление ресурса шрифта к прикладной программе ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД Хотя Пакет разработчика ресурсов сохраняет файлы шрифтов ва- шего файла проекта в файле .FNT, при добавлении к прикладной программе ресурса шрифта нужно также создать файл .FON. Это можно сделать с помощью Турбо Паскаля или C++. Создание файла .FON с помощью Турбо Паскаля ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД Перед созданием файла .FON сохраните файла проекта в виде объектного файла ресурса (.RES). Подробнее об этих файлах расска- зывается в начале руководства. Чтобы создать файл .FON для примера RWPDEMO, сделайте следу- ющее: 1. Напишите и скомпилируйте следующую программу Паскаля для создания динамически компонуемой библиотеки ресурса. Library Stoppers; {$D Stoppers 133,96,72: Bomb, Stop sign, Stoplight} {$M 1024,0} {$R Stoppers.res} begin end. 2. В командной строке DOS переименуйте STOPPERS.DLL в STOPPERS.FON: rename STOPPERS.DLL STOPPERS.FON Создание файла .FON с помощью С++ ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД Перед созданием файла .FON сохраните файл проекта в виде объектного файла ресурса. Если вам нужно более подробная информа- ция об объектных файлах ресурса, см. начало данного руководства. Чтобы создать файл .FON для программы RWPDEMO, сделайте сле- дующее: 1. Напишите и скомпилируйте программу C++: #include "windows.h" #pragma warn -par // не выводить предупреждение о // неиспользуемых параметрах int FAR PASCAL Lib (HANDLE hInstance, WORD wDataSeg, WORD wHeapSize, LPSTR lpszCmdLine) { if (wHeapSize > 0) UnlockData(0); return 1; } #pragma war .par // предупреждать о неиспользуемых // параметрах 2. Создать файл определения модуля: Library Stoppers DESCRIPTION 'STOPPERS 133,96,72: Bomb,Stop sign,Stoplight' STUB 'WINSTUB.EXE' DATA NONE 3. Создать формирующий файл и выполнить его: stoppers.dll: stoppers.cpp stoppers.res stoppers.def bcc -mc! -WD stoppers.cpp rc stoppers.dll ren stoppers.dll stoppers.fon Проверка шрифта ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД Чтобы проверить шрифт, нужно скомпилировать ресурс шрифта и связать (скомпоновать) его с выполняемым файлом. после этого вы можете запустить выполняемый файл и посмотреть, как будет выгля- деть шрифт. О компоновке ресурса с выполняемым файлом рассказывается в Главе 3. Пример ресурса шрифта ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД Чтобы посмотреть, как можно с помощью Пакета разработчика ресурсов создать ресурс шрифта, давайте рассмотрим пример ресурса шрифта: 1. Откройте файл проекта RWPDEMO.RC, который поставляется с Пакетом разработчика ресурсов. 2. В окне проекта найдите запись ресурса 1. 3. Откройте ресурс, дважды щелкнув на нем кнопкой "мыши", или выделив его и выбрав команду ResourceіEdit (Ре- сурсіРедактирование). Если вы уже использовали графический редактор для создания пиктограмм, курсоров или битовых массивов, в основном то, что вы увидите, уже будет вам знакомо. В левой части инструментально па- литры находятся графические средства, которые вы можете использо- вать для отображения любого битового массива. Вид самого графи- ческого образа и строки состояния в нижней части графического редактора здесь будет тем же. Однако есть несколько дополнительных средств графического редактора, которые помогут вам редактировать ресурс шрифта. Обра- тите внимание на строку состояния в верхней части графического изображения, в которой сообщается о гарнитуре шрифта (справа). В правой части графического редактора имеется еще одна небольшая версия символа "бомбы", а также символ "стоп" и символы светофо- ра. ЪДДДВДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДВДДДВДДДї і - і FONT : 1 і v і ^ і ГДДДБДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДБДДДЕДДДґ і Facename: fixed Current Letter: 97, 0x61 a і°#°і ГДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДВДДДВДДДДДДДДДДДДДДДВДДДВДДДґstoі і і - і Colors і - і X ііOіі ГДДДДДДДДДДДДДДДДДДДДДДДДДДДДВДВЕДДДБДДДДДДДДДДДДДДДЕДДДЕДДДґіOіі і і^іі±±±±±FG±±±°°°°BG°°°іЦ _і П іі*іі і ГДґАДДДДДДДДДДДДДДДДДДДЕДДДЕДДДґ°°°і і іІі і±\±і п і°°°і і і°і ГДДДЕДНДґ°°°і і і°і і Ъ і\\ і°°°і і і°і ГДДДЕДДДґ°°°і і і°і і \ і Т і°°°і і ± ±±± і°і ГДДДЕДДДґ°°°і і ± і°і іі іі ± і°°°і і ± ± ± і°і ЪДДДї ГДДДЕДДДґ°°°і і ± ± і°і і * і і О і * і°°°і і ± ± ± ±і°і АДДДЩ ГДДДЕДДДґ°°°і і ± ±±±±± і°і і о і * і°°°і і ± і°і ГДДДЕДДДґ°°°і і ±±±±±±±± і°і і . і . і°°°і і ±±±±±±±±±±±± і°і ГДДДЕДДДґ°°°і і ±±±±±±±±±±±±±±±±±і°і і і І і°°°і і ±±±±±±±±±±±±±±±±±±±і°і АДДДБДДДґ°°°і і ±±±±±±±±±±±±±±±±±±±±±і°і і°°°і і ±±±±±±±±±±±±±±±±±±±±±і°і і°°°і і ±±±±±±±±±±±±±±±±±±±±±і°і і°°°і ГДВДДДДДДДДДДДДДДДДДДДДДДДДВДЕДі і°°°і і<іІ°°°°°°°°°°°°°°°°°°°°°°°і>і і і°°°і АДБДДДДДДДДДДДДДДДДДДДДДДДДБДБДБДДДДДДДДДДДДДДДДДДДДДДДДДДДДБДДДЩ Рис. 12.4 Графический редактор со шрифтом RWPDEMO В левой части строки состояния шрифта показано, какой символ вы редактируете: Current Letter: 97, 0x61 a (текущий символ 97, 0x61 a). Конечно, на самом деле вы редактируете не символ a, а битовое изображение бомбы, который отображается в буквы a (деся- тичное значение ANSI 97 или шестнадцатиричное 61). Список неболь- ших битовых массивов вдоль правой стороны редактора показывает вам все символы или образы, которые определены для данного ресур- са шрифта - символ "бомбы", а также символ "стоп" и символы све- тофора. Если их больше, чем может вместиться вдоль правой стороны графического редактора, Пакет разработчика ресурсов выводит кноп- ки прокрутки, с помощью которых вы можете просмотреть весь спи- сок. Посмотрите на другой символ. Щелкните кнопкой "мыши" на би- товом образе знака "стоп". Обратите внимание на изменение строки состояния, которая показывает, что теперь вы редактируете символ, отображаемый в b. Посмотрите теперь на диалоговые окна, которые использовались для определения ресурса шрифта. Вы можете использовать эти диало- говые окна с помощью двух команд меню Font (Шрифт) - Header (За- головок) и Font Size (Размер шрифта). 1. Чтобы вывести диалоговое окно, которое можно использовать для определения заголовка данного ресурса шрифта, выбери- те команду FontіHeader (ШрифтіЗаголовок). Каждый ресурс шрифта включает в себя заголовок, дающий общую информацию о шрифте. Заметим, например, что инфор- мация об авторском праве указывает, что данный ресурс шрифта принадлежит Borland International. 2. Выберите командную кнопку OK или Cancel для закрытия диа- логового окна Fjnt Header Information. 3. Выберите команду FontіFont Size (ШрифтіРазмер шрифта) и выведите диалоговое окно, которое позволит вам определить размер образов данного ресурса, а также число образов в ресурсе. Параметр Size (Размер) в данном диалоговом окне показыва- ет размер образов шрифта 32х32 элемента изображения. Вве- дя в поле ширины нулевое значение, а затем введя макси- мальную ширину, вы можете определить образы, которые различны по ширине (см. выше). Параметр Character (Символ) в данном диалоговом окне по- казывает коды символов ANSI или символы, включенные в данный шрифт. Данный ресурс шрифта включает в себя симво- лы ANSI с десятичными кодами 97, 98 и 99 (или символами a, b, c). Вы можете определить для своего шрифта символ по умолчанию и символ разрыва (см. выше). 4. Перед закрытием диалогового окна Font Size Information (Информация о размере шрифта) измените значение поля Last (Последний) с 99 на 199. Это даст вам возможность уви- деть, как выглядит графический редактор, когда в нем со- держится больше символов, чем умещается в правой части экрана. 5. Выберите кнопку OK для закрытия диалогового окна Font Size Information (Информация о размере шрифта). Под обра- зом сигнала "стоп" вы увидите пустой образ. Обратите вни- мание не кнопки прокрутки над списком образов и под ним. Эти кнопки можно использовать для прокрутки и просмотра всех образом, определенных для данного ресурса. Щелкните кнопкой "мыши" на любом образе в правой части гра- фического редактора, который вы хотите редактировать. Вы можете закрыть существующий образ или выбрать любой из пустых блоков под знаком "светофора" и добавить новый графический образ. Глава 13. Создание ресурсов, определенных пользователем ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД Кроме типов ресурсов, описанных в предыдущих главах, вы мо- жете также определить свои собственные ресурсы. После создания нового типа ресурса вы можете добавить к своему проекту опреде- ленные пользователем ресурсы, также как добавляются ресурсы любо- го стандартного предопределенного типа (диалоговые окна, меню и битовые массивы). Зачем нужно определять ваши собственные типы ресурсов? Опре- деленные пользователем ресурсы могут содержать данные, не соот- ветствующие ни одному из предопределенных типов ресурсов (ресур- сов диалоговых окон, меню, акселераторов и т.д.). Например, имея ресурс символьной строки, превышающий ограничение STRINGTABLE (255 символов), вы можете определить свой собственный тип и запи- сать там ваши символьные строки. В качестве определенных пользователем ресурсов вы можете также включить в проект метафайлы. Метафайл - это тип битового массива (в исходной форме это набор вызовов интерфейса графичес- кого устройства (GDI)), который не только более легко масштабиру- емый и более независимый от устройства графический ресурс, но также занимает в памяти меньше памяти, чем ресурс битового масси- ва. Примечание: Более подробно о метафайлах рассказывается в книге Чарльза Петцольда "Программирование в Windows" (см. библиографию в начале книги). При определении нового ресурса вы можете записать данные ли- бо как часть определения ресурса в файле проекта, либо как от- дельный файл. Как и в случае любого другого ресурса, Пакет разра- ботчика ресурсов может компилировать данные и встраивать их в выполняемый файл, чтобы данные были доступны для вашей приклад- ной программы во время выполнения. Для добавления к прикладной программе вы можете также ис- пользовать тип ресурса RCDATA. Подробности см. ниже. При работе с ресурсами, определенными пользователем, выпол- няются пять основных задач: - создание типа ресурса, определенного пользователем; - добавление определенного пользователем ресурса к типу ре- сурса; - редактирование ресурса, определенного пользователем; - проверка ресурса, определенного пользователем; - сохранение ресурса, определенного пользователем. Создание ресурса, определенного пользователем ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД Перед тем, как добавить к файлу проекта определенный пользо- вателем ресурс, нужно сначала создать для него тип: 1. Убедитесь, что вы уже открыли файл проекта (см. Главу 3, если вы хотите узнать об этом подробнее). 2. Выберите команду ResourceіNew (РесурсіНовый). 3. В диалоговом окне New Resource (Новый ресурс) нажмите кнопку New Type (Новый тип). 4. В диалоговом окне New Resource (Новый ресурс) наберите имя типа создаваемого ресурса. Например, если вы создаете ресурс, содержащий большой блок текста, то тип ресурса можно назвать TEXT. 5. При запросе, хотите ли вы создать идентификатор для ново- го типа ресурса, ответьте Yes (Да), затем введите значе- ние идентификатора в диалоговом окне New Identifier (Но- вый идентификатор). Примечание: Если вы используете числовой идентифика- тор, он должен превышать значение 255, так как Windows ре- зервирует значения 1 - 255 для стандартных ресурсов. После того как вы определите новый тип ресурса, то при соз- дании нового ресурса увидите, что данный ресурс перечислен в диа- логовом окне New Resource (Новый ресурс) среди типов стандартных ресурсов (ACCELERATOR - акселератор, BITMAP - битовый массив, USER_DEFINED RESOURCE - ресурс, определенный пользователем, и т.д). Добавление ресурса, определенного пользователем ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД После создания типа ресурса вы можете добавить ресурс данно- го типа к проекту: 1. Убедитесь, что вы уже открыли проект. (Об открытии проек- та рассказывается в Главе 3.) 2. Выберите команду ResourceіNew (РесурсіНовый). Пакет раз- работчика ресурсов выводит диалоговое окно New Resource, где параметр Resource (Ресурс) уже выбран. Для создания нового ресурса активизируйте кнопку OK. 3. В диалоговом окне New Resource (Новый ресурс) выберите ваш определенный пользователем ресурс. В блоке "Place resource in" выберите файл проекта (возможно текущий), в который вы хотите записать ресурс. Примечание: Если вы не видите нужный тип ресурса, ис- пользуйте кнопку New Type (Новый тип) для определения но- вого ресурса. ЪДДДВДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДї і - і New Resource і ГДДДБДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДВДДДДДДДДДДДДДДДґ і Resource type і і і ЪДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДї і ЪДДДДДДДДДДДї і і і DIALOG і і і _ і±і і і ЪДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДВДї і і і V OK і±і і і і ACCELERATORS і^і і і АДДДДДДДДДДДЩ±і і і іЪДДДДДДДДДДДДДДДДДДДДДДДДДДДДДґДґ і і ±±±±±±±±±±±±і і і ііTWO±±±±±±±±±±±±±±±±±±±±±±±±±±іІі і і і і і іАДДДДДДДДДДДДДДДДДДДДДДДДДДДДДґ±і і і і і і і CURSOR і±і і і і і і і DIALOG і±і і і ЪДДДДДДДДДДДї і і і і FONT ГДґ і і і і±і і і і іvі і і і X Cancel і±і і і АДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДБДЩ і і АДДДДДДДДДДДЩ±і і АДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЩ і ±±±±±±±±±±±±і і і і і Place resource in і і і ЪДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДї і і і і і і ЪДДДДДДДДДДДї і і і ЪДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДВДї і і і.. New і±і і і і rwpdemo.rc іvі і і і... Type і±і і і АДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДБДЩ і і АДДДДДДДДДДДЩ±і і і і і ±±±±±±±±±±±±і і АДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЩ і і і і і і і і і і ЪДДДДДДДДДДДї і і і і і±і і і і ? Help і±і і і АДДДДДДДДДДДЩ±і і і ±±±±±±±±±±±±і і і і АДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДБДДДДДДДДДДДДДДДЩ Рис. 3.13 Диалоговое окно New Resource New Resource - новый ресурс; Place resopurce in - поместить ресурс в...; Resource type - тип ресурса; OK - выполнить; Cancel - отмена; New type - новый тип; Help - справка 4. После того, как вы выберите в диалоговом окне New Resource (Новый ресурс) кнопку OK, Пакет разработчика ре- сурсов открывает текстовый редактор с пустым определением ресурса, определенного пользователем. Например, если вы добавите определенный пользователем ресурс с именем TEXT, то увидите в текстовом редакторе следующий текст: TEXT_1 TEXT BEGIN END Здесь вы можете редактировать ресурс, как описывается в сле- дующем разделе. Редактирование определенного пользователем ресурса ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД Для редактирования ресурса, определенного пользователем, нужно открыть проект. Вы можете либо создать новый ресурс (см. предыдущий раздел), либо открыть в окне проекта уже существующий. Имя ресурса указывается в окне проекта (по типу ресурса, оп- ределенного пользователем), как любой другой ресурс предопреде- ленного типа. Например, если вы создадите тип ресурса TEXT и ресурс TEXT, то увидите в окне проекта запись ресурса TEXT. Чтобы открыть редактор, сделайте следующее: - дважды щелкните кнопкой "мыши" на имени ресурса, который вы хотите редактировать; - выделите имя ресурса, затем выберите команду ResourceіEdit (РесурсіРедактирование) или ResourceіExit As Text (Ресурсі Редактирование в виде текста). Когда ресурс выведется в текстовом редакторе, вы можете до- бавить к нему данные или редактировать их. Приведем пример того, что вы увидите при добавлении к проекту нового определенного пользователем ресурса типа RESTYPE: RESTYPE_1 RESTYPE BEGIN [определения_данных] END Первая строка показывает название и тип ресурса. Пакет раз- работчика ресурсов по умолчанию строит для нового ресурса имя, присоединяя к типу ресурса подчеркивание и целое значение. Напри- мер, первый ресурс RESTYPE, который вы добавляете к проекту, ста- новится ресурсом RESTYPE_1, второй - ресурсом RESTYPE_2 и т.д. Чтобы добавить к ресурсу данные, можете сделать следующее: - Используйте текстовый редактор для ввода данных между BEGIN и END. - Запишите данные в отдельный файл и добавьте имя файла к концу первой строки записи ресурса. После внесения изменений (добавления данных между BEGIN и END или ввода имени файла не первой строке) для сохранения изме- нений нужно перекомпилировать ресурс. Если вы выйдите без пере- компиляции, то потеряете все изменения. Ввод данных в записи ресурса ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД При использовании текстового редактора клавиши Tab, Del, End, PgUp, PgDn и Backspace работают как обычно. Однако при рабо- те в редакторе не следует увлекаться форматированием, поскольку Пакет разработчика ресурсов вероятно переструктурирует текст при компиляции или декомпиляции ресурсов. Примечание: Описание работы внутреннего текстового ре- дактора см. в начале данного руководства. Приведем некоторые рекомендации для задания данных между па- раметрами BEGIN и END: - Данные могут включать в себя любое сочетание числовых зна- чений и строк. - Для представления числовых значений можно использовать восьмеричную, шестнадцатиричную или десятичную запись. * В качестве символов, предшествующих шестнадцатиричной записи, используйте символы 0х или $. Данное предс- тавление поддерживает только 16-битовые значения. Ес- ли вы хотите задать нечетные шестнадцатиричные значе- ния, используйте шестнадцатиричную строку (см. далее). * В качестве символом, предшествующих восьмеричной запи- си, используйте 0o или просто 0. - Шестнадцатиричные значения можно также представлять шест- надцатиричные значения с помощью шестнадцатиричной строки - строки шестнадцатиричных значений, заключенной в одиноч- ные кавычки. Компилятор игнорирует все пробелы, включенные в нее для лучшей читаемости шестнадцатиричных кодов. Например, вы можете представлять значения ASCII символов в слове string, как '73 74 72 69 6T 67' и шестнадцатиричное число 06EA в виде '006EA'. - Если вы включите в ресурс текстовые строки, то их следует заключать в двойные кавычки, например, "string". Строки не будут автоматически завершаться нулем. Чтобы за- вершить строку нулевым символом, наберите в конце строки \0 (обратная косая черта и 0). Например, ваша запись ресурса с добавленными данными может выглядеть следующим образом: RESTYPE_1 RESTYPE BEGIN "Это строка" 0xFFAA 0o7076 01077 '54 68 69 73 20 69 73 0D 0A 73 6F 6D 65 20 73 61' '6D 70 6C 65 0D 64 61 74 61 2E' END Обработка данных, записанных в отдельном файле ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД Если данные записываются в отдельный файл, для редактирова- ния файла нужно использовать внешний редактор. Чтобы добавить в запись ресурса ссылку на файл данных, сделайте следующее: - После имени типа ресурса наберите полное имя маршрута фай- ла; - Удалите операторы BEGIN и END. Следующая запись ресурса для ресурса RESTYPE_1 указывает, что данные записываются в файле C:\RW\MYDATE.TXT: RESTYPE_1 RESTYPE c:\rw\mydata.txt Проверка ресурса, определенного пользователем ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД Поскольку вы создаете специфический для данной программы ре- сурс, определенный пользователем, проверить его в Пакете разра- ботчика ресурсов нельзя. Чтобы проверить определенный пользовате- лем ресурс, используйте Пакет разработчика ресурсов для компиляции файла проекта, содержащего ресурс, и встраивание его в вашу программу. Затем вы можете запустить программу и использо- вать в ней ресурс. О компиляции ресурсов и связывании их с программой рассказы- вается в Главе 3. Использование типа ресурса RCDATA ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД Для добавления к прикладной программе данных ресурсов вы мо- жете использовать предопределенный тип ресурса RCDATA. Он работает аналогично типу ресурса, определенного пользователем. Основная разница здесь в возможности адресации: иногда желательно иметь много различных типов определенных пользователем ресурсов, чем один тип RCDATA. Примечание: Ресурс RCDATA включен в Пакет разработчика ресурсов в целях совместимости. Если вы используете ресурс RCDATA, добавьте его к проекту путем выбора команды FileіNew (ФайліНовый) и добавление нового ресурса с типом RCDATA. Вы увидите в текстовом редакторе пустое определения RCDATA и можете набрать данные между параметрами BEGIN и END. Используйте при наборе данных те же правила, что и для ресурсов, определенных пользователем. Удаление ресурса, определенного пользователем ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД Для удаления из окна проекта ресурса, определенного пользо- вателем, с помощью "мыши" или клавиш стрелок выделите запись в окне проекта. Затем удалите запись, сделав следующее: - Нажмите клавишу Del или выберите команду EditіDelete (Ре- дактированиеіУдаление), чтобы просто удалить ресурс. - Для удаления ресурса из текущего проекта и помещения его в буфер вырезанного изображения Windows выберите команду EditіCut (РедактированиеіВырезание). Это дает возможность вставить его в другой проект. Приложение A. Технические замечания ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД Различия в компиляторе ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД Компилятор Пакета разработчика ресурсов почти полностью совместим с компилятором Microsoft, и имеет существенные улучше- ния по сравнению с компилятором ресурсов фирмы Microsoft. Компилятор Пакета разработчика ресурсов отличают следующие средства и усовершенствования: - Компилятор Пакета разработчика ресурсов допускает тексто- вые описания графических ресурсов (курсоров, пиктограмм, битовых массивов и т.д.). Компилятор фирмы Microsoft не позволяет этого делать. Текстовые описания записываются с помощью языка записи ресурсов, описанного в справочной системе Пакета разработчика ресурсов. - Компилятор Пакета разработчика ресурсов поддерживает для каждого числового поля числовые константы и выражения, а компилятор Microsoft - нет. Например, следующий оператор корректно интерпретируется Пакетом разработчика ресурсов, но приводит к ошибке при использовании компилятора фирмы Microsoft: 20 + 20 - 20 ICON foo.ico Пакет разработчика ресурсов интерпретирует данную строку как определение ресурса ICON с идентификатором 20, содер- жащемся в FOO.ICO. Компилятор Microsoft пытается интерпре- тировать данную строку, как тип ресурса + с идентификато- ром 20, содержащемся в файле 20. - В Пакет разработчика ресурсов добавлен новый фундаменталь- ный тип данных - шестнадцатиричная строка. Этот тип данных содержит переменное число шестнадцатиричных цифр, описыва- ющих байты данных, заключенных в одиночные кавычки. Для ясности вы также можете включать сюда пробелы - компилятор их игнорирует. Этот новый тип облегчает ввод пользователем шестнадцатиричных данных. Например, следующая шестнадцати- ричная строка представляет 5-байтовое шестнадцатиричное число.: '010A0B0c0E'. Вы можете также представить это чис- ло следующим образом: '01 0A 0B 0c 0' - Компилятор Пакета разработчика ресурсов поддерживает ссыл- ки на файлы в ресурсах RCDATA, а также в ресурсах, опреде- ленных пользователем. Поддержка ссылок на файлы устраняет единственное различие между ресурсами, определенными поль- зователем, и ресурсами RCDATA. Если используется для ком- пиляции ресурса RCDATA, содержащий ссылку на файл, компи- лятор ресурсов фирмы Microsoft, то получите синтаксическую ошибку. В настоящее время Пакет разработчика ресурсов не поддержива- ет одно средство, связанное с препроцессором, которое обеспечива- ет компилятор фирмы Microsoft: Пакет разработчика ресурсов не поддерживает сложные параметризованные определения #defines. Например, компилятор ресурсов фирмы Microsoft будет успешно ком- пилировать следующий код: #define foo( a, b) 10, b, a RCDATA BEGIN foo( 1, 3), foo( 2, 4), foo( 5, 6) END Диалоговые окна, как порожденные или перекрывающиеся окна ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД Диалоговые окна могут использоваться, как порожденные окна или перекрывающиеся окна. В Пакете разработчика ресурсов есть по крайней мере три диалоговых окна, являющихся порожденными: диало- говое окно редактора меню, диалоговое окно редактора акселерато- ров и диалоговое окно идентификаторов. Пример диалогового окна, использующегося как перекрывающее- ся, можно найти в книге Чарльза Петцольда "Программирование в Windows". В главе, посвященной диалоговым окнам, имеется пример Hexcalc, который создает такое диалоговое окно. Примечание: См. библиографию в начале данного руко- водства. Дополнения и изменения к "Руководству пользователя по пакету разработчика ресурсов" ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД В данном файле содержатся дополнения и корректировки "Руко- водства пользователя по пакету разработчика ресурсов", включая поддержку Windows 3.1 и специализированных управляющих элементов окон фирмы Borland (Borland Windows Custom Controls - BWCC). В следующих разделах описываются корректировки к "Руководс- тву пользователя по пакету разработчика ресурсов" или изменения к существующих функциональным возможностям. Примечание: данные изменения указываются относительно ориги- нального руководства, а не данной программы-справочника. Посколь- ку программа-справочник является неотъемлемой частью руководств, то вам нетрудно будет найти и исправить руководства в нужном мес- те по указанным здесь изменениям. Введение ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД Стр. 5: Текущей информацией к разделу "Как связаться с Borland" теперь является следующая: Телефон/Команда Служба ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД 408-461-9133 Техническая поддержка Borland по C++ (Borland C++ Technical Support), c 6 18 ч. 800-822-4269 TechFax, круглосуточная техническая информация по факсу 408-439-9096 Средство пересылки файлов Borland BBS (2400 бод) GO BORLAND CompuServe JOIN BORLAND BIX BORLAND GEnie ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД Глава 2. Основы пакета разработчика ресурсов ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД Стр. 17: Если у вас есть компилятор Паскаля, то демонстраци- онный файл называется RWPDEMO. Если у вас компилятор C++, то де- монстрационный файл называется RWCDEMO. Стр. 25: Если вы используете компилятор Паскаля, поместите свои идентификаторы в файл констант .PAS. Глава 3. Работа с проектами и ресурсами ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД Стр. 33, шаг 2, в последнем параграфе: Для типов ресурсов .CUR, .ICO, .BMP и .FNT команды ResourceіNew и FileіAdd to Project недоступны. Глава 4. Создание диалоговых окон ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД Стр. 64: Измените первый пункт в списке внизу страницы на следующий: - Измените диалоговое окно одним из следующих способов: - Отбуксируйте соответствующий край или угол. - Выделите диалоговое окно, щелкнув "мышью" на заголовке диалогового окна, затем выберите команды AlignіSize для вывода диалогового окна Size Dialog. В диалоговых элементах введите значения ширины (CX) и высоты (CY). Значения размера применяются к внешним размерам диало- гового окна. Стр. 70: К Рис. 4.6 применяется следующий параграф: Если вы инсталлируете библиотеку специализированных управля- ющих элементов, содержащую управляющие элементы, класс которых распознается пакетом разработчика ресурсов, палитра инструмен- тальных средств Tools может иметь более четырех столбцов. Графи- ческие изображения для этих управляющих элементов добавляются в правую часть палитры Tools (см. стр. 99 и файл CUSTCNTL.RW на ус- тановочном диске, где вы найдете более подробную информацию о специализированных управляющих элементах). Стр. 82: В разделе "Выравнивание нескольких управляющих эле- ментов" командой должна быть AlignіAlign, а не AlignіAlign Controls. Стр. 90: Точно описывает параметры выравнивания полосы прок- рутки следующий текст. None Полоса прокрутки заполняет всю рамку выбора (по умолчанию). Если вы изменили размер рамки выбора, то можете исказить полосу прокрутки. Top Left Горизонтальная полоса прокрутки выводится неиска- женной в верхней части рамки выбора и занимает всю ширину рамки. Вертикальная полоса прокрутки вы- водится неискаженной с левой стороны рамки выбора и занимает всю высоту рамки. Bottom Right Горизонтальная полоса прокрутки выводится неиска- женной в нижней части рамки выбора и занимает всю ширину рамки. Вертикальная полоса прокрутки выво- дится неискаженной с правой стороны рамки выбора и занимает всю высоту рамки. Стр. 100: Добавьте к первому предложению раздела "Добавление специализированных управляющих элементов" следующие параграфы: Если вы добавили библиотеку специализированных управляющих элементов, класс которой распознается пакетом разработчика ресур- сов и который имеет свои собственные графические изображения (би- товые массивы), то можете выбрать свои управляющие элементы не- посредственно из графических изображений с правой стороны палитры инструментальных средств Tools. Если пакет разработчика ресурсов не распознает класс ваших специализированных управляющих элементов, то чтобы добавить их в диалоговые окна, нужно сделать следующее: Стр. 103: В шаге 5 непосредственно над рисунком последнее предложение второго параграфа должно иметь вид: Если вы не видите его, выберите окно Project и затем выбери- те команду ViewіBy File. Стр. 106: Описание параметра Draft Drawing Type в Таблице 4.27 должно иметь вид: Отображает каждый управляющий элемент в виде прямоугольника со своим идентификатором control_ID в центе. Данный параметр поз- воляет видеть точный размер прямоугольника каждого управляющего элемента. Далее приведено корректное описание параметров выбора Selection (Table 4.28): Select Near Border Данный параметр применяется к щелчку "мышью" для выделения управляющих элемен- тов. On: Нужно щелкнуть кнопкой "мыши" на гра- нице управляющего элемента. Off: Вы можете щелкнуть "мышью" в любом месте внутри рамки управляющего элемента. Selection Rectangle Данный параметр применяется к буксировке Surrounds рамки выбора к выделенным управляющим элементам. On: Нужно целиком окружить управляющий элемент (или элементы) прямоугольником выбора. Off: Прямоугольник выбора должен только касаться управляющего элемента (элемен- тов). Глава 5. Создание меню ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД Стр. 119, Таблица 5.1: Для изменения состояния элементов ме- ню Enabled (Разрешен), Disabled (Запрещен) и Grayed (Серый) ис- пользуйте функцию EnableMenuItem. Для изменения состояния Checked (Выбран) элемента меню используйте функцию CheckMenuItem. Стр. 125: В тексте под рисунком "Arrange List..." следует читать "A&rrange List". Стр. 126, Рис. 5.9: Иллюстрация показывает меню перед встав- ленными новыми элементами, а не после. В следующем издании руко- водства рисунок будет исправлен. Стр. 136: Файл заголовка Си (WDGCONST.H) должен выглядеть следующим образом: #define WMNU_LST 101 #define WMNU_ADD 102 #define WMNU_ASC 103 #define WMNU_DESC 104 Кроме того, #include для версии файла на Си должна иметь вид: #include "wdgconst.h" Стр. 137: В последнем параграфе шага 4 должно говориться: ...указывая, что вы нажали для вывода меню Widgets клавиши Alt-W. Глава 6. Создание клавиш-акселераторов ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД Стр. 140: На рисунке показаны некорректные идентификаторы для первых четырех акселераторов. Корректными идентификаторами являются следующие: cm_Undo, cm_Cut, cm_Copy, and cm_Paste. Стр. 153: В шаге 6 корректный текст сообщения выглядит так: "No duplicate key values found" ("Дублируемых значений клавиши не найдено"). |