본문 바로가기
프로그램ing/VB

[VB6.0] Msgbox 사용방법

by 철밥통 2018. 1. 22.
반응형

[Visual Basic 6.0] Msgbox "사용방법"

 

1. 기본적인 구조 및 사용방법

 
일반적으로 Visual Basic Msgbox에 대해서 설명할 때에는 단순히 메세지박스창을 어떻게 사용할 수 있는가에 대해서만 안내할 뿐
 
자세한 속성(Attribute)에 대한 설명은 없고,  알고자 한다면 MSDN을 자세히 쳐다보는 방법 외에는 알 수는 없습니다.
 
우리가 일반적으로 메세지박스를 선언할 때에는 아래와 같은 구조로 사용하게 됩니다.
 

 

pMsg 라는 문자형 변수에 Msgbox의 결과값을 저장하는 경우는 메세지박스의 결과값이 2가지 이상일 때, 

 

예 / 아니요/ 취소 / 재시도 / 무시 와 같이 여러가지 결과값이 있을 때 변수를 사용하여 결과값을 전달받으며 

 

단순히 알림만을 위한 Msgbox 사용시에는 아래와 같이 단순히 한줄로 사용할 수 있습니다.

 

Private sub Command1_Click()

MsgBox "Error 1 : 기본값이 입력되지 않았습니다.", vbCritical + vbOKOnly, "입력오류

End Sub

 

 

2. MsgBox Argument

 

 *

1. prompt [내용]

MsgBox의 prompt[내용] 부분에 들어가는 문자의 길이는 대략 1,024 길이의 문장까지 입력이 가능합니다.

또한 String 표현식이기 때문에 String 으로 문자열을 입력받아 변수명으로도 출력이 가능합니다.

 

Private Sub Command1_Click()

    Dim pStr As String

    

    pStr = "Error 1 : 기본값이 입력되지 않았습니다."

 

    MsgBox pStr, vbCritical + vbOKOnly, "입력오류"    

End Sub

 

2. Buttons AS VbMsgBoxStyle = vbOKOnly [메세지박스 아이콘 및 버튼 Type]

Msgbox의 Buttons에 사용할 수 있는 속성은

 

A. 표시될 버튼(6가지 Type), B. 아이콘(4가지 Type), C. Default Button(4가지 Type),  D. Msgbox 운영방식(2가지 Type)  

 

이렇게 대분류로 4가지 속성을 적용할 수 있으며, 모두 한번에 적용이 가능합니다. 

 

A. Button Type

vbOKOnly : OK 버튼만 표시
vbOKCancel : OK와 Cancel 버튼을 표시
vbAbortRetryIgnore : Abort, Retry, Ignore 버튼을 표시
vbYesNoCancel : Yes, No, Cancel 버튼을 표시
vbYesNo : Yes와 No 버튼을 표시
vbRetryCancel : Retry와 Cancel 버튼을 표시
 
여기서 vbOKOnly 버튼을 제외한 나머지 버튼 Type을 사용하시려면 처음에 언급했던바와 같이 메세지박스에서 반환되는
결과값을 저장하기 위해 MsgBox 결과값 전용 변수를 추가로 선언을 해주셔야 합니다.

B. Icon

vbCritical : Critical Message 아이콘을 표시

 

 

 

vbQuestion : Warning Query 아이콘을 표시

 

 

 

vbExclamation : Warning Message 아이콘을 표시

 

 

 

vbInformation : Information Message 아이콘을 표시

 

C. ★ Default Button ★

제가 Default Button 에 ★을 추가한 이유는 개발자로서의 센스가 발휘되는 부분이기 때문입니다.

데이터를 삭제하고자 할 때, 삭제버튼을 눌러서 진행되는 과정을 예로 들어 설명드리겠습니다.

 

Private Sub Command1_Click()

   

Dim pStr As String    Dim pMsg As String
    pStr = "데이터를 삭제하시겠습니까?"    pMsg = MsgBox(pStr, vbCritical + vbYesNo, "삭제여부")

End Sub

 

위와같이 일반적인 사용 방법으로 진행 시 결과는 아래와 같습니다.

 

 

자 여기서 문제가 된다면 어떤 부분이 문제가 될까요? 

 

데이터를 삭제하거나 변경하는 부분에 있어서의 진행을 물어보기위한 메세지박스의 기본값이 '예'로 되어 있다면,

그리고 실수로 Enter Key 또는 Space Key를 눌러서 진행하는 경우가 많다면,

원하지 않게 데이터를 삭제 또는 변경이 되는 확률이 매우 크겠죠?

 

따라서 여기서 꼭 필요하지 않지만 필요하다면 필요하고, 센스라고 느껴질 수 있는 부분이 Default Button 입니다. 

중효한 질의를 하는 메세지박스 에서는 Default Button이 '취소' 또는 '아니요'에 포커스가 맞춰져 있다면 

진정으로 한번 더 확인할 수 있게 하는 기능이 되지 않는가 하는 개인적인 생각입니다.

 

Private Sub Command1_Click()

    

Dim pStr As String    Dim pMsg As String
    pStr = "데이터를 삭제하시겠습니까?"    pMsg = MsgBox(pStr, vbCritical + vbYesNo + vbDefaultButton2, "삭제여부")

End Sub

 

위의 진한 글씨의 속성을 추가한 결과는 아래와 같습니다.

 

 

확실히 포커스가 아니요 쪽으로 옮겨진 것을 확인할 수 있습니다. 

 

Default Button 속성은 아래와 같습니다. 상당히 의미가 직관적이죠? ㅋ

vbDefaultButton1 : 첫번째 버튼이 Default

vbDefaultButton2 : 두번째 버튼이 Default

vbDefaultButton3 : 세번째 버튼이 Default

vbDefaultButton4 : 네번째 버튼이 Default

 

원하는 버튼의 위치에 Default 속성을 추가하여 사용하실 수 있습니다.

 

 

D. Msgbox 운영방식

vbApplicationModal : 현재 어플리케이션에서 작업을 계속하려면 메세지 박스에 응답을 해야 진행이 가능하다.

vbSystemModal : 시스템형식, 메세지박스에 응답하기 전에는 모든 어플리케이션들이 중지된 상태로 있는다.

 

MsgBox의 기본값은 ApplicationModal 방식으로 설정되어 있으며, 필요에 따라 System전체를 멈춰야하는 경우에는 

vbSystemModal 을 사용합니다.

 

 

 

 

 

 

 

 

 

반응형

댓글