Visual Basic 6. Руководство разработчика


         

Рисование на объекте


UserControl

Теперь уже есть функционирующий элемент управления, при создании которого не было особых проблем, поскольку Visual Basic создал его скелет. Элемент управления интегрирован в среду разработки, его пиктограмма появилась на панели элементов управления, и он может быть уже использован, как обычный элемент управления. Он даже имеет свое собственное окно свойств. Теперь наста­ло время сделать элемент управления реально работающим. Необходимо доба­вить код, уникальный для данного элемента управления, который рисует надпись.

Код вывода на экран видимого интерфейса элемента управления обычно помещается в событие Paint. Visual Basic инициирует это событие каждый раз, когда элемент управления должен быть перерисован. Таким образом, нужно добавить код, перерисовывающий элемент управления. Сейчас давайте скопируем процедуру DrawCaption(), разработанную ранее в этой главе, в элемент управления. Откройте окно объекта UserControl, в котором находится код элемента управления, и вставьте туда процедуру DrawCaption(). В обработчике события Paint объекта UserControl вставьте следующую строку, которая вызывает процедуру DrawCaptionQ:

DrawSubroutine

Этот вызов в событии Paint гарантирует, что каждый раз, когда разработчик изменяет размеры элемента управления, или при обновлении формы, весь объект UserControl будет также перерисован.

Процедура DrawCaption() рисует на объекте Form. Объект UserControl фактически идентичен объекту Form, поэтому может использовать те же самые методы рисования. Откройте окно кода объекта UserControl, вставьте код подпрограммы DrawCaption() и замените все вхождения "Me" на "UserControl", чтобы процедура рисовала на объекте UserControl.

Подпрограмма DrawCaption() должна также вызываться для перерисовки надпи­си всякий раз, когда изменяется какое-либо из специальных свойств элемента управления. Свойствами, которые влияют на вид выводимого текста наряду со стан­дартными свойствами Picture и BackColor, являются Caption, TextAlignment и Effect. Вставьте в коды этих свойств элемента управления процедуру Property Let со строкой, вызывающей событие UserControl_Paint. Доработанная процедура Property Let для свойства Effect показана ниже (подчеркнута вставленная строка).




Содержание  Назад  Вперед