    Язык ресурсов. 

    Краткое описание 

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

    495 

    Не забывайте, что по мере развития Windows периодически вводятся новые 
операторы языка ресурсов, а к уже существующим операторам добавляются новые 
опции. Поэтому необходимо справляться в руководстве по языку ресурсов, 
поставляемому с компилятором, относительно текущих деталей реализации файлов 
ресурсов. В табл. Б.1 приводится список стандартных операторов языка ресурсов 
и дается их краткое описание. 

    Примечание: Данное приложение было заимствовано автором (с 
соответствующего разрешения) из книги "The Osborne Windows Programming Series, 
Volume Г, Schildt, Poppas, and Murray (Berkeley, CA: Osborne/McGraw-Hill, 1994). 

    Таблица Б. I. Операторы языка ресурсов 

    Оператор               Назначение 

    ACCELERATORS       Определяет клавиши быстрого доступа к элементам меню. 
    AUT03STATE          Создает автоматический контрольный переключатель, 
имеющий три состояния. 
    AUTOCHECKBOX      Создает автоматический контрольный переключатель. 
    AUTORADIOBUTTON   Создает автоматическую селекторную кнопку. 
    BITMAP               Позволяет загрузить растровое изображение. 
    CAPTION              Определяет заголовок диалогового окна. 
    CHARACTERISTICS     Содержит информацию, задаваемую программистом. 
    CHECKBOX            Создает контрольный переключатель. 
    CLASS                 Определяет класс диалогового окна. 
    СОМВОВОХ           Создает комбинированный список. 
    CONTROL             Создает элемент управления указанного типа. 
    СТЕХТ                Создает центрированный статический текст. 
    CURSOR               Позволяет загрузить растровый образ курсора. 
    DEFPL1SHBUTTON      Создает кнопку, активную по умолчанию. 
    DIALOG               Определяет диалоговое окно. 
    DIALOGEX            Определяет диалоговое окно расширенного стиля. 
    EDITTEXT             Создает поле ввода. 
    EXSTYLE              Определяет расширенные стили диалогового окна. 
    FONT                  Определяет шрифт, который будет использоваться в 
диалоговом окне. Может также использоваться для задания файла, содержащего 
ресурс нового шрифта. 
    GROLJPBOX            Создает групповую рамку. 
    ICON                   Создает элемент, в котором будет отображена 
пиктограмма в диалоговом окне. Может также использоваться для задания файла, 
содержащего ресурс пиктограммы. 


    496                                    MFC: основы программирования 


    Оператор             Назначение 

    LISTBOX              Создает список. 
    LTEXT                 Создает статический текст, выравниваемый по левому краю. 
    MENU                 Определяет меню для диалогового окна. Может также 
использоваться для определения меню самого приложения. 
    MENUEX             Определяет меню расширенного стиля. 
    MENUITEM           Определяет элемент меню. 
    MESSAGETABLE       Создает таблицу сообщений. 
    POPUP                Определяет выпадающее меню. 
    PUSHBOX             Создает стандартную кнопку особого типа. 
    PUSHBUTTON         Создаст стандартную кнопку. 
    RADIOBUTTON        Создает селекторную кнопку. 
    RCDATA               Определяет ресурс данных, представляющий собой массив чисел. 
    RTEXT                Создает статический текст, выравниваемый по правому краю. 
    SCROLLBAR           Создает полосу прокрутки. 
    STATE3                Создает контрольный переключатель, имеющий три состояния. 
    STRINGTABLE         Определяет массив ASCII-строк, завершающихся символом '\0'. 
    STYLE                 Определяет стиль диалогового окна. User-Defined      
      Позволяет определить собственный ресурс. 
    VERSION              Содержит информацию о версии ресурса, задаваемую программистом. 
    VERSIONINFO         Создает специальный ресурс, содержащий информацию о 
версии программы. 
    В последующих параграфах приводится краткое описание указанных операторов. 
    Примечание: Кроме операторов языка ресурсов в файле ресурсов могут 
содержаться директивы препроцессора в стиле C/C++. 


    Б. Язык ресурсов. Краткое описание                                  497 


    ACCELERATORS 
    Этот оператор определяет клавиши быстрого доступа. Они позволяют ускорить 
выбор элементов меню. Сообщения, поступающие от таких клавиш, обрабатываются 
функцией TranslateAccelerator() в сообщениях Windows WM_COMMAND и WM_SYSCOMMAND. 

    Синтаксис 

    Имя_таблицы ACCELERATORS 
    { 
    event, idvalue [, тип}[опции] 
    1 

    Пример_______________ _____   _________________ 

    BackGndColors ACCELERATORS 
    1 
    VK_F1, IDM_BLACK, VIRTKEY 
    VK_F2, IDM_WHITE, VIRTKEY 
    VK_F12, IDM_LTGRAY, VIRTKEY 
    } 

    Параметры___________________________________________ 

    Параметр Имя_таблицы содержит имя или целочисленный идентификатор ресурса. 
Параметр event определяет саму клавишу. Клавиша может быть задана либо как 
ASCII-символ в двойных кавычках (например "А"), либо как код символа в виде 
целого числа (в этом случае в качестве типа необходимо указывать ASCII). 
Символ "л" указывает на те, что заданный символ должен использоваться вместе с 
клавишей [CTRL]. При задании виртуальной клавиши указывается тип VIRTKEY. 
Параметр idvalue содержит идентификатор клавиши. В качестве опций могут 
приводиться NOINVERT, ALT, SHIFT и CONTROL. Опция NOINVERT означает, что 
элемент меню верхнего уровня не выделяется цветом при использовании клавиши 
быстрого доступа. Опции ALT, SHIFT и CONTROL означают комбинацию виртуальной 
клавиши соответственно с клавишами [ALT], [SHIFT] и [CONTROL]. 

    AUT03STATE 

    Этот оператор создает автоматический контрольный переключатель, имеющий 
три состояния — выбран (установлен), сброшен (не установлен) и неактивен 
(выделен серым цветом). В остальном этот оператор аналогичен оператору AUTOCHECKBOX. 

    498                                    MFC: основы программирования 


    AUTOCHECKBOX 

    Этот оператор определяет автоматический контрольный переключатель. 
Контрольный переключатель — это небольшой прямоугольный элемент управления с 
текстовой меткой. Автоматический контрольный переключатель автоматически 
меняет свое состояние при активизации. 
    Синтаксис 

    AUTOCHECKBOX cb_text, id, х, у, width, height: [, стиль] 

    Пример   ____________    ___ ___ ___ __ 

    AUTOCHECKBOX "Option I", 6, 15, 15, 35, 15 


    Параметры______________________________________ __ 

    Параметр cb_text содержит строку, отображаемую справа от контрольного 
