VB6(VB6.0)에서 폼의 종료(X) 버튼을 눌렀을 때, 바로 종료되지 않고 사용자가 종료할지 취소할지 선택할 수 있도록 설정하는 방법을 소개합니다.
종료 버튼(X) 클릭 시 확인 메시지 띄우기
사용자가 X 버튼을 눌렀을 때, "프로그램을 종료하시겠습니까?"와 같은 메시지를 띄워 종료 여부를 선택하도록 만들 수 있습니다.
구현 코드 (Form_QueryUnload 사용)
Private Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer)
' X 버튼을 눌렀을 때 확인 메시지를 표시
If UnloadMode = vbFormControlMenu Then
Dim result As Integer
result = MsgBox("프로그램을 종료하시겠습니까?",
vbYesNo + vbQuestion, "종료 확인")
' 사용자가 "아니오"를 선택하면 종료 취소
If result = vbNo Then
Cancel = True
End If
End If
End Sub
코드 설명
QueryUnload
이벤트 활용폼이 닫히려 할 때 실행되는 이벤트입니다.
UnloadMode
가vbFormControlMenu
이면 X 버튼을 클릭한 경우입니다.
MsgBox
로 종료 확인 메시지 표시vbYesNo + vbQuestion
옵션을 사용하여 "예/아니오" 버튼이 있는 메시지를 띄웁니다.
종료 여부 결정
사용자가 "예(Yes)"를 선택하면 종료됩니다.
사용자가 "아니오(No)"를 선택하면
Cancel = True
로 종료를 취소합니다.
실행 예시
X 버튼을 누르면 다음과 같은 메시지가 표시됩니다.
[종료 확인]
프로그램을 종료하시겠습니까?
[예] [아니오]
[예]를 클릭하면 프로그램이 종료됩니다.
[아니오]를 클릭하면 프로그램이 계속 실행됩니다.
응용: 특정 버튼으로만 종료되도록 설정
만약 X 버튼으로는 종료되지 않고, 특정 버튼을 눌러야만 종료되도록 만들고 싶다면 다음과 같이 구현할 수 있습니다.
특정 버튼을 눌러야만 종료되게 만들기
Private Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer)
' X 버튼으로 종료 방지
If UnloadMode = vbFormControlMenu Then
Cancel = True
MsgBox "이 프로그램은 X 버튼으로 종료할 수 없습니다.", vbInformation, "알림"
End If
End Sub
' 종료 버튼 (CommandButton) 클릭 시 종료
Private Sub cmdExit_Click()
Unload Me
End Sub
마무리
이 방법을 활용하면 VB6 프로그램에서 실수로 X 버튼을 눌러 종료되는 것을 방지하고, 사용자에게 종료 여부를 확인할 수 있도록 할 수 있습니다. 필요에 따라 X 버튼을 아예 비활성화하거나, 특정 버튼으로만 종료되도록 변경하는 것도 가능합니다.