Ресурсы. Файл описания ресурса, страница 9

PUSHBUTTON    "Done",IDCANCEL,116,8,50,14,WS_GROUP END

DIALOGEX                                           • Windows 98   •  Windows 2000

 

Описание

Оператор DIALOGEX заменяет применявшийся ранее тип ресурса DIALOG и позволяет создавать идентификаторы справки для диалогового окна и элементов управления, использовать расширенные стили в диалоговом окне и элементах управления, задавать установки веса и курсива для шрифта диалогового окна, включать данные, необходимые для элементов управления, находящихся в диалоговом окне, и использовать предопределенные имена системных классов BEDIT, IEDIT и HEDIT.

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

 

Синтаксис

namelD DIALOGEX x, у, width, height [,help!D] [option-statements]

 

Параметры

 

namelD

Имя диалогового окна. Это — символьная строка или 16-разрядное целое число без знака, которое используется с функцией DialogBox для указания диалогового окна, которое должно быть загружено и выполнено.

 

x, у, width, height

tПозиция и размеры диалогового окна. Для указания всех размеров используются базовые единицы длины диалогового окна. Координаты jc, у измеряются относительно левого верхнего угла окна, из которого вызвано диалоговое окно.

 

helplD

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

 

option -statements

Это необязательные операторы, в качестве которых можно указывать STYLE, EXSTYLE, CAPTION, CHARACTERISTICS, MENU, CLASS, LANGUAGE, VERSION и FONT. Все операторы в определении диалогового окна, следующие после оператора DIALOG, вплоть до оператора BEGIN, считаются необязательными операторами.

 

Пример

 

#define   HIDEXMPDLG      1001

EXMPDLG   DIALOGEX      10,    18,    145,    80,       HIDEXMPDLG STYLE   OSMODALFRAME    |    WS   POPUP    |    WS VISIBLE    |    WS_CAPTION    |    WS_SYSMENU CAPTION   "Test   Dialog" BEGIN (определения  элементов  диалогового   окна) END

 

CAPTION                                             • Windows 98   • Windows 2000

 

Описание

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

 

Синтаксис

CAPTION captiontext

 

Параметры

f

 

captiontext

Символьная строка, которая отображается в качестве заголовка диалогового окна. Строка должна быть задана в двойных кавычках (" ").

 

Пример

 

CAPTION   "Dialog  Box   Title   Here"

 

CHARACTERISTICS                                 *  Windows 98    *  Windows 2000

 

Описание

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

 

Синтаксис

CHARACTERISTICS dword

 

Параметры

 

dword

Определяемое пользователем значение двойного слова. Это значение появляется вместе с ресурсом в откомпилированном файле RES. Однако это значение не хранится в выполняемой программе.

 

Пример

 

CHARACTERISTICS   388837

 

CLASS                                                 • Windows 98   •  Windows 2000

 

Описание

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

 

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

 

Синтаксис

CLASS classname

 

Параметры

 

classname

Имя класса. Класс должен быть зарегистрирован заранее с помощью функции   RegisterClass. Класс должен быть зарегистрирован с элементом cbWndExtra, установленным в DLGWINDOWEXTRA. Строка должна быть задана в двойных кавычках (" ").

 

Пример

 

CLASS   "separate"

 

EXSTYLE                                              «. Windows 98   «• Windows 2000

 

Описание

Указывает расширенный стиль, применяемый при создании диалогового окна.

 

Синтаксис

EXSTYLE exstyle

 

Параметры

 

exstyle

Все расширенные стили окна описаны в табл. 3.5 главы 3.

 

Пример

 

EXMPDLG   DIALOGEX   EXSTYLE=WS  EX  TOOLWINDOW   10,    18,    145,    80

ИЛИ

EXMPDLG   DIALOGEX   10,    18,    145,    80 EXSTYLE   WS_EX_TOOLWINDOW BEGIN (определения  элементов  диалогового   окна) END

 

FONT                                                  • Windows 98   • Windows 2000

 

Описание

Указывает шрифт, применяемый в диалоговом окне для всех элементов управления. Как было описано выше, шрифт определяет не только гарнитуру, но и размеры каждого элемента управления и самого диалогового окна. Это связано с тем, что при определении размеров диалогового окна применяются базовые единицы длины диалогового окна, выраженные в долях размеров символов шрифта. Для большинства диалоговых окон лучше всею использовать шрифт MS Sans Serif размером 8 пунктов.

 

Синтаксис

FONT pomisize, typeface, weight, italic, charset

 

Параметры

 

pomisize

Размер применяемого шрифта в пунктах.

 

typeface

Название применяемой гарнитуры шрифта. Строка должна быть задана в двойных кавычках (" ").

 

weight

Применяются значения FW_*, которые определены для структуры LOGFONT.

 

italic

TRUE, если нужно использовать курсивный шрифт; в ином случае FALSE.

 

charset

Используются значения, определенные для члена   IfCharSet структуры LOGFONT.

 

Пример

FONT  в, "MS   Sans   Serif",   FW_BOLD,   TRUE,   ANSI  CHARSET

LANGUAGE                                          • Windows 98   • Windows 2000

Описание

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

Синтаксис

LANGUAGE language, sublanguage

Параметры

language

Идентификатор языка. Допустимые значения представлены в описании функции EnumResourceLanguages в главе 7.

sublanguage

Идентификатор диалекта языка. Допустимые значения представлены в описании функции EnumResourceLanguages в главе 7.

Пример

LANGUAGE   LANG_SPANISH,    SUBLANG_SPANISH_MEXICAN

MENU                                                 • Windows 98   • Windows 2000

Описание

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

Синтаксис

MENU menuname

Параметры

menuname

Указывает идентификатор меню, предназначенного для использования.

Пример

MENU   testmenu

STYLE

• Windows 98   • Windows 2000

Описание

Указывает стиль, применяемый при создании диалогового окна. Если диалоговое окно представляет собой немодальное диалоговое окно, следует обязательно включить~стиль WS_VISIBLE, чтобы не пришлось вызывать функцию ShowWindow для превращения диалогового окна в видимое. В диалоговых окна не могут применяться стили WM_MINIMIZEBOX и WM_MAXIMIZEBOX.