переключателя. Параметр id представляет собой целое число, идентифицирующее 
контрольный переключатель. Параметры х и у задают координаты верхнего левого 
угла переключателя относительно верхнего левого угла диалогового окна. 
Параметры width и height задают размеры переключателя. В качестве стилей можно 
указывать любую комбинацию стилей класса BUTTON, которая сформирована при 
помощи операции побитового ИЛИ. По умолчанию установлен стиль BS_AUTOCHECKBOX 
| WS_TABSTOP. Другие стили перечислены при описании операторов CONTROL и STYLE. 

    AUTORAD10BUTTON 

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

    AUTORAD10BUTTON rb_text, id, х, у, width, height [, стиль} 

    Пример_____________________________________________ 

    AUTORAD10BUTTON "Duplex", ID_BOLD, 20, 20, 60, 70 

    Параметры_____________________________________________ 

    Параметр rb_texl содержит строку, отображаемую рядом с кнопкой. Параметр 
id представляет собой целое число, идентифицирующее ресурс. Параметры х и у 
задают координаты верхнего левого угла кнопки относительно начала рабочей 
области диалогового окна. Параметры width и height задают размеры элемента. В 
качестве стилей можно указывать любую комбинацию стилей класса BUTTON, а также 
стили WS_DISABLED, WS_GROUP и WS_TABSTOP. По умолчанию установлен стиль 
BS_AUTORADIOBUTTON | WS_TABSTOP. Другие стили перечислены при описании 
операторов CONTROL и STYLE. 

    Б. Язык ресурсов. Краткое описание                                  499 


    BITMAP 

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

    Синтаксис______________________________________________ 

    id name BITMAP [-load-ing] [memory] filename 

    Пример__________________________________________________ 

    MyBitmap BITMAP mybitmap.bmp 

    Параметры_____________________________________________ 

    Параметр id_name представляет собой уникальное имя или целочисленный 
идентификатор, связанный с ресурсом. Опция loading определяет способ загрузки 
ресурса. Значение PRELOAD указывает, что ресурс загружается в память при 
запуске программы, а значение LOADONCALL указывает, что загрузка ресурса 
осуществляется только при обращении к нему. Опция memory определяет способ 
размещения ресурса в памяти. Ресурс может быть зафиксирован в определенной 
области памяти (FIXED), может перемещаться в памяти (MOVEABLE) либо 
выгружаться (DISCARDABLE), если больше не используется. Параметр filename 
задает имя файла, содержащего растровое изображение. 

    CAPTION 

    Этот оператор определяет заголовок диалогового окна. 

    Синтаксис______________________________________________ 

    CAPTION text 

    Пример_____________________________________________ 

    CAPTION "Enter All Data" 

    Параметры_____________________________________________ 

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

    CHARACTERISTICS 

    Этот оператор используется для задания информации, определяемой программистом. 

    Синтаксис______________________________________________ 

    CHARACTERISTICS value 

    Пример   __________________________________________ 

    CHARACTERISTICS 99 


    500                                     MFC: основы программирования 


    Параметры_______________________________________ 

    Параметр value представляет собой длинное целое (двойное слово). Оператор 
CHARACTERISTICS может использоваться при определении клавиш быстрого доступа, 
диалоговых окон, меню, строк, а также в операторе RCDATA. 

    CHECKBOX 

    Этот оператор определяет контрольный переключатель. Контрольный 
переключатель — это небольшой прямоугольный элемент управления с текстовой меткой. 

    Синтаксис      _________________ _____ __ __ __ 

    CHECKBOX cb_text, id, х, у, width, height [, стиль] 

    Пример________________________________________________ 

    CHECKBOX "Underscore", 6, 15, 15, 35, 15 

    Параметры_____________________________________________ 

    Параметр cb_text содержит строку, отображаемую справа от контрольного 
переключателя. Параметр id представляет собой целое число, идентифицирующее 
контрольный переключатель. Параметры х и у задают координаты верхнего левого 
угла переключателя относительно верхнего левого угла диалогового окна. 
Параметры width и height задают размеры переключателя. В качестве стилей можно 
указывать любую комбинацию стилей класса BUTTON, которая сформирована при 
помощи операции побитового ИЛИ. По умолчанию установлен стиль BS_CHECKBOX | 
WS_TABSTOP. Другие стили перечислены при описании операторов CONTROL и STYLE. 

    CLASS 

    Этот оператор определяет класс диалогового окна. Если класс явно не 
определен, то создается стандартное диалоговое окно. 

    Синтаксис     __________________________________________ 

    CLASS class_type 

    Пример________________________________________________ 

    CLASS "first_class" 

    Параметры_____________________________________________ 

    Параметр class_type представляет собой целочисленное значение или 
текстовую строку, заключенную в двойные кавычки. Соответствующий класс окна 
должен быть зарегистрирован в программе, причем поле cdWndExtra в структурах 
WNDCLASS и WNDCLASSEX должно быть равно DLGWINDOWEXTRA. 

    Б. Язык ресурсов. Краткое описание                                  501 

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

    Синтаксис_________   ___________         ____ 

    СОМВОВОХ -id, x, у, width, height [, стиль] 

    Пример________________________________________ 

    СОМВОВОХ CB_ID, 15, 20, 100, 100, WS_VSCROLL 

    Параметры______________________       _____ 

    Параметр id представляет собой целое число, идентифицирующее 
комбинированный список. Параметры х и у задают координаты верхнего левого угла 
списка относительно верхнего левого угла диалогового окна. Параметры width и 
height задают размеры элемента. В качестве стил»й можно указывать любую 
комбинацию стилей класса СОМВОВОХ, которая сформирована при помощи операции 
побитового ИЛИ. По умолчанию установлен стиль CBSJSIMPLE | WS_TABSTOP. Другие 
стили перечислены при описании операторов CONTROL и STYLE. 

    CONTROL 

    Этот оператор определяет элемент управления указанного типа. 

    Синтаксис______________________________________________ 

    CONTROL c_text, id, class, style, x, у, width, height 

    Пример________________________________________________ 

    CONTROL "SColor", ID_COLOR, СОМВОВОХ, CBS_AUTOHSCROLL, 10, 10, 100, 120 

    Параметры_____________________________________________ 

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

    BUTTON 
    СОМВОВОХ 
    EDIT 
    LISTBOX 
    SCROLLBAR 
    STATIC 


    502                                     MFC: основы программирования 

    Стиль элемента управления, задаваемый параметром style, представляет собой 
