Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > VB6 > Крестик


Автор: Impulse 2.4.2005, 19:58
Как перехватить закрытие формы? задать на него Visible=False
Все исходники перерыскал ничего не нашел...

Автор: cardinal 2.4.2005, 22:30
Код

Option Explicit

Private Sub Form_Unload(Cancel As Integer)
Cancel = 1
End Sub

Добавь что тебе надо smile

Автор: Mephisto 3.4.2005, 04:48
Можно при помощи WinAPI заблокировать эту кнопку. Если интересует, пиши в приват! Я выложу сюда код когда напишу!

Автор: Exception 3.4.2005, 13:23
Вкратце это так:
1)Найти сисменю
2)Найти "Закрыть"
3)Затемнить этот пункт меню.
Тогда и кнопка затемнится.
Добавлено @ 13:33
Основано на http://hrestomvb.h11.ru/faq/faq_8.php, модифицировано мной для конкретных нужд smile
Код

Private Declare Function GetMenuItemCount Lib "user32" (ByVal hMenu As Long) As Long
Private Declare Function GetSystemMenu Lib "user32" (ByVal hwnd As Long, ByVal bRevert As Long) _
    As Long
Private Declare Function RemoveMenu Lib "user32" (ByVal hMenu As Long, ByVal nPosition As _
    Long, ByVal wFlags As Long) As Long
Private Declare Function EnableMenuItem Lib "user32" (ByVal hMenu As Long, ByVal _
    wIDEnableItem As Long, ByVal wEnable As Long) As Long
Private Const SC_CLOSE As Long = &HF060&
Private Const MFS_GRAYED As Long = &H3&
Const MF_BYPOSITION = &H400
Const MF_REMOVE = &H1000


Private Sub Form_Load()
Dim hMenu As Long, MenusCount As Long
Dim i As Long
    hMenu = GetSystemMenu(Me.hwnd, False)
    MenusCount = GetMenuItemCount(hMenu)
    For i = MenusCount To 5 Step -1
            RemoveMenu hMenu, i, MF_BYPOSITION
    Next
    EnableMenuItem hMenu, SC_CLOSE, MFS_GRAYED
End Sub

Автор: Guest 3.4.2005, 18:24
Код

Private Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer)
Cancel = True
End Sub

таким образом ты получишь возможность управлять поведением формы в зависимости от типа выгрузки unloadmode

Автор: Impulse 3.4.2005, 20:25
Код

Private Sub Form_Unload(Cancel As Integer)
Cancel = 1
End Sub

Вот это и надо, просто не допер сразу, спасибо...
И всем остальным тоже
Добавлено @ 20:26
Цитата(Guest @ 4.4.2005, 00:24)
ты получишь возможность управлять поведением формы в зависимости от типа выгрузки unloadmode

Можно поподробнее?

Автор: Exception 4.4.2005, 16:07
Return Values

The unloadmode argument returns the following values:

Constant Value Description
vbFormControlMenu 0 The user chose the Close command from the Control menu on the form.
vbFormCode 1 The Unload statement is invoked from code.
vbAppWindows 2 The current Microsoft Windows operating environment session is ending.
vbAppTaskManager 3 The Microsoft Windows Task Manager is closing the application.
vbFormMDIForm 4 An MDI child form is closing because the MDI form is closing.
vbFormOwner 5 A form is closing because its owner is closing.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)