Синтаксис

STYLE style

Параметры

style

Позволяет использовать все стили, перечисленные в табл. 3.4 главы 3, которые начинаются с WS_ или DS_.

Пример

STYLE   WS_DLGFRAME    |   WS_VISIBLE    |    WS_POPUP

VERSION

• Windows 98   • Windows 2000

Описание

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

пись файлов определения ресурсов. Указанное значение игнорируется в системе Windows.

 

Синтаксис

VERSION dword

 

Параметры

 

dword

Определяемое пользователем значение двойного слова. Это значение появляется вместе с ресурсом в оттранслированном файле RES. Однако это значение не хранится в выполняемой программе.

 

Пример

 

VERSION   10

 

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

В системе Windows предусмотрены два равнозначных способа указания элементов управления дочернего окна в шаблоне диалогового окна. Один способ состоит в использовании явного оператора, такого как СОМВОВОХ. Другой способ предусматривает использование оператора CONTROL, который, в свою очередь, позволяет включать стиль СОМВОВОХ в качестве параметра. В следующих двух примерах показано создание одного и того же элемента управления.

CONTROL   "Push  Me",    IDC_BUTTON1,    "button", BS_DEFPUSHBUTTON    |    WSJTABSTOP    |    WS_CHILD,    45,    66,    48,    12

DEFPUSHBUTTON   "Push   Me",    IDC BUTTON1,    45,    66,    48,    12,    WS   TABSTOP

Положение и размеры элемента управления обозначены в этих операторах цифрами. В приведенных ниже описаниях они обозначаются как х, у, width, height. Следует учитывать, что все значения должны быть представлены целыми числами и выражены в базовых единицах длины диалогового окна. Идентификационные значения для каждого элемента управления обычно должны быть определены в отдельном файле заголовка. Для элементов управления с необязательным параметром styleможно также выбрать стили WS_TABSTOP и/или WS_GROUP. Эти стили управляют применяемым по умолчанию интерфейсом клавиатуры, как было описано выше. Эти два стиля можно объединить с помощью двоичного оператора OR (|). Элементы управления диалоговых окон, созданных а качестве ресурса DIALOGEX, могут также содержать дополнительную информацию, которая определяет необязательные расширенные стили, идентификатор справки и данные, относящиеся к элементу управления. Данные, касающиеся элемента управления, содержатся в блоке BEGIN/ END, который следует за объявлением элемента управления. Ниже показан формат, применяемый для элементов управления всех типов. В качестве расширенного стиля может применяться один или несколько стилей WS_ и ЕХ_, перечисленных в табл. 3.5 в главе 3.

(Control   Type) ,   х,   у,   сх,   су,    [style] ,    [Extended   Style] ,    [Help   ID] [BEGIN data  element   1 , data  element  2 ,

END]

 

AUT03STATE

• Windows 98   • Windows 2000

 

Описание

Определяет автоматический флажок с тремя состояниями. Этот элемент управления автоматически переключается между тремя состояниями: отмеченное, неотмеченное и неопределенное. Флажки принадлежат к классу окон BUTTON. Флажок с тремя состояниями применяется, когда выбор нельзя свести к двоичному выбору "on/off (разрешено/запрещено). Неопределенное состояние используется, когда нельзя дать однозначный ответ.

 

Синтаксис

AUTO3STATE text, id, x, у, width, height, [style], [extended style]

 

Параметры

 

style

Определяет стили элемента управления, которые могут представлять собой сочетание стиля BS_AUTO3STATE и следующих стилей: WSJTABSTOP, WS_DISABLED и WS_GROUP. Значение по умолчанию -BS_AUTO3STATE и WSJTABSTOP. Дополнительная информация о стилях окна представлена в табл. 3.4 главы 3.

 

Пример

 

AUTO3STATE   "File   Read  Only",    IDC_READONLY ,   3,    10,    35,    14

 

AUTOCHECKBOX                                  • Windows 98   • Windows 2000

 

Описание

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

 

Синтаксис

AUTOCHECKBOX text, id, x, у, width, height, [style], [extended style]

 

Параметры

 

style

Определяет стили элемента управления, которые могут представлять собой сочетание стиля BS_AUTOCHECKBOX и следующих стилей: \YS_TABSTOP, \VS_DISABLED и WS_GROUP. Значения по умолчанию -BS_AUTOCHECKBOX и WS_TABSTOP. Дополнительная информация о стилях окна представлена в табл. 3.4 главы 3.

 

Пример

 

AUTOCHECKBOX   "Autosave   On/Off",    IDC_CHECKBOX ,    3,    10,    35,    14

 

AUTORADIOBUTTON                             • Windows 98   • Windows 2000

 

Описание

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

 

Синтаксис

AUTORADIOBUTTON text, id, x, у, width, height, [style], [extended style]

 

Параметры

 

style

Определяет стили элемента управления, которые могут представлять собой сочетание стиля BS_AUTORADIOBUTTON и следующих стилей: \VS_TABSTOP, WS_DISABLED и \YS_GROUP. Значения по умолчанию -BS_AUTORADIOBUTTON и WSJTABSTOP. Дополнительная информация о стилях окна представлена в табл. 3.4 главы 3.

 

Пример

 

AUTORADIOBUTTON   "Choice   1",    IDC_CHECKBOX ,    3,    10,    35,    14

 

CHECKBOX                                           * Windows 98   «• Windows 2000

 

Описание

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

 

Синтаксис

CHECKBOX text, id, x, y, width, height, [style], [extended style]

 

Параметры

 

style

Определяет стили элемента управления, которые могут представлять собой сочетание стиля BS_CHECKBOX и следующих стилей: WSJTABSTOP, WS_DISABLED и WS_GROUP. Значения по умолчанию - BS_CHECKBOX

и WS_TABSTOP. Дополнительная информация о стилях окна представлена в табл. 3.4 главы 3.

 