комбинацию стилей, которая сформирована при помощи операции побитового ИЛИ. 
Списки стилей для соответствующих элементов управления приведены в табл, Б.2 — Б.7. 
    Параметры х и у задают координаты верхнего левого угла элемента управления 
относительно верхнего левого угла родительского окна. Параметры width и height 
задают размеры элемента. 

    Таблица Б.2. Стили окна класса BUTTON 

    Стиль                    Эффект 

    BS_3SATE                Кнопка с тремя состояниями. 
    BS_ALJT03STATE         Автоматическая кнопка с тремя состояниями. 
    BS_AUTOCHECKBOX      Автоматический контрольный переключатель. 
    BS_AUTORADIOBUTTON  Автоматическая селекторная кнопка. 
    BS_B1TMAP              Кнопка с растровым изображением. 
    BS_BOTTOM             Отображение текста у нижней границы кнопки. 
    BS_CENTER              Отображение текста по центру кнопки. 
    BS_CHECKBOX           Контрольный переключатель. 
    BS_DEFPUSHBUTTON     Кнопка, активная по умолчанию. 
    BS_GROLJPBOX           Групповая рамка. 
    BS_ICON                 Кнопка с пиктограммой. 
    BS_LEFT                 Выравнивание текста по левой границе кнопки. 
    BS_LEFTTEXT             Отображение текста слева от элемента управления. 
    (Этот стиль не используется в Windows 95. Вместо него лучше использовать 
стиль BS_RIGHTBUTTON.) 
    BS_MULTILINE           Отображение нескольких строк текста. 
    BS_NOTIFY               Кроме стандартных сообщений, родительское окно 
будет получать от кнопки идентификационные сообщения. 
    BS_OWNERDRAW         Кнопка, форма которой определена программистом. 
    BS_PUSHBLITTON        Стандартная кнопка. 
    BS_PUSHLIKE           Кнопка, не меняющая свой вид при нажатии. 
    BS_RADIOBUTTON       Селекторная кнопка. 
    BS_RIGHT                Выравнивание текста по правой границе кнопки. 
    BS_RIGHTBUTTON        Отображение текста слева от контрольного 
переключателя или селекторной кнопки. (По умолчанию текст отображается справа). 
    BS_TEXT                Кнопка с текстом. 
    BS_TOP                  Отображение текста у верхней границы кнопки. 
    BS_VCENTER             Отображение текста вертикально по центру кнопки. 


    Б. Язык ресурсов. Краткое описание                                  503 


    Таблица Б.З. Стили окна класса СОМВОВОХ 

    Стиль                            Эффект 

    CBS_AUTOHSCROLL            Автоматический сдвиг текста в поле ввода к 
правому краю. Если этот стиль не задан, текст в поле ввода не сдвигается. 
    CBS_DISABLENOSCROLL       Отображение неактивной (выделенной серым цветом) 
полосы прокрутки в поле списка, если список содержит недостаточно строк для прокрутки. 
    CBS_DROPDOWN              Комбинированный список с полем ввода и 
выпадающим списком. 
    CBS_DROPDOWNLIST          Комбинированный список со статическим текстом и 
выпадающим списком. 
    CBS_HASSTRINGS              Указывает, что список, форма которого задана 
программистом, содержит текстовые строки. 
    CBS_LOWERCASE              Отображение всех символов в нижнем регистре. 
    CBS_NOINTEGRALHEIGHT     Windows не разрешается изменять размеры 
комбинированного списка. 
    CBS_OEMCONVERT            Преобразование введенного текста из формата 
ASCII в OEM и наоборот. 
    CBS_OWNERDRAWFIXED       Список фиксированного размера. Форма списка 
задается программистом. 
    CBS_OWNERDRAWVARIABLE   Список переменного размера. Форма списка задается программистом. 
    CBS_SIMPLE                  Комбинированный список с полем ввода и 
статическим (а не выпадающим) списком. 
    CBS_SORT                     Автоматическая сортировка элементов списка по алфавиту. 
    CBS_UPPERCASE               Отображение всех символов в верхнем регистре. 


    Таблица Б.4. Стили окна класса EDIT 

    Стиль                             Эффект 

    ES_AUTOHSCROLL             Текст может автоматически сдвигаться вправо. 
    ES_AUTOVSCROLL             Текст может автоматически сдвигаться вверх. 
    ES_CENTER                   Выравнивание текста по центру поля ввода. 
    ES_LEFT                      Выравнивание текста по левому краю поля ввода. 
    ES_LOWERCASE               Автоматический перевод всех символов в нижний 
регистр при вводе. 
    ES_MULTILINE                 Поле ввода с возможностью ввода нескольких строк. 


    504                                    MFC: основы программирования 


    Стиль                        Эффект 

    ES_NOHIDESEL                Текст остается выбранным при потере полем 
фокуса ввода. 
    ES_NUMBER                  Поле ввода с возможностью ввода только цифровых данных. 
    ES_OEMCONVERT              Автоматическое преобразование введенного текста 
из формата ASCII в OEM и наоборот. 
    ES_PASSWORD                 Отображение вводимых символов в виде 
звездочек. Используется для ввода паролей. 
    ES_READONLY                Поле ввода без возможности редактирования. 
    ES_RIGHT                     Выравнивание текста по правому краю поля ввода. 
    ES_UPPERCASE                Автоматический перевод всех символов в верхний 
регистр при вводе. 
    ES_WANTRETURN              Вставка в редактируемую строку символа возврата 
каретки при нажатии клавиши [ENTER]. При отсутствии этого стиля нажатие 
[ENTER] приводит к нажатию кнопки, активной по умолчанию. Применяется только 
для полей ввода с возможностью ввода нескольких строк. 

    Таблица Б.5. Стили окна класса LISTBOX Стиль                            Эффект 

    LBSJDISABLENOSCROLL        Отображение неактивной (выделенной серым 
цветом) вертикальной полосы прокрутки в поле списка, если список содержит 
недостаточно строк для прокрутки. Если этот стиль не указан, то в подобной 
ситуации полоса прокрутки не отображается. 
    LBS_EXTENDEDSEL            Возможность выбора нескольких элементов списка. 
    LBS_HASSTRINGS              Указывает, что список, форма которого задана 
программистом, содержит текстовые строки. 
    LBS_MULTICOLLIMN           Список из нескольких колонок с возможностью 
горизонтальной прокрутки. 
    LBS_MULTIPLESEL            Возможность выбора элементов списка одинарным 
или двойным щелчком мыши. 
    LBS_NOINTEGRALH EIGHT     Windows не разрешается изменять размеры списка. 
    LBS_NOREDRAW              Внешний вид списка изменяться не может. 
    LBS_NOSEL                    Список, элементы которого не могут выбираться. 
    LBS_NOT1FY                   При выборе элемента списка родительскому окну 
