Common Controls - теорияДоброго времени суток, уважаемые подписчики. Во-первых, в связи с кучей писем о рассылке по программированию под DOS, хочу ещё раз заметить, что к ней я не имею никакого отношения, все вопросы, жалобы и пожелания прошу отправлять на admin@RusFAQ.ru. А архив рассылки по программированию под Windows временно находится на LearnAsm.narod.ru ... Наша сегодняшняя тема Common controls. Давайте рассмотрим, что это вообще такое и зачем оно нужно. Вы наверняка заметили, что приложения в Windows очень часто используют одинаковые элементы, например кнопки, edit box и т.д. Без них работа в Windows практически невозможна. Причём если приложение будет вынуждено само рисовать и обслуживать каждую кнопку, то лишь процедуры обработки, прорисовки и т.д. займут в несколько раз больше места, чем сама программа. Поэтому в целях облегчения работы программиста существуют так называемые Common Controls, в которые входят кнопки, панели scroll, toolbar панели и т.д. Этим Windows берет на себя обработку всех событий объекта, а нам лишь посылает сообщения. В принципе мы уже использовали Common Controls в примере диалога, однако в диалоге, являющемся объектом ресурсов, все параметры заданы сразу и нет возможности их изменять, что лишает программу гибкости. Большинство Common Controls создаются функцией CreateWindowEx с определенным именем класса:
Сегодня мы разберём объект "Button", а в следующем уроке закрепим эти знания на практике. Итак, Button, как и большинство Common control, создаваемых функцией CreateWindowEx, обычно создаются с двумя флагами стиля, WS_BORDER и WS_CHILD. Первый показывает, что объект будет иметь видимые границы, второй - что он будет находиться внутри главного окна. Также при создании Common Control - а надо дать ему уникальный, в пределах программы, индекс (Тоже самое мы делали в диалоге, каждая кнопка имела собственный индекс). При каком либо событии мы получаем его вместе с WM_COMMAND. Объект BUTTON имеет следующие сообщения-уведомления (Notification message, сообщения, которые посылаются окну родителю, уведомляя его о чём-либо):
При выполнении любого из вышеописанных условий окно-родитель получает следующее сообщение:
А для контроля кнопке, помимо основных сообщений, обрабатываемых всеми окнами, ей могут быть посланы следующие сообщения:
Вот в принципе и всё, что нужно о ней знать. На сегодня это всё. Если есть какие вопросы, пишите, обязательно отвечу. В следующем уроке рассмотрим использование кнопок на практике .Пишите, Dark_Lord@RusFAQ.ru, Dark_Lord@land.ru. |