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

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

Индивидуальные и групповые автопоилки: для животных. Схемы и конструкции...

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

2017-12-10 285
Определение диалоговой панели, взаимодействие пользователя с панелью. 0.00 из 5.00 0 оценок
Заказать работу

 

Диалоговые панели – это предопределенный в 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, heightCAPTION "Заголовок диалоговой панели"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 - координаты органа управления

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

Параметр s tyle определяет стиль органа управления (необязательный параметр). Это тот самый стиль, который указывается при вызове функции 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".

2. Создание функции диалога.

Функция диалога, предназначенная для обработки сообщений от диалоговой панели:

BOOL CALLBACK _export DlgProc (HWND hdlg, UINT msg, WPARAM wParam, LPARAM lParam); - можно выбрать любое имя. (HWND hdlg – идентификатор диалоговой панели)

Как правило, функция диалога всегда обрабатывает сообщения WM_INITDIALOG (при инициализации диалога) и WM_COMMAND, не обрабатывает WM_CREATE, WM_PAINT, WM_DESTROY. Не может вызвать функцию обработки сообщений по умолчанию DefWindowProc.

а) Сообщение WM_INITDIALOG использует параметры wParam (идентификатор ОУ, который первым получит фокус ввода, первый, описанный в шаблоне WM_TABSTOP) и lParam (содержит значение, передаваемое приложением при создании диалоговой панели).

б) Сообщение WM_COMMAND, поступающее в функцию диалога, передает сообщения или извещения от органов управления, расположенных в диалоговой панели. Крое этого, функция диалога может получить это сообщение с параметром wParam, равным константам IDOK и IDCANCEL (если нажата кнопка с данным идентификатором или закрытие с помощью системного меню или клавиши <Esc>), описанным в файле windows.h.

Сообщение с параметром IDOK поступает в том случае, если нажат <Enter> в момент, когда ни одна из кнопок, расположенных в диалоговой панели, не имеет фокус ввода, и ни одна из кнопок не имеет стиль WS_DEFPUSHBUTTON. Если в диалоговой панели есть кнопка со стилем WS_DEFPUSHBUTTON, в описанной ситуации в функцию диалога поступает сообщение WM_COMMAND с параметром wParam, равным идентификатору этой кнопки.

 


Поделиться с друзьями:

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

Таксономические единицы (категории) растений: Каждая система классификации состоит из определённых соподчиненных друг другу...

Двойное оплодотворение у цветковых растений: Оплодотворение - это процесс слияния мужской и женской половых клеток с образованием зиготы...

Наброски и зарисовки растений, плодов, цветов: Освоить конструктивное построение структуры дерева через зарисовки отдельных деревьев, группы деревьев...



© cyberpedia.su 2017-2024 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!

0.01 с.