Принципы работы с элементами управления — КиберПедия 

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

Индивидуальные очистные сооружения: К классу индивидуальных очистных сооружений относят сооружения, пропускная способность которых...

Принципы работы с элементами управления

2017-12-13 251
Принципы работы с элементами управления 0.00 из 5.00 0 оценок
Заказать работу

Любое стандартное приложение Windows использует различные элементы управления, такие, как кнопки, полосы просмотра, редакторы текстов и Т.Д, реализованные в виде дочерних окон.

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

HWNDCreateWindow(LPCSTRlpClassName, LPCSTRlpWindowName,

DWORDdwStyle, intx, inty, intnWidth, int

nHeight,HWNDhWndParent, HMENU hMenu,

HANDLEhInstance, LPVOID *lpParam);

Параметр функции lpClassName - указатель на строку, содержащую имя класса, на базе которого создается окно. Для создания кнопки, например, необходимо указать имя класса “button”.

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

Параметр dwStyle - стиль создаваемого окна. Этот параметр задается как логическая комбинация отдельных битов. Для дочерних окон управления следует задать стиль как комбинацию констант WS_CHILD, WS_VISIBLE, WS_CLIPSIBLINGS и констант, определяющих стили элемента управления.

  • Параметры x и y определяют положение верхнего левого угла дочернего окна относительно верхнего левого угла рабочей области родительского окна.
  • Параметры nWidth и nHeight определяют ширину и высоту создаваемого элемента управления.
  • Параметр hWndParent определяет дескриптор родительского окна, на поверхности которого создается дочернее окно.
  • Параметр hMenu - идентификатор порожденного (child) окна. Для каждого создаваемого дочернего окна необходимо определить собственный уникальный идентификатор. Родительское окно будет получать от дочерних окон сообщения WM_COMМAND. При помощи идентификатора элемента управления оконная процедура родительского окна сможет определить дочернее окно, пославшее ей сообщение.
  • Параметр hInstance - дескриптор экземпляра копии приложения, которое создает окно. Необходимо использовать значение, передаваемое функции WinMain через параметр hInstаnce.
  • Последний параметр lpParam используется для передачи окну дополнительных данных. При создании дочерних окон управления он должен быть равен NULL.

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

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

LOWORD(wParam) - идентификатор дочернего окна (тип UINT);

HIWORD(wParam) - код уведомления (тип UINT);

lParam - дескриптор дочернего окна (тип HWND).

Идентификатор дочернего окна – это значение, передаваемое функции CreateWindow, когда создается рабочее окно.

Дескриптор дочернего окна – это значение, которое Windowsвозвращает при вызове функции CreateWindow.

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

Константы, идентифицирующие различные коды уведомления, определены в заголовочных файлах Windows и имеют соответственно следующие префиксы: BN_ - “button”, EN_ - “edit”, LBN_ - “listbox”, CBN_ - “combobox”.

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

3.3.6 Класс “edit”

В Windows зарегистрирован класс окна с именем “edit”, на базе которого можно создать однострочный или многострочный текстовый редактор.

Для того чтобы создать свой собственный редактор, достаточно создать на базе класса “edit” окно управления, вызвав функцию CreateWindow.

Текст в управляющих окнах редактирования может быть выравнен либо по правому краю, либо по правому, либо по центру. Формат можно задать с помощью стилей окна ES_LEFT, ES_RIGHT и ES_CENTER.

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

Приложение может создать многострочное управляющее окно редактирования, используя стиль окна ES_MULTILINE. Для многострочного окна редактирования, если не задан стиль ES_AUTOHSCROLL, то текст автоматически переносится на новую строку при достижении правого края окна.

При задании стиля ES_AUTOHSCROLL в многострочном редакторе для перехода на новую строку нужно нажимать клавише <Enter> (т.е. появляется возможность горизонтальной прокрутки). Используя стиль окна ES_AUTOVSCROLL, в многострочное окно редактирования можно включить возможность вертикальной прокрутки.

Если стили ES_AUTOHSCROLL и ES_AUTOVSCROLL включены в многострочные управляющие окна, то можно добавить и сами полосы прокрутки.

Добавление полос прокрутки делается путем использования тех же идентификаторов стиля окна, что и для не дочерних окон: WS_HSCROLL и WS_VSCROLL.

3.3.7 Класс “listbox”

С помощью класса “listbox” можно создавать одноколоночные и многоколоночные списки, имеющие вертикальную (для одноколоночных списков) и горизонтальную (для многоколоночных списков) полосу просмотра.

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

В окна списка почти всегда включают идентификатор стиля LBS_NOTIFY, что позволяет родительскому окну получать от окна списка сообщение WM_COMMAND.

Если приложение желает иметь возможность сортировать элементы списка, ему необходимо использовать в окне списке и другой часто используемый идентификатор стиля – LBS_SORT.

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

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

Для прокрутки содержимого с помощью мыши и вертикальной полосы прокрутки следует использовать стиль WS_VSCROLL.

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

(LBS_NOTIFY|LBS_SORT|WS_VSCROLL|WS_BORDER)

3.3.7. Класс “ combobox ”

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

Среди всех стилей комбинированного списка можно выделить три базовых:

Стиль CBS_SIMPLE соответствует списку с окном редактирования (или, как его называют, окном выбора).

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

Стиль CBS_DROPDOWNLIST аналогичен стилю CBS_DROPDOWN, но окно редактирования можно использовать только для просмотра выделенной строки, а не для редактирования или ввода.


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

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

Типы сооружений для обработки осадков: Септиками называются сооружения, в которых одновременно происходят осветление сточной жидкости...

История развития пистолетов-пулеметов: Предпосылкой для возникновения пистолетов-пулеметов послужила давняя тенденция тяготения винтовок...

Археология об основании Рима: Новые раскопки проясняют и такой острый дискуссионный вопрос, как дата самого возникновения Рима...



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

0.029 с.