посылается сообщение. 

    Б. Язык ресурсов. Краткое описание                                  505 

    Стиль                         Эффект 

    LBS_OWNERDRAWFIXED       Список фиксированного размера. Форма списка 
задается программистом. 
    LBS_OWNERDRAWVARIABLE    Список переменного размера. Форма списка задается программистом. 
    LBS_SORT                      Автоматическая сортировка элементов списка 
по алфавиту. 
    LBS_STANDARD              Стандартный список. 
    LBS_USETABSTOPS            Возможность выбора элементов списка нажатием 
клавиши [TAB]. 
    LBS WANTK.EYBOARDINPUT    Позволяет программе обрабатывать сообщения 
WM_VKEYTOITEM и WM_CHARTOITEM, генерируемые при нажатии клавиши после 
получения списком фокуса ввода. 

    Таблица Б.6. Стили окна класса SCROLLBAR 

    Стиль                           Эффект 

    SBS_BOTTOMALIGN            Нижний край полосы прокрутки привязывается к 
нижнему краю родительского окна. 
    SBS_HORZ                     Горизонтальная полоса прокрутки. 
    SBS_LEFTALIGN               Левый край полосы прокрутки привязывается к 
левому краю родительского окна. 
    SBS_RIGHTALIGN              Правый край полосы прокрутки привязывается к 
правому краю родительского окна. 
    SBS_SIZEBOX                  Создание рамки масштабирования — элемента 
управления, позволяющего изменять размеры родительского окна. 
    SBS_SIZEBOXBOTTOMRIGHTALIGN Правый нижний угол рамки масштабирования 
привязывается к правому нижнему углу родительского окна. 
    SBS_SIZEBOXTOPLEFTALIGN   Левый верхний угол рамки масштабирования 
привязывается к левому верхнему углу родительского окна. 
    SBS_SIZEGRIP                 Рамка масштабирования выглядит выпуклой. 
    SBS_TOPALIGN                 Верхний край полосы прокрутки привязывается к 
верхнему краю родительского окна. 
    SBS_VERT                     Вертикальная полоса прокрутки. 


    506                                     MFC: основы программирования 


    Таблица Б.7. Стили окна класса STATIC 

    Стиль                      Эффект 

    SS_BITMAP               Статический элемент, содержащий растровое изображение. 
    SS_BLACKFRAME         Статический элемент в виде прямоугольной рамки. Цвет 
рамки определяется текущими установками в Windows для линий, формирующих рамки 
окон. По умолчанию цвет рамки черныч. 
    SS_BLACKRECT           Статический элемент в виде заполненной 
прямоугольной области. Цвет области определяется текущими установками в 
Windows для линий, формирующих рамки окон. По умолчанию цвет области черный. 
    SS_CENTER               Выравнивание текста по центру заданной 
прямоугольной области. 
    SS_CENTERIMAGE        Выравнивание текста или графического изображения по 
центру заданной прямоугольной области. 
    SSJENHMETAFILE        Статический элемент, содержащий изображение из метафайла. 
    SS_ETCHEDFRAME       Отображение   границ   элемента   стилем EDGE_ETCHED 
("гравированные" линии). 
    SS_ETCHEDHORZ        Отображение верхней и нижней границы элемента стилем EDGEJETCHED. 
    SS_ETCHEDVERT         Отображение левой и правой границы элемента стилем EDGE_ETCHED. 
    SS_GRAYFRAME          Статический элемент в виде прямоугольной рамки. Цвет 
рамки определяется текущим цветом фона экрана. 
    SS_GRAYRECT            Статический элемент в виде заполненной 
прямоугольной области. Цвет области определяется текущими установками в 
Windows для 4>она экрана. По умолчанию цвет области серый. 
    SS_1CON                  Статический элемент в виде пиктограммы. Имя 
элемента в данном случае должно соответствовать имени пиктограммы, 
определенному с помощью оператора ICON. 
    SS_LEFT                  Выравнивание текста по левому краю заданной 
прямоугольной области. 
    SS_LEFTNOWORDWRAP    Выравнивание текста по левому краю заданной 
прямоугольной области. Перенос слов не выполняется. Символы, выходящие за 
пределы области, отбрасываются. 
    SS_NOPREFIX            Игнорирование символов "&" в тексте. 
    SS_NOTIFY               Родительское окно может получать идентификационные 
сообщения от элемента. 
    SS_OWNERDRAW         Форма элемента задается программистом. 


    Б. Язык ресурсов. Краткое описание                                  507 


    Стиль                    Эффект 

    SS_REALSIZEIMAGE       Растровые образы и пиктограммы при отображении не масштабируются. 
    SS_RIGHT                Выравнивание текста по правому краю заданной 
прямоугольной области. 
    SS_R1GHTJUST            Если статический элемент содержит пиктограмму или 
растровое изображение, то могут масштабироваться только левая и верхняя 
границы элемента. 
    SS_SIMPLE                Статический элемент, содержащий одну текстовую 
строку, которая выравнивается по правой границе элемента. 
    SS_SUNKEN              Элемент управления отображается "вдавленным". 
    SS_WHITEFRAME         Статический элемент в виде прямоугольной рамки. Цвет 
рамки определяется текущим цветом фона окна. 
    SS_WHITERECT           Статический элемент в виде заполненной 
прямоугольной области. Цвет области определяется текущими установками в 
Windows для фона окна. По умолчанию цвет области белый. 
    СТЕХТ 
    Этот оператор используется исключительно при определении диалогового окна 
и задает статический прямоугольный элемент управления, предназначенный для 
отображения текста, выравниваемого по центру ограничивающего прямоугольника. 
Если текст выходит за пределы области, автоматически выполняется перенос слов 
на следующую строку. 

    Синтаксис______________________________________________ 

    СТЕХТ c_text, id, x, у, width, height [, стиль] 

    Пример _______________________________________________ 

    СТЕХТ "Wild Colors", ID_WCOLORS, 20, 20, 150, 150 

    Параметры _________________________________________ 

    Параметр c_text содержит отображаемый текст. Параметр id представляет 
собой целое число, идентифицирующее данный элемент. Параметры х и у задают 
координаты верхнего левого угла элемента относительно начала рабочей области 
диалогового окна. Параметры width и height задают размеры элемента. В качестве 
стилей можно указывать любую комбинацию стилей SS_CENTER, WS_TABSTOP и 
WS_GROUP, которая сформирована при помощи операции побитового ИЛИ. По 
умолчанию установлен стиль SS_CENTER | WS_GROUP. 

    508                                    MFC: основы программирования 

    CURSOR 
    Этот оператор определяет курсор мыши. 

    Синтаксис___________________________________________ 

    id name CURSOR [2oad-ing] [memory] filename 

    Пример_____________________________________________ 

    cursorA CURSOR "c:\\win\\mycur.cur" 

    Параметры            ___         ___ 

    Параметр id_name представляет собой уникальное имя или целочисленный 
