Вопрос № 46718: Здравствуйте, Уважаемые эксперты!
Собственно, вопросов 2. По VB 6.0
Первый: В приложении несколько форм. Так вот, когда щелкаешь по крестику вверху окна, приложение не выгружается полностью,
остаются формы, в момент закрытия имеющие...
Вопрос № 46.718
Здравствуйте, Уважаемые эксперты!
Собственно, вопросов 2. По VB 6.0
Первый: В приложении несколько форм. Так вот, когда щелкаешь по крестику вверху окна, приложение не выгружается полностью,
остаются формы, в момент закрытия имеющие параметр Visible=False. Как это исправить, т.е. что дописать в коде.
Второй вопрос: Как сделать так, чтобы при закрытии одной формы, другая форма стала активной (Чтобы она стала поверх всех
других окон), а то постоянно теряется фокус.
Отвечает: PsySex
Здравствуйте, Черных Василий!
1. Чтобы закрыть своё приложение при закрытии данного окна добавьте код в форму
------------------------------------------------
Private Sub Form_Unload(Cancel As Integer)
End
End Sub
------------------------------------------------
2. Ну можно так
-------------------------------------------
Private Sub Form_Unload(Cancel As Integer)
'передаем фокус нужной форме
Form1.SetFocus
End Sub
-------------------------------------------
А еще если нужно чтоб форма всегда была на верху:
-----------------------------------------------------------------------------
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 HWND_NOTOPMOST = -2
Private Const SWP_NOMOVE = &H2
Private Const SWP_NOSIZE = &H1
Private Const SWP_NOACTIVATE = &H10
Private Const SWP_SHOWWINDOW = &H40
Private Sub Form_Activate()
'где Me.hwnd это хэндл нужного окна или например Form1.hwnd
SetWindowPos Me.hwnd, HWND_TOPMOST, 0, 0, 0, 0, SWP_NOMOVE Or SWP_NOSIZE
End Sub
-------------------------------------------------------------------------------
Ответ отправил: PsySex (статус: Студент)
Ответ отправлен: 19.06.2006, 23:09 Оценка за ответ: 5 Комментарий
оценки: Спасибо! То, что надо!
Отвечает: Александр Шевченко
Здравствуйте, Черных Василий!
1. В форме, по закрытию которой должно закрываться приложение надо прописать следующее:
Private Sub Form_Unload(Cancel As Integer)
Dim f as Form
For Each f In VB.Forms
Unload f
Next
End Sub
2.
Private Sub Form_Unload(Cancel As Integer)
Form1.SetFocus 'форма для активизации
End Sub
Ответ отправил: Александр Шевченко
(статус: 4-ый класс)
Ответ отправлен: 20.06.2006, 13:50 Оценка за ответ: 4 Комментарий
оценки: Немного запутанно с 1 подвопросом.
Отвечает: Miklucho
Здравствуйте, Черных Василий!
А я просто в процедуру выгрузки (unload) каждой формы писал команды выгрузки всех форм:
Private Sub Form_Unload(Cancel As Integer)
unload form1
unload form2
unload form3
'и т.д.
End Sub
Ответ отправил: Miklucho (статус:
Студент)
Ответ отправлен: 21.06.2006, 10:38