2025년 3월 28일 금요일

[VB6] 폼 종료(X) 버튼 클릭 시 종료 여부 확인하는 방법

 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

코드 설명

  1. QueryUnload 이벤트 활용

    • 폼이 닫히려 할 때 실행되는 이벤트입니다.

    • UnloadModevbFormControlMenu이면 X 버튼을 클릭한 경우입니다.

  2. MsgBox로 종료 확인 메시지 표시

    • vbYesNo + vbQuestion 옵션을 사용하여 "예/아니오" 버튼이 있는 메시지를 띄웁니다.

  3. 종료 여부 결정

    • 사용자가 "예(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 버튼을 아예 비활성화하거나, 특정 버튼으로만 종료되도록 변경하는 것도 가능합니다.

댓글 없음:

댓글 쓰기

-


Sidewinder


World


FishMusic


LaughingBaby