всплывающее окно?

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
bes
Начинающий
Начинающий
 
Сообщения: 13
Зарегистрирован: 02.12.2007 (Вс) 16:37
Откуда: Русь-матушка

всплывающее окно?

Сообщение bes » 20.11.2008 (Чт) 23:01

Подскажите, плз, как сделать, чтобы такая, вот, небольшая по размеру форма постоянно (до закрытия, ес-сно) "висела" поверх всех остальных, развёрнутых "наполную"?

iGrok
Артефакт VBStreets
Артефакт VBStreets
 
Сообщения: 4272
Зарегистрирован: 10.05.2007 (Чт) 16:11
Откуда: Сетевое сознание

Re: всплывающее окно?

Сообщение iGrok » 21.11.2008 (Пт) 1:19

bes писал(а):Подскажите, плз, как сделать, чтобы такая, вот, небольшая по размеру форма постоянно (до закрытия, ес-сно) "висела" поверх всех остальных, развёрнутых "наполную"?

Поиск по HWND_TOPMOST.
label:
cli
jmp label

Debugger
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1667
Зарегистрирован: 17.06.2006 (Сб) 15:11

Re: всплывающее окно?

Сообщение Debugger » 21.11.2008 (Пт) 17:56

Код: Выделить всё
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 SWP_NOMOVE = &H2
Public Const SWP_NOSIZE = &H1
Public Const HWND_NOTOPMOST = -2
Public Const HWND_TOPMOST = -1

Public Sub OnTop()
SetWindowPos YourForm.hwnd, HWND_TOPMOST, 0, 0, 0, 0, SWP_NOSIZE Or SWP_NOMOVE
End Sub

Грубо говоря, так. YourForm - имя твоей формы, если ты не догодался

bes
Начинающий
Начинающий
 
Сообщения: 13
Зарегистрирован: 02.12.2007 (Вс) 16:37
Откуда: Русь-матушка

Re: всплывающее окно?

Сообщение bes » 21.11.2008 (Пт) 21:09

Спасибо, пробую...
Глюк вот в этом секторе:
Public Const SWP_NOMOVE = &H2
Public Const SWP_NOSIZE = &H1
Public Const HWND_NOTOPMOST = -2
Public Const HWND_TOPMOST = -1
Вот эта ошибка Compile error:
Constants, fixed-length strings, arrays, user-defined types and Declare statements not allowed as Public members of object modules
Что я сделал не правильно, поясните?

Debugger
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1667
Зарегистрирован: 17.06.2006 (Сб) 15:11

Re: всплывающее окно?

Сообщение Debugger » 21.11.2008 (Пт) 22:35

Конечно. Это надо объявлять в модуле (или заменить везде Puplic на Private). Английский язык знаешь?

bes
Начинающий
Начинающий
 
Сообщения: 13
Зарегистрирован: 02.12.2007 (Вс) 16:37
Откуда: Русь-матушка

Re: всплывающее окно?

Сообщение bes » 21.11.2008 (Пт) 23:48

Debugger писал(а):Конечно. Это надо объявлять в модуле (или заменить везде Puplic на Private). Английский язык знаешь?

К сожалению, английского не знаю - проблема... И программировать только учусь....
Спасибо за подсказку, пробую...

Александр_ФФ
Обычный пользователь
Обычный пользователь
 
Сообщения: 93
Зарегистрирован: 23.11.2008 (Вс) 11:09
Откуда: Северодвинск

Re: всплывающее окно?

Сообщение Александр_ФФ » 26.11.2008 (Ср) 19:15

Спасибо!
Небольшой баг: окно находится поверх всех, пок не открыто ещё одно какоенибудь винуос окно.
Вставка вызова продцеуры в Form_lostfocus и в Form_paint не помогла. что делать??

Debugger
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1667
Зарегистрирован: 17.06.2006 (Сб) 15:11

Re: всплывающее окно?

Сообщение Debugger » 26.11.2008 (Ср) 20:07

Если открывается простое окно (как у calc.exe), то наше окно должно закрывать его.
Если открывается еще одно окно, которая тоже ставится как самое верхнее, оно становится "верхнее верхнего" (так как вызвано позже) и закрывает наше окно.
З.Ы. слово "закрывать" я имел ввиду перекрытие одной формой другую на экране


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: Google-бот и гости: 38

    TopList