Пример

 

CHECKBOX   "Autosave   On/Off",    IDC_CHECKBOX ,    3,    10,    35,    14

 

COMBOBOX                                           «.  Windows 98    *  Windows 2000

 

Описание

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

 

Синтаксис

COMBOBOX id, x, у, width, height, [style], [extended style]

 

Параметры

 

style

Определяет стили элемента управления, которые могут представлять собой сочетание стиля класса COMBOBOX и следующих стилей: \VS_TABSTOP, WS_DISABLED, WS_VSCROLL и WS_GROUP. Значения по умолчанию -CBS_SIMPLE и WS_TABSTOP. Дополнительная информация о стилях окна представлена в табл. 3.4 главы 3.

 

Пример

 

COMBOBOX   IDC_COMBO,    40,    10,    60,    90,   WS_VSCROLL

 

CONTROL                                            «•  Windows 98    *  Windows 2000

 

Описание

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

 

Синтаксис

CONTROL text, id, class, style, x, y, width, height, [extended style]

 

Параметры

 

text

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

 

id

Указывает идентификатор элемента управления.

 

class

Указывает класс элемента управления. Это может быть либо BUTTON, СОМВОВОХ, EDIT, LISTBOX, SCROLLBAR и STATIC, либо указанный пользователем класс элемента управления, определенный в приложении.

 

style

Определяет стиль окна. Могут применяться стили, перечисленные в табл. 3.4 главы 3.

 

Пример

CONTROL   "Push   Me",    IDC_BOTTON1 ,    "button", BS  DEFPUSHBUTTON    |    WS  TABSTOP    |    WS_CHILD ,       45,    66,    48,    12

 

CTEXT                                                 * Windows 98   + Windows 2000

 

Описание

Определяет выровненный по центру элемент управления статическим текстом. Текст выравнивается по центру в границах прямоугольника, указанного параметрами х, у, width, height. Обычно элементы управления статическим текстом получают идентификационное значение -1, поскольку выбор этих элементов никогда не выполняется. Исключением из этого правила является изменение содержания текста в функции диалогового окна в процессе применения этого диалогового окна.     ;

 

Синтаксис

CTEXT text, id, x, у, width, height, [style], [extended style]

 

Параметры

 

style

Определяет стили элемента управления, которые могут представлять собой сочетание стилей SS_CENTER, WSJTABSTOP и WS_GROUP. Значения по умолчанию — SS_CENTER и WS_GROUP. Дополнительная информация о стилях окна представлена в табл. 3.4 главы 3.

 

Пример

 

CTEXT   "Centered   Text"   -1,    10,    10,    100,    8

 

DEFPUSHBUTTON                                  * Windows 98   + Windows 2000

 

Описание

Определяет применяемую по умолчанию кнопку для диалогового окна. Применяемой по умолчанию является кнопка, которая активизируется при нажатии пользователем клавиши Enter. В определении диалогового окна может быть только один элемент управления DEFPUSHBUTTON. Он отображается на экране с жирной рамкой. Другие кнопки должны иметь стиль PUSHBUTTON.

 

Синтаксис

DEFPUSHBUTTON text, id, x, у, width, height, [style], [extended style]

 

Параметры

 

style

Определяет стили элемента управления, которые могут представлять собой сочетание стилей BS_DEFPUSHBUTTON, WSJTABSTOP, WS_DISABLED и WS_GROUP. Значения по умолчанию —  BS_DEFPUSHBUTTON и WS_TABSTOP. Дополнительная информация о стилях окна представлена в табл. 3.4 главы 3.

 

Пример

 

DEFPUSHBUTTON   "Cancel",    IDC_CANCEL,    40,    10,    40,    14

 

EDITTEXT                                             *  Windows 98   +  Windows 2000

 

Описание

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

 

Синтаксис

EDITTEXT id, x, у, width, height, [style], [extended style]

 

Параметры

 

style

Определяет стили для элемента управления, которые могут представлять собой сочетание стилей класса элементов управления редактированием и следующих стилей: WS_TABSTOP, WS_DISABLED, WS_VSCROLL, WSJHSCROLL, WS_BORDER и WS_GROUP. Значения по умолчанию -ES_LEFT, WSJTABSTOP и WS_BORDER. Дополнительная информация о стилях окна представлена в табл. 3.4 главы 3.

 

Пример

 

EDITTEXT   IDC  EDIT,    10,    20,    45,    12,   WS  HSCROLL

 

GROUPBOX                                           •  Windows 98    •  Windows 2000

 

Описание

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

 

Синтаксис

GROUPBOX text, id, x, y, width, height, [style], [extended style]

 

Параметры

 

style

Определяет стили элемента управления, которые могут представлять собой сочетание стилей BS_GROUPBOX, WSJTABSTOP, WS_DISABLED и WS_GROUP. Значение по умолчанию - BS_GROUPBOX. Дополнительная информация о стилях окна представлена в табл. 3.4 главы 3.

 

Пример

 

GROUPBOX   "Filetype   Choices",    -1,    10,    10,    65,    100

 

ICON                                                   «• Windows 98   + Windows 2000

 

Описание

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

 

Синтаксис

ICON text, id, x, y, [style], [extended style]

 

Параметры

 

text

Имя пиктограммы, указанное в каком-либо файле описания ресурса с помощью оператора ICON.

 

id

Идентификатор метки-заполнителя пиктограммы в диалоговом окне.

 

х, у

Координаты левого верхнего угла пиктограммы в базовых единицах длины диалогового окна.

 

style

Единственный допустимый стиль — SS_ICON.

 

Пример

 

ICON   "generic",    IDC  ICON,   30,    30

 

LISTBOX                                              • Windows 98   • Windows 2000

 

Описание

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

 

Синтаксис

LISTBOX id, x, у, width, height, [style], [extended style]

 

Параметры

 

style

Определяет стили элемента управления, которые могут представлять собой сочетание стилей класса элемента управления списком и следующих стилей: WS_BORDER и WSJVSCROLL. Дополнительная информация о стилях окна представлена в табл. 3.4 главы 3.

 

