СообЧа > База Знаний > Программирование > Visual Basic

Вопрос

Мне нужен пример расположения окна 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



Copyright © 2000-2004 Сообщество Чайников
Контактная информация