Опора деревянной одностоечной и способы укрепление угловых опор: Опоры ВЛ - конструкции, предназначенные для поддерживания проводов на необходимой высоте над землей, водой...
Индивидуальные и групповые автопоилки: для животных. Схемы и конструкции...
Топ:
Генеалогическое древо Султанов Османской империи: Османские правители, вначале, будучи еще бейлербеями Анатолии, женились на дочерях византийских императоров...
Проблема типологии научных революций: Глобальные научные революции и типы научной рациональности...
Техника безопасности при работе на пароконвектомате: К обслуживанию пароконвектомата допускаются лица, прошедшие технический минимум по эксплуатации оборудования...
Интересное:
Средства для ингаляционного наркоза: Наркоз наступает в результате вдыхания (ингаляции) средств, которое осуществляют или с помощью маски...
Искусственное повышение поверхности территории: Варианты искусственного повышения поверхности территории необходимо выбирать на основе анализа следующих характеристик защищаемой территории...
Распространение рака на другие отдаленные от желудка органы: Характерных симптомов рака желудка не существует. Выраженные симптомы появляются, когда опухоль...
Дисциплины:
2017-12-10 | 285 |
5.00
из
|
Заказать работу |
|
|
Диалоговые панели – это предопределенный в 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...описание органов управленияENDnameID – для идентификации шаблона (строка, число от 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 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!