идентификатор, связанный с ресурсом. Опция loading определяет способ загрузки 
ресурса. Значение PRELOAD указывает, что ресурс загружается в память при 
запуске программы, а значение LOADONCALL указывает, что загрузка ресурса 
осуществляется только при обращении к нему. Опция memory определяет способ 
размещения ресурса в памяти. Ресурс может быть зафиксирован в определенной 
области памяти (FIXED), может перемешаться в памяти (MOVEABLE) либо 
выгружаться (DISCARDABLE), если больше не используется. Параметр filename 
задает имя файла, содержащего образ курсора. 

    DEFPUSHBUTTON 

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

    Синтаксис 

    DEFPUSHBUTTON pb__text, id, x, у, width, height [, стиль] 

    Пример________________________________________________ 

    DEFPUSHBUTTON "OK", ID_OK, 20, 20, 35, 35 

    Параметры    __________________________ ___________ 

    Параметр pb_texl содержит строку, отображаемую внутри кнопки. Параметр id 
представляет собой уникальное имя или целочисленный идентификатор, связанный с 
ресурсом. Параметры х и у задают координаты верхнего левого угла кнопки 
относительно начала рабочей области диалогового окна. Параметры width и height 
задают размеры кнопки. В качестве стилей можно указывать любую комбинацию 
стилей BSJOEFPUSHBUTTON, WS_TABSTOP, WS_GROUP и WS_DISABLED, которая 
сформирована при помощи операции побитового ИЛИ. По умолчанию установлен стиль 
BS_DEFPUSHBUTTON | WS_TABSTOP. 


    Б. Язык ресурсов. Краткое описание                                  509 


    DIALOG 

    Этот оператор определяет диалоговое окно. 

    Синтаксис 

    id__name DIALOG [loading}[memory} x, у, width, height [, стиль} 

    Пример __ __ 

    ShapeDialogBox DIALOG 6, 18, 160, 100 

    Параметры____________________________________ 

    Параметр id_name представляет собой уникальное имя или целочисленный 
идентификатор, связанный с ресурсом. Опция loading определяет способ загрузки 
ресурса. Значение PRELOAD указывает, что ресурс загружается в память при 
запуске программы, а значение LOADONCALL показывает, что загрузка ресурса 
осуществляется только при обращении к нему. Опция memory определяет способ 
размещения ресурса в памяти. Ресурс может быть зафиксирован в определенной 
области памяти (FIXED), может перемещаться в памяти (MOVEABLE) либо 
выгружаться (DISCARDABLE), если больше не используется. Параметры х и у задают 
координаты верх не толевого угла диалогового окна. Параметры width и height 
задают размеры окна. В качестве стилей можно указывать любую комбинацию стилей 
окон, которая сформирована при помощи операции побитового ИЛИ. Например, при 
определении диалоговых окон часто используется следующая комбинация: 
DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU. Другие стили 
перечислены при описании операторов CONTROL и STYLE. 

    DIALOGEX 

    Оператор DIALOGEX является расширенной формой оператора DIALOG. В этом 
операторе можно задавать расширенные стили диалогового окна и элементов 
управления, расположенных в этом окне. 

    Синтаксис______________________________________________ 

    id_name DIALOGEX [loading][memory] x, у, width, height [, IDHelp] 

    Параметры_____________________________________________ 

    Параметры оператора DIALOGEX аналогичны параметрам оператора DIALOG, за 
исключением IDHelp. Этот параметр определяет идентификатор раздела файла 
помощи, относящегося к данному диалоговому окну. 
    Оператор- DIALOGEX позволяет определить расширенные стили окна при помощи 
встроенного оператора EXSTYLE. Для получения более подробной информации 
обратитесь к справочному руководству по языку ресурсов. 

    510                                     MFC: основы программирования 


    EDITTEXT 

    Этот оператор определяет поле ввода. 

    Синтаксис_________________________________________ 

    EDITTEXT id, x, у, width, height [, стиль} 

    Пример_____________________________________________ 

    EDITTEXT IDD_UPPERX, 97, 28, 32, 12, ES_AUTOHSCROLL 

    Параметры___________________________________________ 

    Параметр id представляет собой уникальное имя или целочисленный 
идентификатор, связанный с ресурсом. Параметры х и у задают координаты 
верхнего левого угла поля относительно начала рабочей области окна. Параметры 
width и height задают размеры поля. В качестве стилей можно указывать любую 
комбинацию стилей окон, которая сформирована при помощи операции побитового 
ИЛИ. Чаще всего используются стили WS_TABSTOP, WS_GROUP, WS_VSCROLL, 
WS_HSCROLL и WSJDISABLE. По умолчанию установлен стиль ES_LEFT | WS_BORDER | 
WSJTABSTOP. Другие стили перечислены при описании операторов CONTROL и STYLE. 

    EXSTYLE 

    Этот оператор определяет параметры расширенного стиля диалогового окна; в 
остальном аналогичен оператору STYLE. Список констант расширенных стилей можно 
найти в стандартном библиотечном файле Windows, называющемся WINUSER.H (все 
константы начинаются с префикса WS_EX). Для получения более подробной 
информации обратитесь к справочному руководству по языку ресурсов. 

    FONT 

    Этот оператор предназначен для определения нового ресурса шрифта или для 
определения шрифта, используемого в диалоговом окне. 

    Синтаксис______________________________________________ 

    FONT point_s-ize, typeface 

    id name FONT [-loading] [memory] filename 

    Примеры __________________________________________ 

    FONT 10, "Courier New" 
    MYFONT FONT PRELOAD MOVEABLE system96.fnt 

    Параметры___________________________________________ 

    Параметр point_siw задает размер шрифта в пунктах. Возможные значения 
параметра typeface (семейство шрифта) определены в файле WIN.INI. Параметр 
id_name представляет собой уникальное имя или целочисленный идентификатор, 
связанный с ресурсом. Опция loading определяет способ загрузки ресурса. 
Значение PRELOAD указывает, что ресурс загружается в память при запуске 
программы, а значение 

    Б. Язык ресурсов. Краткое описание                                   511 

    LOADONCALL указывает, что загрузка ресурса осуществляется только при 
