Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
WinAPI-ekz_shpory.docx
Скачиваний:
11
Добавлен:
25.09.2019
Размер:
185.19 Кб
Скачать
  1. Создание меню редактором ресурсов

Для создания меню данным образом необходимо воспользоваться редактором Resourse WorkShop.

  1. Определение диалоговой панели, взаимодействие пользователя с панелью.

Диалоговые панели – это предопределенный в Windows класс окон (dialog window class), на базе этого класса создаются временные (pop-up) окна (иногда перекрывающиеся (overlapped) окна), на их поверхности располагаются дочерние окна - органы управления. Диалоговые панели значительно упрощают использование органов управления, так как функция окна, соответствующая классу диалоговых панелей и расположенная внутри Windows, обеспечивает как взаимодействие органов управления между собой, так и их взаимодействие с приложением. В частности, эта функция обеспечивает передачу фокуса ввода от одного органа управления к другому при помощи клавиши <Tab> и клавиш перемещения курсора <Up> и <Down>, выполняет обработку сообщений от клавиш <Enter> и <Esc>.

Расположение органов управления на диалоговой панели задается 3 способами:

  1. В файле ресурсов задается текстовое описание шаблона диалоговой панели

  2. Использование специальных редакторов

  3. Создание шаблона диалоговой панели в памяти во время работы приложения (редко)

Для создания диалоговой панели вы должны предпринять следующие действия:

- создать шаблон диалога;

- определить функцию диалога;

- вызвать одну из функций создания диалога.

1. Создание шаблона.

nameID DIALOG [load] [mem] x, y, width, height

CAPTION "Заголовок диалоговой панели"

STYLE Стиль

BEGIN

. . .описание органов управления

END

nameID – для идентификации шаблона (строка, число от 1 до 65535).

[load] – необязательный; определяет момент загрузки меню в память. (PRELOAD – загрузка сразу после запуска приложения, LOADONCALL – загрузка только при отображении)

[mem] – необязательный; влияет на тип памяти, выделяемой для хранения шаблона (FIXED, MOVEABLE, DISCARDABLE – не перемещаемый, перемещаемый (по умолчанию), освобождаемый).

STYLE - DS_MODALFRAME – модальная диалоговая панель, DS_SYSMODAL – системная модальная диалоговая панель, DS_LOCALEDIT – редакторы будут использовать память из сегмента данных приложения, DS_NOIDLEMSG – если этот стиль не указан, то при переходе панели в видимое состояние Windows посылает родительскому окну сообщение WM_ENTERIDLE., а также стили при работе с окнами.

Перед BEGIN можно вставить а) CLASS "PrivateDlgClass" – диалоговая панель будет создана на основе собственного класса, а не Windows; б) Font 10, “MS Serif – сменить шрифт

В диалоговых панелях используется своя система единиц – чтобы диалоговая панель выглядела одинаково при разлиных разрешениях! Ширина=1/4 средней ширины системного шрифта, высота=1/8, это диалоговая единица, ее можно определить (0,35 мм - Европа, 0,376 мм):

DWORD WINAPI GetDialogBaseUnits(void); (младшее слово – ширина, старшее – высота)

Описания органов управления – используются три формата строк.

1) CtlType "Текст", ID, x, y, width, height [,style] - для всех, кроме списков, редакторов текста и полосы просмотра:

CtlType - обозначение органа управления.

Параметр "Текст" определяет текст, который будет написан на органе управления.

Параметр ID - идентификатор ОУ, передается вместе с сообщением WM_CONTROL.

x и y - координаты органа управления

width и height - ширина и высота органа управления в единицах длины dialog unit.

Параметр style определяет стиль органа управления (необязательный параметр). Это тот самый стиль, который указывается при вызове функции CreateWindow.

2) CtlType ID, x, y, width, height [,style] – для описания списков, редакторов текста и полос просмотра:

В этом формате нет параметра "Текст", остальные параметры такие же, как и в первом формате.

3) CONTROL "Текст", ID, class, style, x, y, width, height – универсальный (для любых органов управления)

Этот формат позволяет описать орган управления, принадлежащий классу class, который указывается в виде строки символов. Можно использовать для описания предопределенных классов органов управления, таких как "button", "combobox", "edit", "listbox", "scrollbar", "static".

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]