Пример

 

LISTBOX   IDC_LIST,    10,    10,   50,    100,   LBS_NOTIFY   |   WS_VSCROLL   |   WS_BORDER

 

LTEXT                                                 • Windows 98   • Windows 2000

 

Описание

Определяет элемент управления статическим текстом с выравниванием влево. Текст выравнивается вдоль левого края в границах прямоугольника, указанного параметрами х, у, width и height. Обычно элементы управления статическим текстом получают идентификационное значение -1, поскольку выбор этих элементов никогда не выполняется. Исключением из этого правила является изменение содержания текста в функции диалогового окна в процессе его применения.

 

Синтаксис

LTEXT text, id, x, у, width, height, [style], [extended style]

 

Параметры

 

style

Определяет стили элемента управления, которые могут представлять собой сочетание стилей SSJUEFT, WS_TABSTOP и \VS_GROUP. Значения по умолчанию — SS_LEFT и WS_GROUP. Дополнительная информация о стилях окна представлена в табл. 3.4 главы 3.

 

Пример

 

LTEXT   "Left  Justified  Text",   -1,   10,   10,   150,   8

 

PUSHBOX                                        *  Windows 98   +  Windows 2000

 

Описание

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

 

Синтаксис

PUSHBOX text, id, x, у, width, height, [style], [extended style]

 

Параметры

 

style

Определяет стили элемента управления областью нажатия, которые могут представлять собой сочетание стиля BS_PUSHBOX и следующих стилей: WSJTABSTOP, WS_DISABLED и WS_GROUP. Значения по умолчанию -BS_PUSHBOX и WSJTABSTOP. Дополнительная информация о стилях окна представлена в табл. 3.4 главы 3.

 

Пример

 

PUSHBOX   "Press   Here",   IDC_DONE,   40,    10,    40,   14

 

PUSHBUTTON                                       • Windows 98   •  Windows 2000

 

Описание

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

 

Синтаксис

PUSHBUTTON text, id, x, у, width, height, [style], [extended style]

 

Параметры

 

style

Определяет стили элемента управления кнопкой, которые могут представлять собой сочетание стиля   BS_PUSHBUTTON и следующих стилей: WSJTABSTOP, WS_DISABLED и WS_GROUP. Значения по умолчанию -BS_PUSHBUTTON и WS_TABSTOP. Дополнительная информация о стилях окна представлена в табл. 3.4 главы 3.

 

Пример

 

PUSHBUTTON   "Done",    IDC_DONE,    40,    10,    40,    14

 

RADIOBUTTON                                     • Windows 98   • Windows 2000

 

Описание

Определяет элемент управления переключателем в диалоговом окне. Переключатели обычно используются в составе групп для обеспечения выбора одного варианта из нескольких возможных. Переключатели принадлежат к классу окон BUTTON. Пример применения этого элемента управления приведен в описании функции CheckRadioButton далее в этой главе.

 

Синтаксис

RADIOBUTTON text, id, x, у, width, height, [style], [extended style]

 

Параметры

 

style

Определяет стили элемента управления, которые могут представлять собой сочетание стиля BS_RADIOBUTTON и следующих стилей: \VS_TABSTOP, WS_DISABLED и WS_GROUP. Значения по умолчанию -BS_RADIOBUTTON и WSJTABSTOP. Дополнительная информация о стилях окна представлена в табл. 3.4 главы 3.

 

Пример

 

RADIOBUTTON   "Select   Option   ON",    IDC RADIO1,    10,    10,    40,    14

 

RTEXT                                                   +  Windows 98    *  Windows 2000

 

Описание

Определяет элемент управления статическим текстом с выравниванием вправо. Текст выравнивается вдоль правого края в границах прямоугольника, указанного параметрами х, у, width и height. Обычно элементы управления статическим текстом получают идентификационное значение -1, поскольку выбор этих элементов никогда не выполняется. Исключением из этого правила является изменение содержания текста в функции диалогового окна в процессе его применения.

 

Синтаксис

RTEXT text, id, x, у, width^ height, [style], [extended style]

 

Параметры

 

style

Определяет стили элемента управления, которые могут представлять собой сочетание стилей SS_RIGHT, \VS_TABSTOP и \VS_GROUP. Значения по умолчанию — SS_RIGHT и WS_GROUP. Дополнительная информация о стилях окна представлена в табл. 3.4 главы 3.

 

Пример

 

RTEXT   "Right   Justified  Text",   -1,    10,    10,    150,    8

 

SCROLLBAR                                         * Windows 98   + Windows 2000

 

Описание

Определяет элемент управления линейкой прокрутки в диалоговом окне. Элементы управления линейкой прокрутки позволяют получать от пользователя результаты ввода таких значений, представимых в виде отрезков прямых разной длины, как целые числа. Линейки прокрутки можно также применять для прокрутки клиентской области окна, но такое средство в диалоговых окнах применяется редко. Самыми распространенными стилями являются    SBS_VERT  (для  вертикальных линеек  прокрутки)   и SBS HORZ (для горизонтальных). Полный перечень стилей линейки прокрутки приведен в табл. 3.4 в главе 3.

 

Синтаксис

SCROLLBAR id, x, у, width, height, [style], [extended state]

 

Параметры

 

style

Определяет сочетание стилей класса элемента управления линейкой прокрутки и следующих стилей: WSJTABSTOP, WS_GROUP и WS_DISABLED. Стиль, применяемый по умолчанию, — SBS_HORZ. Дополнительная информация о стилях окна представлена в табл. 3.4 главы 3.

 

Пример

 

SCROLLBAR   DLI_SCROLL,    50,    10,    8,    50,    SBS_VERT

 

STATES                                                * Windows 98   * Windows 2000

 

Описание

Определяет флажок с тремя состояниями. Этот элемент управления может отображать три состояния: отмеченное, неотмеченное и неопределенное. Флажки принадлежат к классу окон BUTTON. Флажок с тремя состояниями применяется, когда выбор нельзя свести к двоичному выбору "on/off (разрешено/запрещено). Неопределенное состояние используется, когда нельзя дать однозначный ответ.

 

