Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

RusFAQ.ru: Программирование на Basic / VBA


Информационный Канал Subscribe.Ru

РАССЫЛКИ ПОРТАЛА RUSFAQ.RU

/ КОМПЬЮТЕРЫ И ПО / Языки программирования / Basic/VBA

Выпуск № 78
от 13.07.2005, 15:20

Администратор:Калашников О.А.
В номере:Вопросов: 1, Ответов: 3
В рассылке:Подписчиков: 102, Экспертов: 7


Вопрос № 23176: Доброе время суток, уважаемые Эксперты! Подскажите плиз как сделать чтобы при определенном событии программа оказывалась сверху других? С уважением, Serzh mailto:serzh@mail2k.ru...

Вопрос № 23.176
Доброе время суток, уважаемые Эксперты!
Подскажите плиз как сделать чтобы при определенном событии программа оказывалась сверху других?
С уважением,
Serzh mailto:serzh@mail2k.ru
Отправлен: 07.07.2005, 16:44
Вопрос задал: Serzh (статус: Посетитель)
Всего ответов отправлено: 3

Отвечает: _Виталий
Здравствуйте, Serzh!
Т.е. вам нужно, чтобы форма была поверх всех остальных форм.
---------------Код формы----------------------------------------------------
Private 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

Private Const HWND_TOPMOST = -1
Private Const HWND_NOTOPMOST = -2
Private Const SWP_NOMOVE = &H2
Private Const SWP_NOSIZE = &H1
Private Const SWP_NOACTIVATE = &H10
Private Const SWP_SHOWWINDOW = &H40
----------------------------------------------------------------------------------
Чтобы поверх всех окон вызываете:
SetWindowPos Form1.hwnd, HWND_TOPMOST, 0, 0, 0, 0, SWP_NOMOVE Or SWP_NOSIZE
И обратно:
SetWindowPos Form1.hwnd, HWND_NOTOPMOST, 0, 0, 0, 0, SWP_NOMOVE Or SWP_NOSIZE

Ответ отправил: _Виталий (статус: 3-ий класс)
Отправлен: 07.07.2005, 18:41
Оценка за ответ: 5
Комментарий оценки:
Огромное спасибо :)))

Отвечает: *Kot*
Здравствуйте, Serzh!
Очень просто! Объявляем функцию (См. приложение.), для установки режима "Поверх всех окон" вставляем в код следующую строку:
SetWindowPos FormName.hwnd, HWND_TOPMOST, 0, 0, 0, 0, FLAGS
Чтобы вернуть нормальный режим:
SetWindowPos FormName.hwnd, HWND_NOTOPMOST, 0, 0, 0, 0, FLAGS

Приложение:

Ответ отправил: *Kot* (статус: 6-ой класс)
Отправлен: 07.07.2005, 20:44
Оценка за ответ: 5
Комментарий оценки:
Огромное спасибо :)))

Отвечает: Залетин Виталий Викторович
Здравствуйте, Serzh
Hапример, так:
Const HWND_TOPMOST = -1
Const HWND_NOTOPMOST = -2
Const SWP_NOSIZE = &H1
Const SWP_NOMOVE = &H2
Const SWP_NOACTIVATE = &H10
Const SWP_SHOWWINDOW = &H40

Private Declare Sub 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)

Private Sub Timer1_timer()
If Time(NOW)=TimeValue("12:00:00") Then
SetWindowPos FormGlavnaya.hWnd, _
HWND_TOPMOST, 0, 0, 0, 0, _
SWP_NOACTIVATE Or SWP_SHOWWINDOW Or _
SWP_NOMOVE Or SWP_NOSIZE
End If
End Sub
Ответ отправил: Залетин Виталий Викторович (статус: 2-ой класс)
Отправлен: 09.07.2005, 14:47


Отправить вопрос экспертам этой рассылки

Приложение (если необходимо):

* Код программы, выдержки из закона и т.п. дополнение к вопросу.
Эта информация будет отображена в аналогичном окне как есть.

Обратите внимание!
Вопрос будет отправлен всем экспертам данной рассылки!

Для того, чтобы отправить вопрос выбранным экспертам этой рассылки или
экспертам другой рассылки портала RusFAQ.ru, зайдите непосредственно на RusFAQ.ru.


Форма НЕ работает в почтовых программах The BAT! и MS Outlook (кроме версии 2003+)!
Чтобы отправить вопрос, откройте это письмо в браузере или зайдите на сайт RusFAQ.ru.


© 2001-2005, RusFAQ.ru, Россия, Москва. Все права защищены.
Идея, дизайн, программирование, авторское право: Калашников О.А.

Яндекс


Subscribe.Ru
Поддержка подписчиков
Другие рассылки этой тематики
Другие рассылки этого автора
Подписан адрес:
Код этой рассылки: comp.soft.prog.basicvba
Отписаться
Вспомнить пароль

В избранное