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


         

Скелет элемента управления ActiveX - часть 10


&H8000000F)

End Sub

Программа 16.7. Процедура WriteProperties элемента управления

' Сохранение значений свойств

Private Sub UserControl_WriteProperties(PropBag As PropertyBag)

   Call PropBag.WriteProperty("Font", Font, Ambient.Font)

   Call PropBag.WriteProperty ("BorderStyle", UserControl.BorderStyle, 0)

   Call PropBag.WriteProperty("BackStyle", UserControl.BackStyle, 1)

   Call PropBag.WriteProperty("Enabled", UserControl.Enabled, True)

   Call PropBag.WriteProperty("ForeCoior", UserControl.ForeColor, _

&H80000012)

   Call PropBag.WriteProperty ("MousePointer", _

UserControl.MousePointer, 0)

   Call PropBag.WriteProperty ("OLEDropMode", _

UserControl.OLEDropMode, 0)

   Call PropBag.WriteProperty ("Picture", Picture, Nothing)

   Call PropBag.WriteProperty("Caption", m_Caption, m_def_Caption)

   Call PropBag.WriteProperty("Effect", m_Effect, m_def_Effect)

   Call PropBag. WriteProperty ("TextAlignment", _

m_TextAlignment, m_def_TextAlignment)

   Call PropBag.WriteProperty ("BackColor", _

UserControl.BackColor, &H8000000F)

End Sub

Передача событий

Последний раздел кода отображает различные события элемента управления на эквивалентные события объекта UserControl. Когда пользователь щелкает мышью на элементе управления ActiveX, Windows отправляет событие Click объекту UserControl. Разработчик элемента управления может обработать это событие в самом элементе управления (в этом случае приложение, которое использует элемент, не видит события Click), или передать событие приложению-контейнеру (в этом случае разработчик приложения, использующего элемент управления, сможет обработать сообщение), или сделать и то, и другое (сначала обработать событие в элементе управления, а затем передать его контейнеру).

Передать событие приложению можно с помощью метода

RaiseEvent. Событие Click объекта UserControl определено таким образом.

Private Sub UserControl_Click()

RaiseEvent Click

End Sub

Код остальных событий практически идентичен. Эти события вызывают оператор ReiseEvent для передачи события приложению-контейнеру. Если событие имеет параметры, например KeyPress, эти параметры перечисляются в круглых скобках после имени события.

Все, что сделал мастер — это вставил достаточно простой код. За исключением методов ReadProperty и WriteProperty, все остальное должно быть более или менее знакомо большинству программистов на Visual Basic. ActiveX — элемент управления, следовательно, не намного сложнее по сравнению со стандартным проектом. Осталось добавить еще несколько строк кода. В конце концов, необходимо указать элементу управления, как выравнивать надпись и обрисовывать ее с трехмерным эффектом.




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