| Создание всплывающей панели |
|
У каждого юзера, работающего в операционной системе Windows'98 есть панель задач (это панелька, на которой находится кнопка ПУСК). Некоторые любят в настройках этой панели установить значение "Автоматически убирать с экрана", и тогда панель будет автоматически убираться, когда она не активна. Так вот этот пример покажет, как можно средствами VB создать такую всплывающую справа панельку, подобную панели задач. Проект сырой, то есть вы можете его доработать, как вам заблагорасудится. Если вы что-то измените в этом проекте,
Этот e-mail адрес защищен от спам-ботов, для его просмотра у Вас должен быть включен Javascript
. Создайте новый проект. Положите на форму компонент Timer. В свойствах формы укажите:
Private Declare Function GetCursorPos Lib "user32" (lpPoint As POINTAPI) As Long Private Type POINTAPI x As Long y As Long End Type Private Type Formsize Left As Long Top As Long Width As Long Height As Long End Type Private Const MaxSize = 50 Private Const MinSize = 1 Private Const Fade = False ' Установите данное значение либо True либо False Private Sub Command1_Click() Unload Me End Sub Private Sub Form_Load() Timer1.Interval = 50 Form_Resize End Sub Private Sub Form_Resize() Me.Move Screen.Width - (MinSize * Screen.TwipsPerPixelX), 0, (MaxSize * Screen.TwipsPerPixelX), Screen.Height Me.Cls Me.Line (0, 0)-(0, Me.Height), &HFFFFFF End Sub Private Sub Timer1_Timer() Dim a As POINTAPI Dim Form As Formsize Dim CurCut As Long Form.Width = Me.Width / Screen.TwipsPerPixelX Form.Left = Me.Left / Screen.TwipsPerPixelX Form.Height = Me.Height / Screen.TwipsPerPixelY Form.Top = Me.Top / Screen.TwipsPerPixelY Call GetCursorPos(a) If a.x >= Form.Left And a.x < Form.Left + Form.Width And a.y >= Form.Top And a.y < Form.Height + Form.Top Then If Me.Tag <> "0" Then If Fade = True Then CurCut = 1 Do Until Me.Left - (CurCut * Screen.TwipsPerPixelX) <= Screen.Width - (MaxSize * Screen.TwipsPerPixelX) Me.Left = Me.Left - (CurCut * Screen.TwipsPerPixelX) DoEvents Loop Me.Move Screen.Width - (MaxSize * Screen.TwipsPerPixelX), 0, (MaxSize * Screen.TwipsPerPixelX), Screen.Height Else Me.Move Screen.Width - (MaxSize * Screen.TwipsPerPixelX), 0, (MaxSize * Screen.TwipsPerPixelX), Screen.Height End If Me.Tag = "0" End If Else If Me.Tag <> "1" Then If Fade = True Then CurCut = 1 Do Until Me.Left + (CurCut * Screen.TwipsPerPixelX) >= Screen.Width - (MinSize * Screen.TwipsPerPixelX) Me.Left = Me.Left + (CurCut * Screen.TwipsPerPixelX) DoEvents Loop Me.Left = Screen.Width - (MinSize * Screen.TwipsPerPixelX) Else Me.Left = Screen.Width - (MinSize * Screen.TwipsPerPixelX) End If Me.Tag = "1" End If End If End Sub
Источник: http://www.vbnet.ru |