Ответы на все вопросы

FAQ / Программирование / Visual Basic

Как установить окно поверх всех в системе NT4.0?

Вопрос:

Мне нужен пример расположения окна on-top. Только одно уточнение: пример должен работать в NT4.0
Вот этот пример в NT не работает в Windows 98 все нормально.

Private Declare Function SetWindowPos Lib "user32" (ByVal h%, ByVal hb%,
ByVal x%, ByVal Y%, ByVal cx%, ByVal cy%, ByVal F%) As Integer
Const SWP_NOMOVE = 2
Const SWP_NOSIZE = 1
Const flags = SWP_NOMOVE Or SWP_NOSIZE
Const HWND_TOPMOST = -1
Const HWND_NOTOPMOST = -2

Private Sub Command1_Click()
res = SetWindowPos(Form1.hwnd, HWND_TOPMOST, 0, 0, 0, 0, flags) 'Форма
on-top
End Sub
Private Sub Command2_Click()
res = SetWindowPos(Form1.hwnd, HWND_NOTOPMOST, 0, 0, 0, 0, flags) 'Форма
non-on-top
End Sub

Ответ:

На твой код у меня пишется переполнение.
А вот такое работает (W2000).

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)
 Const SWP_NOSIZE = &H1
 Const SWP_NOMOVE = &H2
 Const HWND_TOPMOST = -1
 Const HWND_NOTOPMOST = -2
Private Sub Комманда1_Click()
res = SetWindowPos(Me.hwnd, HWND_TOPMOST, 0, 0, 0, 0, SWP_NOSIZE or SWP_NOMOVE)
End Sub
Private Sub Комманда2_Click()
res = SetWindowPos(Me.hwnd, HWND_NOTOPMOST, 0, 0, 0, 0,SWP_NOSIZE or SWP_NOMOVE)
End Sub

Пробуй, должно работать и в NT 4.0.

Автор: AlexV

Версия для печати Найти похожие статьи
Поиск по сайту

Архив

ВсПнВтСрЧтПтСб
1234567
891011121314
15161718192021
22232425262728
293012345
6789101112
13141516171819
20212223242526
272829303112



Мы рекомендуем