본문 바로가기
Programming/Visual Basic 6

[VB6] InputBox의 공백("")과 취소(Cancel) 구분하기

by 너울림 2022. 12. 28.

InputBox의 공백과 취소 구분하기

 

InputBox의 공백("")과 취소(Cancel) 구분하기

 


포스팅 개요

Inputbox의 MSDN을 확인하면 "[취소] 단추를 누르면 함수는 길이가 0인 문자열("")을 반환"이라는 문구가 존재합니다. 프로그래머가 실제로 공백을 [취소]와 같은 의미로 취급한다면 이는 별 문제가 없습니다. 하지만 빈 문자열을 입력해야 되는 경우라면 결국 [취소]와 [확인]으로 등록한 빈 문자열을 구별해야 됩니다. 

 

  • 실제 테스트를 해보면 Inputbox 함수 사용 시 [취소] 동작에서 vbNullString이 반환되는 것을 알 수 있습니다.
  • 이를 근거로 유니코드 문자열 버퍼의 주소를 반환하는 StrPtr 함수를 이용하여 구별해 보겠습니다.

MSDN에 등록되어있는 Inputbox 함수 설명

 


예제 코드 작성

 

  • StrPtr로 vbNullString의 버퍼 주소를 반환하면 0으로 표기됩니다.
  • StrPtr로 공백("")의 버퍼 주소를 반환하면 0이 아닌 값으로 표기됩니다.
  • 예제는 이를 이용한 간단한 소스 코드입니다.
Dim strTemp As String

strTemp = InputBox("Inputbox 취소 테스트!!")

If StrPtr(strTemp) = 0 Then
    Text1.Text = "취소 Cancel"
Else
    Text1.Text = strTemp
End If

실행 결과

 

  • 이제 공백까지 구별하여 내용을 받을 수 있습니다.
  • 결국 길이가 0인 문자열("")을 모두 검색하여야만 취소 확인이 가능하기 때문에 MSDN은 틀리지 않았습니다.

Inputbox 함수 취소(Cancel) 코드 예제
Inputbox 함수 취소(Cancel) 코드 예제

 

 

 

 

 

 

댓글