Синтаксис

STATES text, id, x, y, width, height, [style], [extended style]

 

Параметры

 

style

Определяет стили элемента управления, которые могут представлять собой сочетание стиля BS_3STATE и следующих стилей: WS_TABSTOP, WS_DISABLED и WS_GROUP. Значения по умолчанию - BS_3STATE и WS_TABSTOP. Дополнительная информация о стилях окна представлена в табл. 3.4 главы 3.

 

Пример

 

STATES   "File   Read   Only",   IDC_READONLY ,    3,    10,    35,    14

 

Описания функций диалогового окна

В табл. 8. 1 даны общие сведения о функциях диалоговых окон. За таблицей следуют подробные описания функций.

 

Таблица 8.1. Общиесведенияофункцияхдиалоговыхокон

 

Функция

Назначение

 

CheckDIgButton

Отмечает или снимает отметку с элемента управления диалогового окна

 

CheckRadioButton

Переходит на выбранный элемент из группы переключателей

 

CreateDialog

Создает немодальное диалоговое окно

 

CreateDialoglndirect

Создает немодальное диалоговое окно

 

CreateDialoglndirectParam

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

 

CreateDialogParam

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

 

DefDIgProc

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

 

DialogBox

Создает модальное диалоговое окно

 

DialogBoxIndirect

Создает модальное диалоговое окно

 

DialogBoxIndirectParam

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

 

DialogBoxParam

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

 

DlgDirList

Заполняет указанный список именами всех файлов, соответствующих указанному критерию поиска имени пути или файла

 

DlgDirListComboBox

Заполняет указанное поле со списком, передавая в него листинг каталога

 

DlgDirSelectComboBoxEx

Позволяет получить текущий вариант выбора из поля со списком, заполненного с помощью функции  DlgDirListComboBox

 

DlgDirSelectEx

Позволяет получить текущий вариант выбора из простого списка

 

EndDialog

Закрывает модальное диалоговое окно и возвращает управление вызывающей функции

 

Функция

Назначение

 

GetDialogBaseUnits

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

 

GetDlgCtrllD

Определяет идентификационное значение элемента управления диалогового окна, исходя из дескриптора окна этого элемента управления

 

GetDlgltem

Определяет дескриптор окна элемента управления диалогового окна, исходя из идентификационного значения этого элемента управления

 

GetDlgltemlnt

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

 

GetDlgltemText

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

 

GetNextDlgGroupltem

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

 

GetNextDlgTablfem

Ищет следующий (или предыдущий) дескриптор окна элемента управления, находящегося в диалоговом окне,  который получит фокус ввода, если пользователь нажмет клавишу Tab или комбинацию клавиш Shift+Tab

 

IsDialogMessage

Определяет, предназначено ли сообщение для диалогового окна

 

IsDIgButtonChecked

Определяет, отмечен ли элемент управления флажком илХ переключателем

 

MapDialogRect

Выполняет преобразование из базовых единиц длины диалогового окна в экранные единицы длины (пиксели)

 

MessageBeep

Воспроизводит звук в качестве предупреждения для пользователя

 

MessageBox

Создает и отображает малое окно, содержащее сообщение

 

MessageBoxEx

Создает и отображает окно сообщения с использованием указанного языка

 

MessageBoxIndirect

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

 

SendDlgltemMessage

Посылает сообщение элементу управления диалогового окна

 

SetDlgltemlnt

Преобразует текст в элементе управления диалоговым окном в целочисленное значение

 

SetDlgltemText

Сменяет текст в элементе управления диалогового окна

 

CheckDlqButton                                   • Windows 98   • Windows 2000

 

Описание

Функция CheckDlgButton помещает отметку на элементе управления кнопкой (отмечает его), удаляет отметку с элемента управления кнопкой (снимает отметку) или изменяет состояние кнопки с тремя состояниями. Функция CheckDlgButton применяется с флажками и кнопками с тремя состояниями для вставки и удаления отметки с элемента управления.

 

Синтаксис

BOOL CheckDlgButton( HWND hwndDlg, int idButton, UINT uCheck )

 

Параметры

 

hwndDlg

HWND. Дескриптор диалогового окна, которое содержит кнопку.

 

id Button

int. Идентификатор кнопки, состояние которой должно быть изменено.

 

и Check

UINT. Состояние отметки кнопки. Этот параметр может иметь одно из значений, перечисленных в табл. 8.4 при описании функции IsDIgButton-Checked.

 

Возвращаемое значение

BOOL. В случае успешного выполнения возвращаемое значение — TRUE; в ином случае возвращаемое значение — FALSE.

 

Включаемый файл

winuser.h

 

См. также

CheckRadioButton, CheckMenuItem

 

Соответствующие сообщения

 

BM_SETCHECK

 

Пример

В следующем примере, который проиллюстрирован на рис. 8.1, показано модальное диалоговое окно, которое появляется при выборе пользователем пункта меню Test!. Диалоговое окно содержит флажок и набор из двух переключателей. В функции TestDlgProc в конце листинга показана типичная логика программы для поддержки флажков и переключателей, не имеющих стиля BS_AUTOXXXX.

 

Определение диалогового окна CHKDLGBT.RC

 

TESTDIALOG   DIALOGEX      20,    20,    180,    70 STYLE   DS_MODALFRAME    |    WS   POPUP    |    WS VISIBLE    |    WS CAPTION    |    WS  SYSMENU CAPTION   "Test   Dialog"                                                                                                   ~ FONT   8,    "MS   Sans   Serif" BEGIN CHECKBOX                           "Check  box   control .", IDC CHECKBOX, 9,7 ,70,10 GROUPBOX                          "Radio   Buttons" ,-1,7 ,21,86,39 RADIOBHTTON                     "First",    IDC_RADIO1 , 13, 32 ,37 ,10 ,WS  GROUP    |    WS   TABSTOP RADIOBUTTON                   "Second" , IDC RADI02,13,45,39,10 PUSHBUTTON                       "Done",IDCANCEL,116,8,50,14,WS GROUP END

 