обращении к нему. Опция memory определяет способ размещения ресурса в памяти. 
Ресурс может быть зафиксирован в определенной области памяти (FIXED), может 
перемещаться в памяти (MOVEABLE) либо выгружаться (DISCARDABLE), если больше 
не используется. Параметр filename задает имя файла шрифта. 

    GROUPBOX 

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

    Синтаксис______________________________________________ 

    GROUPBOX gb_text, id, x, у, width, height [, стиль} 

    Пример________________________________________________ 

    GROUPBOX "Chart Labels", ID_CHART, 20, 20, 150, 200 

    Параметры                        __________________ 

    Параметр gb_text содержит строку заголовка рамки. Параметр id представляет 
собой уникальное имя или целочисленный идентификатор, связанный с ресурсом. 
Параметры х и у задают координаты верхнего левого угла рамки относительно 
начала рабочей области диалогового окна. Параметры width и height задают 
размеры рамки. В качестве стилей можно указывать любую комбинацию стилей 
BS_GROUPBOX, WS_TABSTOP и WS_DISABLED, которая сформирована при помощи 
операции побитового ИЛИ. По умолчанию установлен стиль BS_GROUPBOX. 

    ICON 

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

    Синтаксис 

    ICON icon_name, id, x, у [, width, height} [, стиль] 
    id name ICON [loading][memory] filename 

    Примеры                         _______________________ 

    ICON "MYICON", ID_MYICON, 40, 50 
    MY I CON ICON MOVEABLE myicon.iсо 

    Параметры      ______________________________________ 

    В первой форме оператора параметр icon_name определяет имя пиктограммы. 
Параметр id представляет собой уникальное имя или целочисленный идентификатор, 
связанный с ресурсом. Параметры х и у задают координаты верхнего левого угла 
пиктограммы относительно начала рабочей области диалогового окна. Параметры 
width и height игнорируются. В качестве стиля можно указывать только значение SSJCON. 

    512                                     MFC: основы программирования 

    Во второй форме оператора параметр id_name представляет собой уникальное 
имя или целочисленный идентификатор, связанный с ресурсом. Опция loading 
определяет способ загрузки ресурса. Значение PRELOAD указывает, что ресурс 
загружается в память при запуске программы, а значение LOADONCALL указывает, 
что загрузка ресурса осуществляется только при обращении к нему. Опция memory 
определяет способ размещения ресурса в памяти. Ресурс может быть зафиксирован 
в определенной области памяти (FIXED), может перемещаться в памяти (MOVEABLE) 
либо выгружаться (DISCARDABLE), если больше не используется. Параметр filename 
задает имя файла, содержащего образ пиктограммы. 

    LISTBOX 

    Этот оператор определяет окно списка. 
    Синтаксис                                       __   _ 

    LISTBOX' id, x, у, width, height [, стиль] 

    Пример________________________________________________ 

    LISTBOX ID_LB, 20, 20, 75, 90 

    Параметры   _____________________________________ 

    Параметр id представляет собой уникальное имя или целочисленный 
идентификатор, связанный с ресурсом. Параметры х и у задают координаты 
верхнего левого угла элемента относительно начала рабочей области диалогового 
окна. Параметры width и height задают размеры окна списка. В качестве стилей 
можно указывать любую комбинацию стилей класса LISTBOX (плюс стили WS_BORDER и 
WS_VSCROLL), которая сформирована при помощи операции побитового ИЛИ. По 
умолчанию установлен стиль WSJBORDER | LBSJNOTIFY. Другие стили перечислены 
при описании операторов CONTROL и STYLE. 

    LTEXT 

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

    Синтаксис_____________________________________________ 

    LTEXT 1_text, id, х, у, width, height [, стиль] 

    Пример________________________________________________ 

    LTEXT "Enter an integer", ID_INT, 20, 30, 80, 90 

    Параметры_____________________________________________ 

    Параметр l_fext содержит отображаемый текст. Параметр id представляет 
собой целое число, идентифицирующее данный элемент. Параметры х и у задают 
координаты верхнего левого угла элемента относительно начала рабочей области 
диалогового окна. Параметры width и height задают размеры элемента. В качестве 
стилей можно указывать любую комбинацию стилей SS_LEFT, WS_TABSTOP и 

    Б. Язык ресурсов. Краткое описание                                   513 

    WS_GROUP, которая сформирована при помощи операции побитового ИЛИ. По 
умолчанию установлен стиль SS_LEFT | WS_GROUP. 
    MENU 

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

    Синтаксис______________________________________________ 

    MENU menu name 
    id name MENU [loading][memory] 

    Примеры_______________________________________________ 

    MENU FileMenu 
    AboutMenu MENU 
    ( 
    POPUP "Integer Input" 
    ( 
    MENUITEM "About Box...", IDM_ABOUT 
    } 
    } 

    Параметры___________________________________________ 

    Параметр menu_name задает имя меню либо его целочисленный идентификатор. 
Параметр id_name представляет собой уникальное имя или целочисленный 
идентификатор, связанный с ресурсом. Опция loading определяет способ загрузки 
ресурса. Значение PRELOAD указывает, что ресурс загружается в память при 
запуске программы, а значение LOADONCALL показывает, что загрузка ресурса 
осуществляется только при обращении к нему. Опция memoi-y определяет способ 
размещения ресурса в памяти. Ресурс может быть зафиксирован в определенной 
области памяти (FIXED), может перемещаться в памяти (MOVEABLE) либо 
выгружаться (DISCARDABLE), если больше не используется. 

    MENUEX 

    Этот оператор является расширенной формой оператора MENU и позволяет 
