СообЧа > База Знаний > Программирование > Visual Basic > Формы и элементы управления

Вопрос

Второй день мучаюсь с отображением формы: есть главная форма, с которой выводится на экран модальная форма, с которой надо бы отобразить еще одну, но немодальную для текущего окна форму, т.е. чтобы перед главной формой оказалось еще два равных между собой окна.

Ответ

Поместите в модуль:

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_NOTOPMOST = -2
Public Const HWND_TOPMOST = -1
Public Const SWP_NOACTIVATE = &H10
Public Const SWP_NOMOVE = &H2
Public Const SWP_NOSIZE = &H1
'==On top==

Public Sub SetFormPosition(frmHandl As Long, TopPosition As Boolean)
If TopPosition Then
SetWindowPos frmHandl, HWND_TOPMOST, 0, 0, 0, 0, _
SWP_NOACTIVATE Or SWP_NOSIZE Or SWP_NOMOVE
Else
SetWindowPos frmHandl, HWND_NOTOPMOST, 0, 0, 0, 0, _
SWP_NOSIZE Or SWP_NOMOVE
End If
End Sub


и вызывать: Call SetFormPosition(Me.hWnd, True / False)

Далее при перемещении основной формы наверх активизируешь этот код.


DmitryK1



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