Операторы # define с определением элементов диалогового окна в файле CHKDLGBT.H

#define   IDC CHECKBOX   101 #define   IDC RADIO1         102 #define   IDC RADIO2         103

ФункцииWndProc иTestDlgProc вфайлеCHKDLGBT.C Си.    \local-sources\chap08\08-01.txt

 

CheckRadioButton                               • Windows 98   * Windows 2000

 

Описание

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

 

Синтаксис

BOOL CheckRadioButton( HWND hwndDlg, int idFirstButton,iai idLastButton, int idCheckButton )

 

Параметры

 

hwndDlg

HWND. Дескриптор диалогового окна, которое содержит переключатель.

 

idfirstButton

int. Идентификатор первого переключателя в группе.

 

id Last Butt on

int. Идентификатор последнего переключателя в группе.

 

idCheckButton

int. Идентификатор переключателя, который должен быть выбран.

 

Возвращаемое значение

BOOL. В случае успешного выполнения возвращаемое значение — TRUE; в ином случае возвращаемое значение — FALSE.

 

Включаемый файл

winuser.h

 

См. также

CheckDlgButton, CheckMenuItem

 

Соответствующие сообщения

 

BM_SETCHECK

 

Пример

См. пример для функции CheckDlgButton.

 

CreateDialog                                        • Windows 98   • Windows 2000

 

Описание

Функция CreateDialog создает немодальное диалоговое окно из ресурса шаблона диалогового окна. Шаблон диалогового окна должен содержать стиль WS_VISIBLE. В противном случае необходимо применить функцию ShowWindow, чтобы сделать немодальное диалоговое окно видимым. В отличие от DialogBox, функция CreateDialog немедленно выполняет возврат, возвращая дескриптор созданного диалогового окна. Немодальные диалоговые окна закрываются путем вызова DestroyWindow в функции диалогового окна. Цикл обработки сообщений приложения для немодальных диалоговых окон должен быть изменен так, чтобы ввод с клавиатуры, направленный в диалоговое окно, был правильно обработан.

 

Синтаксис

HWND CreateDialog( HINSTANCE hlnstance, LPCTSTR IpszTemplate, HWND hWndParent, DLGPROC dlgprc )

 

Параметры

 

hlnstance

HINSTANCE. Дескриптор экземпляра модуля, выполняемый файл которого содержит шаблон диалогового окна.

 

IpszTemplate

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

 

hWndParent

HWND. Дескриптор родительского окна. Уничтожение родительского окна автоматически приводит к уничтожению немодального диалогового окна.

 

dlgprc

DLGPROC. Указатель на процедуру диалогового окна. Процедура диалогового окна обрабатывает сообщения для диалогового окна. См. приведенное ниже описание DialogProc.

 

Возвращаемое значение

HWND. В случае успешного выполнения возвращаемое значение — дескриптор диалогового окна; в ином случае возвращаемое значение — NULL. Для выборки   расширенных   данных   об   ошибках   применяется   функция GetLastError.

 

Включаемый файл

winuser.h

 

См. также

CreateDialoglndirect, CreateDialogParam, DestroyWindow,IsDialogMessage, SetFocus, DialogBox

 

Соответствующие сообщения

 

WMJNITDIALOG

 

Синтаксис

BOOL APIENTRY DialogProc( HWND hDlg, UINT uMsg, WPARAM wParam, LPARAM IParam )

 

Параметры

 

hDlg

HWND. Дескриптор окна немодального диалогового окна.

 

uMsg

UINT. Сообщение, передаваемое функции диалогового окна, например, WM_INITDIALOG, направляется функции диалогового окна непосредственно перед тем, как диалоговое окно станет видимым.

 

wParam

WPARAM. Данные, относящиеся к сообщению

 

IParam

LPARAM. Данные, относящиеся к сообщению

 

Возвращаемое значение

BOOL. Функция диалогового окна должна возвратить TRUE, если функция обрабатывает сообщение, и FALSE, если над сообщением не выполняются никакие действия. Исключением из этого правила является обработка    сообщения WM_INITDIALOG. В этом случае функция должна возвратить FALSE, если вызвана функция  SetFocus; в ином случае возвращаемое значение — TRUE. Функция SetFocus применяется для определения элемента управления, который получит фокус ввода, когда диалоговое окно впервые станет видимым. Если функция SetFocus не используется, то фокус ввода принимает первый элемент управления  в определении диалогового окна, имеющий стиль WS TABSTOP.

 

Пример

В следующем примере создается такое же диалоговое окно, как и в примере, приведенном в описании функции CheckDlgButton, за исключением того, что это диалоговое окно является немодальным. Определение этого диалогового окна аналогично определению обычного (модального) диалогового окна. Обратите внимание, что для закрытия диалогового окна применяется функция DestroyWindow. Кроме того, дескриптор hDlgModelessв сообщении WM_DESTROY установлен в NULL, что позволяет завершить обработку сообщений для диалогового окна.

 

См.     \local-sources\chap08\08-02 . txt

 

CreateDialoglndirect                             • Windows 98   «•  Windows 2000

 

Описание

Функция CreateDialoglndirect аналогична CreateDialog, за исключением того, что шаблон диалогового окна указан с помощью указателя на память, содержащую этот шаблон. Шаблон диалогового окна может быть создан с нуля непосредственно в памяти либо загружен в память с помощью функции LoadResource. Определение диалогового окна в памяти описано в начале этой главы в разделе "Динамические диалоговые окна". Эта функция применяется для создания немодальных диалоговых окон, которые можно модифицировать в ходе выполнения программы (это так называемые динамические диалоговые окна). В качестве типичных приложений, созданных на основе этих диалоговых окон, можно назвать программы базы данных, в которых пользователь может добавлять или удалять поля из

 

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

 

Синтаксис