связать идентификаторы разделов файла помощи с выпадающими меню. Для получения 
более подробной информации обратитесь к справочному руководству по языку ресурсов. 

    MENUITEM 

    Этот оператор определяет элемент меню. 

    Синтаксис______ _____________________________________ 

    MENUITEM menu_text, result [, опции] 


    514                                    MFC: основы программирования 


    Пример_______________________________________ 

    AboutMenu MENU 
    { 
    POPUP "Integer Input" 
    ( 
    MENUITEM "About Box...", IDM_ABOUT 
    ) 

    Параметры_____________________________________________ 

    Параметр menuJext содержит название элемента меню, т.е. текст, 
отображаемый в соответствующей позиции меню. Если какому-либо символу 
предшествует "&", то этот символ отображается подчеркнутым, а сам элемент меню 
может быть выбран нажатием соответствующей клавиши. В строке названия могут 
также присутствовать символы табуляции "\t" и символ выравнивания текста по 
правому краю "\а" (в начале строки). Параметр result содержит целое число, 
которое будет передаваться родительскому окну при выборе данного элемента. 
Опции определяют способ отображения названия элемента. Например, если задана 
опция CHECKED, то справа от названия будет стоять метка выбора. Если задана 
опция GRAYED, то название элемента будет отображено серым цветом (т.е. элемент 
в данный момент неактивен и не может быть выбран). Опция HELP позволяет 
идентифицировать элемент меню, связанный с вызовом помощи. Если задана опция 
INACTIVE, то название будет отображено обычным образом, но выбор 
соответствующего элемента невозможен. Опция MENUBARBREAK определяет 
вертикальную разделительную черту между элементами выпадающего меню. Задание 
опции MENUBREAK для элемента меню верхнего уровня приведет к тому, что 
следующий элемент меню будет отображен с новой строки, а для выпадающего меню 
— к отображению следующего элемента меню в новом столбце без разделительной 
черты между столбцами. 

    POPUP 

    Этот оператор определяет выпадающее меню. 

    Синтаксис______________________________________________ 

    POPUP pu text [, опции] 

    Пример________________________________________________ 

    AboutMenu MENU 
    ( 
    POPUP "Integer Input" 
    ( 
    MENUITEM "About Box...", IDM_ABOUT 
    i 
    i 

    Параметры___________________________________________ 

    Параметр pu_text содержит название элемента меню. Это просто строка, 
заключенная в двойные кавычки. Опции определяют способ отображения данной строки. 

    Б. Язык ресурсов. Краткое описание                                  515 

    Например, если задана опция CHECKED, то справа от названия будет стоять 
метка выбора. Если задана опция GRAYED, то название элемента будет отображено 
серым цветом (т.е. элемент в данный момент неактивен и не может быть выбран). 
Опция HELP позволяет идентифицировать элемент меню, связанный с вызовом 
помощи. Если задана опция INACTIVE, то название будет отображено обычным 
образом, но выбор соответствующего элемента невозможен. Опция MENUBARBREAK 
определяет вертикальную разделительную черту между элементами выпадающего 
меню. Задание опции MENUBREAK для выпадающего меню приводит к отображению 
следующего элемента меню в новом столбце без разделительной черты между столбцами. 

    PUSHBOX и PUSHBUTTON 

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

    Синтаксис______________________________________________ 

    PUSHBUTTON pb_text, id, x, у, width, height [, стиль] 
    PUSHBOX pb_text, id, x, у, width, height [, стиль] 

    Пример________________________________________________ 

    PUSHBUTTON "OK", ID_OK, 20, 20, 40, 40 

    Параметры ____   __________   __________ 

    Параметр pb_lext содержит строку, отображаемую внутри кнопки. Параметр id 
представляет собой уникальное имя или целочисленный идентификатор, связанный с 
ресурсом. Параметры х и у задают координаты верхнего левого угла кнопки 
относительно начала рабочей области диалогового окна. Параметры width и height 
задают размеры кнопки. В качестве стилей можно указывать любую комбинацию 
стиля BS_DEFPUSHBUTTON и стилей WSJTABSTOP, WS_GROUP и WS_DISABLED, которая 
сформирована при помощи операции побитового ИЛИ. По умолчанию установлен стиль 
BS_PUSHBUTTON ] WS_TABSTOP. (Для "невидимой" кнопки используется стиль 
BS_PUSHBOX.) Другие стили перечислены при описании операторов CONTROL и STYLE. 

    RADIOBUTTON 

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

    Синтаксис______________________________________________ 

    RADIOBUTTON rb_text, id, x, у, width, height[, стиль] 


    516                                    MFC: основы программирования 


    Пример      __   __ ___ ___   __ 

    RADIOBUTTON "Bold", ID_BOLD, 20, 20, 60, 70 

    Параметры_____________________________________________ 

    Параметр rb_text содержит строку, отображаемую рядом с кнопкой. Параметр 
id представляет собой уникальное имя или целочисленный идентификатор, 
связанный с ресурсом. Параметры х и у задают координаты верхнего левого угла 
кнопки относительно начала рабочей области диалогового окна. Параметры width и 
height задают размеры элемента. В качестве стилей можно указывать любую 
комбинацию стилей класса BUTTON, а также стили WS_DISABLED, WS_GROUP и 
WS_TABSTOP. По умолчанию установлен стиль BSJRADIOBUTTON | WS_TABSTOP. Другие 
стили перечислены при описании операторов CONTROL и STYLE. 

    RCDATA 

    Этот оператор определяет ресурс данных. 

    Синтаксис_____________________________________________ 

    id__name RCDATA [-loading] [memory] 

    Пример________________________________________________ 

    new_data RCDATA 
    ( 
    Ox03b5, /* шестнадцатиричное число */ 
    "value", /* строка */ 
    768      /* десятичное число */ 
    } 

    Параметры ____ ______________________________________ 

    Параметр id_name представляет собой уникальное имя или целочисленный 
идентификатор, связанный с ресурсом. Опция loading определяет способ загрузки 
ресурса. Значение PRELOAD указывает, что ресурс загружается в память при 
запуске программы, а значение LOADONCALL показывает, что загрузка ресурса 
осуществляется только при обращении к нему. Опция memory определяет способ 
размещения ресурса в памяти. Ресурс может быть зафиксирован в определенной 
области памяти (FIXED), может перемещаться в памяти (MOVEABLE) либо 
выгружаться (DISCARDABLE), если больше не используется. 

    RTEXT 

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

    RTEXT r_tex?, id, х, у, width, height [, стиль] 


    Б. Язык ресурсов. Краткое описание                                  517 


    Пример____________________________________ 

    RTEXT "Enter a string", ID_STR, 25, 35, 85, 95 

    Параметры 

    Параметр r_text содержит отображаемый текст. Параметр id представляет 
собой уникальное имя или целочисленный идентификатор, связанный с ресурсом. 
Параметры х и у задают координаты верхнего левого угла элемента относительно 
начала рабочей области диалогового окна. Параметры width и height задают 
размеры элемента. В качестве стилей можно указывать любую комбинацию стилей 
SS_RIGHT, WS_TABSTOP и WS_GROUP, которая сформирована при помощи операции 
побитового ИЛИ. По умолчанию установлен стиль SS_RIGHT | WS_GROUP. 

    SCROLLBAR 

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

    Синтаксис______________________________________________ 

    SCROLLBAR id, х, у, width, height [, стиль} 

    Пример_____________________________________________ 

    SCROLLBAR IDJ3CROLL, 100, 200, 20, 200 

    Параметры ___________________________________ 

    Параметр id представляет собой уникальное имя или целочисленный 
идентификатор, связанный с ресурсом. Параметры х и у задают координаты 
верхнего левого угла элемента относительно начала рабочей области диалогового 
окна. Параметры width и height задают размеры элемента. В качестве стилей 
можно указывать любую комбинацию стилей класса SCROLLBAR и стилей WS_DISABLED, 
WSJTABSTOP и WS_GROUP, которая сформирована при помощи операции побитового 
ИЛИ. По умолчанию установлен стиль SBS_HORZ. Другие стили перечислены при 
описании операторов CONTROL и STYLE. 

    STATE3 

    Этот оператор создает контрольный переключатель, имеющий три состояния: 
    выбран (установлен), сброшен (не установлен) и неактивен (выделен серым 
цветом). В остальном этот оператор аналогичен оператору CHECKBOX. 

    STRINGTABLE 

    Этот оператор определяет строковый ресурс — массив текстовых строк, 
заканчивающихся символом '\0' и имеющих уникальные идентификаторы. 

    Синтаксис_______________________________________ 

    STRINGTABLE [loading][memory} 


    518                                    MFC: основы программирования 


    Пример______________________________________________ 

    STRINGTABLE PRELOAD MOVEABLE 
    ( 
    IDS_MESS1, "Warning!" 
    IDS_MESS2, "Safe!" 
    IDS_MESS3, "End Operation" 
    ) 

    Параметры ___   ___   ____   ___    __ 

    Опция loading определяет способ загрузки ресурса. Значение PRELOAD 
указывает, что ресурс загружается в память при запуске программы, а значение 
LOADONCALL показывает, что загрузка ресурса осуществляется только при 
обращении к нему. Опция memory определяет способ размещения ресурса в памяти. 
Ресурс может быть зафиксирован в определенной области памяти (FIXED), может 
перемещаться в памяти (MOVEABLE) либо выгружаться (DISCARDABLE), если больше 
не используется. 

    STYLE 

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

    Синтаксис        _______________________________ ____ 

    STYLE sty-ге 

    Параметры___________________________________________ 

    По умолчанию стиль диалогового окна определяется как WS_POPUP | WS_BOR

    DER | WS_SYSMENU. В табл. Б.8 описаны различные стили окон. 

    Таблица Б. 8. Наиболее распространенные стили окон 

    Стиль                      Назначение 

    DS_LOCALEDIT              Поля ввода, расположенные в диалоговом окне, 
будут использовать сегмент данных программы. (Этот стиль не используется в 
Windows 95.) 
    DS_MODALFRAME          Диалоговое окно с модальной рамкой. 
    DS_NOIDLEMSG            Сообщение WM_ENTERIDLE, которое обычно посылается 
родительскому окну при активизации диалогового окна, игнорируется. 
    DS_SYSMODAL              Системное модальное окно (пока оно не закрыто, 
невозможно продолжение работы с любой программой). 
    WS_BORDER               Окно с рамкой. WS_CAPTION               Окно со 
строкой заголовка. 
    WS_CHILD                  Окно отображается как дочернее, а не как всплывающее. 
    WS_CHILDWINDOW         To же, что и WS_CHILD. 


    Б. Язык ресурсов. Краткое описание                                 519 


    Стиль                      Назначение 

    WS_CLIPCHILDREN          В процессе отображения родительского окна не 
допускается отображение дочерних окон. 
    WS_CLIPSIBLINGS           Перерисовка одного из дочерних окон не влечет за 
собой перерисовку других. 
    WS_DISABLED              Неактивное окно. 
    WS_DLGFRAME             Окно без строки заголовка с модальной рамкой, как 
у диалогового окна. 
    WS_GROUP                 Определяет первый элемент в группе элементов управления. 
    WS_HSCROLL               Окно с горизонтальной полосой прокрутки. 
    WS_ICONIC                 При вызове окно отображается в виде пиктограммы. 
    WS_MAXIMIZED             При вызове окно отображается раскрытым на весь экран. 
    WS_MAXIMIZEBOX          Окно с кнопкой максимизации в правом верхнем углу. 
    WS_MINIMIZE              При вызове окно отображается в виде пиктограммы. 
    WS_MINIMIZEBOX          Окно имеет кнопку минимизации в правом верхнем углу. 
    WS_OVERLAPPED           Масштабируемое окно с рамкой и заголовком. 
    WS OVERLAPPEDWINDOW   Масштабируемое окно со следующими стилями: 
    WS_OVERLAPPED 
    WSJ5YSMENU 
    WS_CAPTION 
    WS_THICKFRAME 
    WS_MINIMIZEBOX 
    WS_MAXIMIZEBOX. 
    WS_POPUP                  Окно отображается как всплывающее, а не как дочернее. 
    WS POPUPWINDOW         Всплывающее окно со следующими стилями: 
    WS_POPUP 
    WS_BORDER 
    WS_SYSMENU. 
    WS_SYSMENU               Окно с пиктограммой системного меню в левом 
верхнем углу. 
    WS_TABSTOP                Определяет элемент управления, который можно 
выбрать последовательным нажатием клавиши [TAB]. 
    WS_THICKFRAME           Окно с толстой рамкой, используемой для 
масштабирования окна. 
    WS_VISIBLE                 При вызове окно отображается на экране. 
WS_VSCROLL                Окно с вертикальной полосой прокрутки. 

    520                                    MFC: основы программирования 


    User-Defined 

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

    Синтаксис 

    id name id type [loading][memory][filename] 

    Пример_________________________________ 

    ID_UDR MYRES 
    { 
    Ox03b5   /* шестнадцатиричное число */ 
    "value" /* строка */ 
    768      /* десятичное число */ 
    } 

    Параметры      ________________ 

    Параметр id_name представляет собой уникальное имя или целочисленный 
идентификатор, связанный с ресурсом. Параметр id_type задает тип ресурса (для 
этого используются целые значения, большие 255). Опция loading определяет 
способ загрузки ресурса. Значение PRELOAD указывает, что ресурс загружается в 
память при запуске программы, а значение LOADONCALL показывает, что загрузка 
ресурса осуществляется только при обращении к нему. Опция memory определяет 
способ размещения ресурса в памяти. Ресурс может быть зафиксирован в 
определенной области памяти (FIXED), может перемещаться в памяти (MOVEABLE) 
либо выгружаться (DISCARDABLE), если больше не используется. Опция filename 
определяет имя файла данных. 

    VERSION 

    Этот оператор используется разработчиками для включения в программу 
информации о версии ресурса. 

    Синтаксис______________________________________________ 

    VERSION value 

    Параметры_____________________________________________ 

    Параметр value содержит заданное разработчиком число, которое имеет 
размерность двойного слова. 
    Оператор VERSION может использоваться при определении клавиш быстрого 
доступа, диалоговых окон, меню, строк, а также в операторе RCDATA. 

    VERSIONINFO 

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

    Б. Язык ресурсов. Краткое описание                                  521