Похоже, что это ошибка в подсистеме VB6 Forms - когда для формы BorderStyle
на панели задач не установлено меню Close
и ярлык Alt+F4
, а также просто прекращают работу, поскольку в форме нет системного меню .
К сожалению, обходной путь включает создание подклассов, и вот один из способов решения этой проблемы:
Option Explicit
Private Const WM_SYSCOMMAND As Long = &H112
Private Const SC_CLOSE As Long = &HF060&
Private m_pSubclass As IUnknown
Private Property Get pvAddressOfSubclassProc() As Form1 '-- change Form1 to current form name
Set pvAddressOfSubclassProc = InitAddressOfMethod(Me, 5)
End Property
Private Sub Form_Load()
Set m_pSubclass = InitSubclassingThunk(hWnd, Me, pvAddressOfSubclassProc.SubclassProc(0, 0, 0, 0, 0))
End Sub
Public Function SubclassProc(ByVal hWnd As Long, ByVal wMsg As Long, ByVal wParam As Long, ByVal lParam As Long, Handled As Boolean) As Long
Select Case wMsg
Case WM_SYSCOMMAND
If wParam = SC_CLOSE Then
Unload Me
Handled = True
End If
End Select
End Function
Для этого потребуется mdModernSubclassing.bas
из Модернизированное подклассификация Thunk хранилище добавлено в ваш проект для реализации создания безопасного подкласса IDE.