HWND CreateDialogIndirect( HINSTANCE hlnstance, LPCDLGTEMPLATE IpTemplate, HWND hWndParent, DLGPROC dlgprc )

 

Параметры

 

hlnstance

HINSTANCE. Дескриптор экземпляра модуля, который создает диалоговое окно.

 

IpTemplate

LPCDLGTEMPLATE. Указатель на глобальный объект памяти, который содержит шаблон, используемый для создания диалогового окна. Этот шаблон представлен в виде структуры DLGTEMPLATEEX, за которой следует одна или несколько структур DLGITEMTEMPLATEEX.

 

hWndParent

HWND. Дескриптор родительского окна. Уничтожение родительского окна автоматически приводит к уничтожению немодального диалогового окна.

 

dlgprc

DLGPROC. Указатель на процедуру диалогового окна. Процедура диалогового окна обрабатывает сообщения для диалогового окна. Определение функции DialogProc приведено в описании функции CreateDialog.

 

Возвращаемое значение

HWND. В случае успешного выполнения возвращаемое значение ^дескриптор диалогового окна; в ином случае возвращаемое значение — NULL. Для выборки   расширенных   данных   об   ошибках   применяется   функция GetLastError.

 

Включаемый файл

winuser.h

 

См. также

CreateDialog, CreateDialogParam, CreateDialoglndirectParam, DestroyWindow, IsDialogMessage, SetFocus, DialogBox

 

Соответствующие сообщения

 

WMJNITDIALOG

 

Пример

В следующем примере создается определение диалогового окна в памяти путем загрузки ресурса диалогового окна. Результат аналогичен тому, что получен в примере, представленном при описании функции CreateDialog. Единственное отличие состоит в обработке пункта меню IDMJTEST. Поскольку функция CreateDialoglndirect применяется для создания немодального диалогового окна, необходима определенная подготовка. Вначале информация диалогового окна загружается в память с помощью функции LoadResource. Затем выполняется блокировка блока памяти, содержащего информацию диалогового окна, с помощью функции LockResource. Функция LockResource возвращает указатель на область памяти, необходимый для вызова функции CreateDialoglndirect. В Win32 нет необходимости разблокировать и освобождать ресурсы.

 

См.    \local-sources\chap08\08-03.txt

 

CreateDialoglndirectParam                    * Windows 98   +  Windows 2000

 

Описание

Функция CreateDialoglndirectParam аналогична CreateDialoglndirect, за исключением того, что в ней предусмотрен дополнительный параметр. Этот дополнительный параметр позволяет передать функции диалогового окна значение LPARAM (обычно дескриптор памяти) во время запуска. Это самая сложная из всех функций немодального диалогового окна. С помощью нее можно создавать динамические диалоговые окна, изменяющиеся по мере выполнения программы. Применение указателя памяти для ресурса диалогового окна вместо имени шаблона диалогового окна позволяет получить больший контроль над загрузкой и исключением данных ресурса. Элемент данных LPARAM позволяет не применять в диалоговом окне глобальные переменные в качестве средства обмена информацией между функцией диалогового окна и остальной частью прикладной программы.

 

Синтаксис

HWND CreateDialogIndirectParam( HINSTANCE hlnstance, LPCDLGTEMPLATE IpTemplate, HWND hWndParent, DLGPROC dlgprc, LPARAM IParamlnit )

 

Параметры

 

hlnstance

HINSTANCE. Дескриптор экземпляра модуля, который создает диалоговое окно.

 

IpTemplate

LPCDLGTEMPLATE. Указатель на глобальный объект памяти, который содержит шаблон диалогового окна, используемый для его создания. Этот шаблон представлен в виде структуры DLGTEMPLATE, за которой следует одна или несколько структур DLGITEMTEMPLATE.

 

hWndParent

HWND. Дескриптор родительского окна. Уничтожение родительского окна автоматически приводит к уничтожению немодального диалогового окна.

 

dlgprc

DLGPROC. Указатель на процедуру диалогового окна. Процедура диалогового окна обрабатывает сообщения для диалогового окна. Определение функции DialogProc приведено в описании функции CreateDialog.

 

IParamlnit

LPARAM.  Значение, передаваемое функции   DialogProc в сообщении WM INITDIALOG. Обычно это значение применяется для передачи дескриптора блока памяти, содержащего данные, которые диалоговое окно должно использовать или изменить.

 

Возвращаемое значение

HWND. В случае успешного выполнения возвращаемое значение — дескриптор диалогового окна; в ином случае возвращаемое значение — NULL. Для выборки расширенных данных об ошибках применяется функция GetLastError.

 

Включаемый файл

winuser.h

 

См. также

CreateDialog, CreateDialoglndirect, DestroyWindow, IsDialogMessage, SetFocus

 

Соответствующие сообщения

 

WMJNITDIALOG

 

Пример

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

 

установки для кнопок диалогового окна, применяется значение LPARAM. Дополнительные сведения приведены в примере, который содержится в описании функции CreateDialogParam.

 

См.    \local-sources\chap08\08-04.txt

 

CreateDialogParam                               • Windows 98   • Windows 2000

 

Описание

Функция CreateDialogParam аналогична функции CreateDialog, за исключением того, что в ней имеется дополнительный параметр. Этот дополнительный параметр позволяет передавать функции диалогового окна значение LPARAM (обычно дескриптор памяти) во время запуска.

 

Синтаксис

HWND CreateDialogParam( HINSTANCE hlnstance, LPCTSTR IpszTemplate, HWND hWndParent, DLGPROC dlgprc, LPARAM IParamlnit)

 

Параметры

 

hlnstance

HINSTANCE. Дескриптор экземпляра модуля, выполняемый файл которого содержит шаблон диалогового окна.

 

IpszTemplate

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

 

hWndParent

HWND. Дескриптор родительского окна. Уничтожение родительского окна автоматически приводит к уничтожению немодального диалоговЬго окна.

 

dlgprc

DLGPROC. Указатель на процедуру диалогового окна. Процедура диалогового окна обрабатывает сообщения для диалогового окна. Определение функции DlgProc приведено в описании функции CreateDialog.

 

