Как сделать так, чтобы окно было...

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

Как сделать так, чтобы окно было...

Сообщение Druid-2004 » 24.09.2004 (Пт) 11:46

Как сделать так, чтобы окно было поверх всех остальных окон, даже после потери фокуса?
С уважением, Druid

RayShade
Scarmarked
Scarmarked
Аватара пользователя
 
Сообщения: 5511
Зарегистрирован: 02.12.2002 (Пн) 17:11
Откуда: Russia, Saint-Petersburg

Сообщение RayShade » 24.09.2004 (Пт) 12:03

Поиск по форуму по слову SetWindowPos
I don't understand. Sorry.

Эрендир
Начинающий
Начинающий
Аватара пользователя
 
Сообщения: 6
Зарегистрирован: 24.09.2004 (Пт) 0:08

Сообщение Эрендир » 24.09.2004 (Пт) 12: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


private sub Form_load()
dim rc as long
with me
rc = SetWindowPos(.hWnd, -1, .Left / Screen.TwipsPerPixelX, .Top / Screen.TwipsPerPixelY, .Width / Screen.TwipsPerPixelX, .Height / Screen.TwipsPerPixelY, 40)
end with
end sub

Druid-2004
Новичок
Новичок
 
Сообщения: 31
Зарегистрирован: 08.08.2004 (Вс) 16:20
Откуда: Трехгорный

Сообщение Druid-2004 » 24.09.2004 (Пт) 13:16

В этой строке...
Эрендир писал(а):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


....материца что-то на счет компиляции... (((
С уважением, Druid

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 24.09.2004 (Пт) 13:21

И правильно делает, надо Private.
Кроме того, это весьма корявый пример. Лучше послушай совет RayShade и поищи по форуму с ключевым словом HWND_TOPMOST.
Lasciate ogni speranza, voi ch'entrate.

Aleksej
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 191
Зарегистрирован: 03.06.2003 (Вт) 9:58

Сообщение Aleksej » 24.09.2004 (Пт) 13:42

Код: Выделить всё
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 SWP_NOMOVE = &H2
Private Const SWP_NOSIZE = &H1
'********************************************
Public Function AlwaysTop(Form As Form)

Call SetWindowPos(Form.hWnd, HWND_TOPMOST, 0, 0, 0, 0, _
                SWP_NOMOVE + SWP_NOSIZE)

End Function

Dex
Постоялец
Постоялец
 
Сообщения: 346
Зарегистрирован: 09.08.2004 (Пн) 16:11

Сообщение Dex » 24.09.2004 (Пт) 14:12

Это вставить в модуль:
Код: Выделить всё
   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_TOPMOST = -1
   Public Const HWND_NOTOPMOST = -2
   Public Const SWP_NOMOVE = &H2
   Public Const SWP_NOSIZE = &H1
   Public Const SWP_NOACTIVATE = &H10
   Public Const SWP_SHOWWINDOW = &H40

А на форме вызывать:
Код: Выделить всё
'поверх всех
SetWindowPos Me.hwnd, HWND_TOPMOST, 0, 0, 0, 0, SWP_NOMOVE Or SWP_NOSIZE
'не поверх всех
SetWindowPos Me.hwnd, HWND_NOTOPMOST, 0, 0, 0, 0, SWP_NOMOVE Or SWP_NOSIZE


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

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

Сейчас этот форум просматривают: С.Т., Google-бот, SemrushBot, Yandex-бот и гости: 2

    TopList