Вопрос
Проблема такая. Ставлю я свою программу генерировать то, что мне надо, а тем временем переключаюсь в другую программу. Как мне сделать, чтобы после окончания работы программа обратила на себя мое внимание помигиванием на нижней панельке (так же как это делает IE, когда страничку загрузит) ?
Или пусть она вылезает поверх всех окон.
Ответ
В форму:
Private Sub Form_Load()
В модуль:
Call SetFormPosition(Me.hwnd, True)
End Sub
Public Declare Function SetWindowPos Lib "user32" _
И будет надежно поверх всех окон.
(ByVal hwnd As Long, ByVal hWndInsertAfter As Long, _
ByVal x As Long, ByVal y As Long, ByVal cx As Long, _
ByVal cy As Long, ByVal wFlags As Long) As Long
Public Const HWND_NOTOPMOST = -2
Public Const HWND_TOPMOST = -1
Public Const SWP_NOACTIVATE = &H10
Public Const SWP_NOMOVE = &H2
Public Const SWP_NOSIZE = &H1
Public Sub SetFormPosition(frmHandl As Long, TopPosition As Boolean)
If TopPosition Then
SetWindowPos frmHandl, HWND_TOPMOST, 0, 0, 0, 0, _
SWP_NOACTIVATE Or SWP_NOSIZE Or SWP_NOMOVE
Else
SetWindowPos frmHandl, HWND_NOTOPMOST, 0, 0, 0, 0, _
SWP_NOSIZE Or SWP_NOMOVE
End If
End Sub
Stranger757
Declare Function FlashWindow Lib "user32" (ByVal hwnd As Long, ByVal bInvert As Long) As Long
Private Sub Command1_Click() ' Окно мигает 5 раз для привлечения внимания
Dim c As Integer, retval As Long
For c = 1 To 10 ' 5 раз цвет активного окна и 5 раз — неактивного
retval = FlashWindow(Form1.hwnd, 1) ' переключаем вид окна
Sleep 500 ' пауза через каждые 500 миллисекуд (1/2 секунды)
Next c
retval = FlashWindow(Form1.hwnd, 0) ' окно должно выглядить активным
End Sub
Viaceslavas Kaleda
Copyright 2000-2004 Сообщество Чайников
Контактная информация