IParamlnit

LPARAM. Значение,  передаваемое функции   DialogProc в сообщении WM_INITDIALOG в качестве значения IParam. Обычно это значение используется в приложении для передачи дескриптора блока памяти, содержащего данные, которые диалоговое окно должно использовать или изменить.

 

Возвращаемое значение

HWND,, В случае успешного выполнения возвращаемое значение — дескриптор диалогового окна; в ином случае возвращаемое значение — NULL.

 

Включаемый файл

winuser.h

 

См. также

CreateDialog, CreateDialoglndirect, CreateDialoglndirectParam, DestroyWindow, IsDialogMessage, SetFocus, DialogBox

 

Соответствующие сообщения

 

WMJNITDIALOG

 

Пример

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

 

нечном итоге этот дескриптор преобразуется в значение IParam, передаваемое функции TestDlgProc при получении сообщения WM_INITDIALOG.

 

См.     \local-sources\chap08\08-05. txt

 

DefDIqProc                                          + Windows 98    *  Windows 2000

 

Описание

Функция DefDIgProc выполняет предусмотренную по умолчанию обработку сообщений для оконной процедуры, принадлежащей к классу диалогового окна, определенного в приложении. Функция служит для обработки сообщений, предусмотренной по умолчанию, вместо DefWindowProc в функции WndProc для этого класса. Обычно система Windows выполняет обработку всех сообщений, не обработанных функцией диалогового окна. Исключением из этого правила является применение отдельного класса окна для диалогового окна. Для этого необходимо включить оператор CLASS в определение диалогового окна в файле ресурса приложения.

 

Синтаксис

LRESULT DefDlgProc( HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM IParam )

 

Параметры

 

hwndDlg

HWND. Дескриптор диалогового окна.

 

uMsg

UINT. Идентификатор сообщения.

 

wParam

WPARAM. Дополнительная информация, зависящая от сообщения.

 

IParam

LPARAM. Дополнительная информация, зависящая от сообщения.

 

Возвращаемое значение

LRESULT. Результат обработки сообщения. Значение зависит от отправленного сообщения.

 

Включаемый файл

windowsx.h

 

См. также

RegisterClass

 

Соответствующие сообщения

 

Все сообщения Windows, которые не были обработаны функцией диалогового окна, должны быть переданы функции DefDIgProc, если диалоговое окно имеет собственный класс.

 

Пример

В определение ресурса диалогового окна добавлен оператор CLASS. В этом случае для диалогового окна применяется класс BlueDlg. Это диалоговое окно аналогично показанному на рис. 8.1, за исключением того, что фон диалогового окна — синий. Обратите внимание, что в функции WndProc при обработке сообщения WM_CREATE создается отдельный класс для диалогового окна. Диалоговые окна, созданные с использованием этого класса, имеют синий фон.

 

Определение диалогового окна в файле DEFDLGP.RC

 

TESTDIALOG   DIALOGEX      0,    0,    180,    70 STYLE   DS_MODALFRAME    |   WS_POPUP    |    WS_VISIBLE    |   WS_CAPTION    |    WS_SYSMENU CAPTION   "Test   Dialog" FONT   8,    "MS   Sans   Serif" CLASS   "BlueDlg" BEGIN CHECKBOX            " Check  box   control . " , IDC CHECKBOX ,9,7,70,10 GROUPBOX            "Radio   Buttons" , -1 ,7 ,21,86,39

 

RADIOBUTTON                    "First", IDC RADIO1 , 13 ,32 ,37 ,10 ,WS  GROUP    |    WS   TABSTOP RADIOBUTTON                   "Second" , IDC RADIO2 , 13,45 ,39, 10                                ~ PUSHBUTTON                       "Done",IDCANCEL,116,8,50,14,WS  GROUP

END

 

Функции WndProc, BlueDlgProc и TestDlgProc в файле DEFDLGP.C

 

Си.     \local-sources\chap08\08-06.txt

 

DialogBox                                            • Windows 98   • Windows 2000

 

Описание

Функция DialogBox создает модальное диалоговое окно из ресурса шаблона диалогового окна. Управление не возвращается до тех пор, пока заданная функция обратного вызова не закроет модальное диалоговое окно, вызвав функцию EndDialog. Для создания диалогового окна чаще всего применяется именно эта функция. Шаблон диалогового окна определяется в файле ресурса приложения. Должна быть также определена функция диалогового окна для обработки сообщений в процессе работы.

 

Синтаксис

INT_PTR DialogBox( HINSTANCE hlnstance, LPCTSTR IpszTemplate, HWND hWndParent, DLGPROC dlgprc )

 

Параметры

 

hlnstance

HINSTANCE. Дескриптор экземпляра модуля, выполняемый файл которого содержит шаблон диалогового окна.

 

IpszTemplate

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

 

hWndParent

HWND. Дескриптор родительского окна. Уничтожение родительского окна автоматически приводит к уничтожению немодального диалогового окна.

 

dlgprc

DLGPROC. Указатель на процедуру диалогового окна. Процедура диалогового окна обрабатывает сообщения, предназначенные для диалогового окна. См. определение DialogProc в описании функции CreateDialog.

 

Возвращаемое значение

INT_PTR. Возвращаемое значение равняется параметру nResult, переданному при вызове функции EndDialog. Возвращаемое значение равно -1, если диалоговое окно не может быть создано.

 

Включаемый файл

winuser.h

 

См. также

DialogBoxParam, DialogBoxIndirect, DialogBoxIndirectParam, CreateDialog

 

Соответствующие сообщения

 

Большинство сообщений Windows может быть обработано диалоговым окном. При инициализации диалогового окна сообщение WM CREATE заменяется сообщением WM_INITDIALOG для диалоговых окон.

 

Пример

В примере, показанном на рис. 8.2, создается диалоговое окно для ввода целочисленного значения и символьной строки. Обратите внимание, что целочисленное значение и символьная строка, которые могут быть изменены в диалоговом окне, определены как глобальные переменные.