MessageBoxA 함수(winuser.h)
시스템 아이콘, 단추 집합 및 상태 또는 오류 정보와 같은 간단한 애플리케이션 관련 메시지가 포함된 모달 대화 상자를 표시합니다. 메시지 상자는 사용자가 클릭한 단추를 나타내는 정수 값을 반환합니다.
구문
int MessageBoxA(
[in, optional] HWND hWnd,
[in, optional] LPCSTR lpText,
[in, optional] LPCSTR lpCaption,
[in] UINT uType
);
매개 변수
[in, optional] hWnd
형식: HWND
만들 메시지 상자의 소유자 창에 대한 핸들입니다. 이 매개 변수가 NULL이면 메시지 상자에 소유자 창이 없습니다.
[in, optional] lpText
형식: LPCTSTR
표시할 메시지입니다. 문자열이 둘 이상의 줄로 구성된 경우 각 줄 사이에 캐리지 리턴 및/또는 줄 바꿈 문자를 사용하여 줄을 구분할 수 있습니다.
[in, optional] lpCaption
형식: LPCTSTR
대화 상자 제목입니다. 이 매개 변수가 NULL이면 기본 제목은 Error입니다.
[in] uType
형식: UINT
대화 상자의 내용 및 동작입니다. 이 매개 변수는 다음 플래그 그룹의 플래그 조합일 수 있습니다.
메시지 상자에 표시되는 단추를 나타내려면 다음 값 중 하나를 지정합니다.
값 | 의미 |
---|---|
|
메시지 상자에는 중단, 다시 시도 및 무시의 세 가지 푸시 단추가 포함되어 있습니다. |
|
메시지 상자에는 취소, 다시 시도, 계속이라는 세 개의 푸시 단추가 포함되어 있습니다. MB_ABORTRETRYIGNORE 대신 이 메시지 상자 유형을 사용합니다. |
|
메시지 상자에 도움말 단추를 추가합니다. 사용자가 도움말 단추를 클릭하거나 F1 키를 누르면 시스템에서 소유자에게 WM_HELP 메시지를 보냅니다. |
|
메시지 상자에는 확인이라는 하나의 푸시 단추가 포함되어 있습니다. 이것이 기본값입니다. |
|
메시지 상자에는 확인 및 취소라는 두 개의 푸시 단추가 있습니다. |
|
메시지 상자에는 두 개의 푸시 단추인 다시 시도 및 취소가 포함되어 있습니다. |
|
메시지 상자에는 예 및 아니요라는 두 개의 푸시 단추가 있습니다. |
|
메시지 상자에는 예, 아니요 및 취소라는 세 개의 푸시 단추가 포함되어 있습니다. |
메시지 상자에 아이콘을 표시하려면 다음 값 중 하나를 지정합니다.
기본 단추를 나타내려면 다음 값 중 하나를 지정합니다.
대화 상자의 형식을 나타내려면 다음 값 중 하나를 지정합니다.
다른 옵션을 지정하려면 다음 값 중 하나 이상을 사용합니다.
값 | 의미 |
---|---|
|
대화형 창 스테이션의 데스크톱과 동일합니다. 자세한 내용은 창 스테이션을 참조하세요.
현재 입력 데스크톱이 기본 데스크톱이 아닌 경우 사용자가 기본 데스크톱으로 전환할 때까지 MessageBox 가 반환되지 않습니다. |
|
텍스트가 오른쪽 정렬됩니다. |
|
히브리어 및 아랍어 시스템에서 오른쪽에서 왼쪽으로 읽기 순서를 사용하여 메시지 및 캡션 텍스트를 표시합니다. |
|
메시지 상자가 포그라운드 창이 됩니다. 내부적으로 시스템은 메시지 상자에 대해 SetForegroundWindow 함수를 호출합니다. |
|
메시지 상자는 WS_EX_TOPMOST 창 스타일로 만들어집니다. |
|
호출자는 이벤트의 사용자에 게 알리는 서비스. 사용자가 없는 컴퓨터에 로그온 하는 경우에 현재 활성 바탕 화면에 메시지 상자를 표시 하는 함수입니다.
터미널 서비스: 호출 스레드에 가장 토큰이 있는 경우 함수는 메시지 상자를 가장 토큰에 지정된 세션으로 전달합니다. 이 플래그가 설정되면 hWnd 매개 변수는 NULL이어야 합니다. 이렇게 하면 hWnd에 해당하는 바탕 화면이 아닌 바탕 화면에 메시지 상자가 나타날 수 있습니다. 이 플래그 사용과 관련된 보안 고려 사항에 대한 자세한 내용은 Interactive Services를 참조하세요. 특히 이 플래그는 잠긴 데스크톱에서 대화형 콘텐츠를 생성할 수 있으므로 리소스 소모와 같은 매우 제한된 시나리오 집합에만 사용해야 합니다. |
반환 값
형식: int
메시지 상자에 취소 단추가 있는 경우 ESC 키를 누르거나 취소 단추를 선택한 경우 함수는 IDCANCEL 값을 반환합니다. 메시지 상자에 취소 단추가 없으면 MB_OK 단추가 없는 한 ESC를 누르면 효과가 없습니다. MB_OK 단추가 표시되고 사용자가 ESC를 누르면 반환 값은 IDOK가 됩니다.
함수가 실패하면 반환 값은 0입니다. 확장 오류 정보를 가져오려면 GetLastError를 호출합니다.
함수가 성공하면 반환 값은 다음 메뉴 항목 값 중 하나입니다.
반환 코드/값 | 설명 |
---|---|
|
중단 단추가 선택되었습니다. |
|
취소 단추가 선택되었습니다. |
|
계속 단추가 선택되었습니다. |
|
무시 단추가 선택되었습니다. |
|
아니요 단추가 선택되었습니다. |
|
확인 단추가 선택되었습니다. |
|
다시 시도 단추가 선택되었습니다. |
|
다시 시도 단추가 선택되었습니다. |
|
예 단추가 선택되었습니다. |
설명
uType 매개 변수를 해당 플래그 값으로 설정하여 메시지 상자에서 다음 시스템 아이콘을 사용할 수 있습니다.
아이콘 | 플래그 값 |
---|---|
MB_ICONHAND, MB_ICONSTOP 또는 MB_ICONERROR | |
MB_ICONQUESTION | |
MB_ICONEXCLAMATION 또는 MB_ICONWARNING | |
MB_ICONASTERISK 또는 MB_ICONINFORMATION |
MessageBox 표시 문자열의 시작 부분에 유니코드 서식 문자 U+200F로 표시되는 두 개의 오른쪽에서 왼쪽 표시(RLM)를 추가하면 MessageBox 렌더링 엔진에서 해석되어 MessageBox의 읽기 순서가 RTL(오른쪽에서 왼쪽)으로 렌더링됩니다.
시스템 모달 메시지 상자를 사용하여 시스템이 메모리 부족임을 나타내는 경우 리소스 로드 시도가 실패할 수 있으므로 lpText 및 lpCaption 매개 변수가 가리키는 문자열을 리소스 파일에서 가져와서는 안 됩니다.
대화 상자가 있는 동안 메시지 상자를 만드는 경우 대화 상자에 대한 핸들을 hWnd 매개 변수로 사용합니다. hWnd 매개 변수는 대화 상자의 컨트롤과 같은 자식 창을 식별해서는 안 됩니다.
예제
다음 예제에서 애플리케이션은 오류 조건이 발생한 후 사용자에게 작업을 요청하는 메시지 상자를 표시합니다. 메시지 상자에는 오류 조건 및 resolve 방법을 설명하는 메시지가 표시됩니다. MB_CANCELTRYCONTINUE 스타일은 사용자가 진행 방법을 선택할 수 있는 세 개의 단추를 제공하도록 MessageBox에 지시합니다. MB_DEFBUTTON2 스타일은 메시지 상자의 두 번째 단추(이 경우 다시 시도 단추)에 기본 포커스를 설정합니다.
int DisplayResourceNAMessageBox()
{
int msgboxID = MessageBox(
NULL,
(LPCWSTR)L"Resource not available\nDo you want to try again?",
(LPCWSTR)L"Account Details",
MB_ICONWARNING | MB_CANCELTRYCONTINUE | MB_DEFBUTTON2
);
switch (msgboxID)
{
case IDCANCEL:
// TODO: add code
break;
case IDTRYAGAIN:
// TODO: add code
break;
case IDCONTINUE:
// TODO: add code
break;
}
return msgboxID;
}
다음 이미지는 이전 코드 예제의 출력을 보여줍니다.
다른 메시지 상자 예제는 메시지 상자 표시를 참조하세요.
참고
winuser.h 헤더는 UNICODE 전처리기 상수의 정의에 따라 이 함수의 ANSI 또는 유니코드 버전을 자동으로 선택하는 별칭으로 MessageBox를 정의합니다. 인코딩 중립 별칭을 인코딩 중립이 아닌 코드와 혼합하면 컴파일 또는 런타임 오류가 발생하는 불일치가 발생할 수 있습니다. 자세한 내용은 함수 프로토타입에 대한 규칙을 참조하세요.
요구 사항
지원되는 최소 클라이언트 | Windows 2000 Professional[데스크톱 앱만] |
지원되는 최소 서버 | Windows 2000 Server[데스크톱 앱만] |
대상 플랫폼 | Windows |
헤더 | winuser.h(Windows.h 포함) |
라이브러리 | User32.lib |
DLL | User32.dll |
API 세트 | ext-ms-win-ntuser-dialogbox-l1-1-0(Windows 8에서 도입) |
추가 정보
개념
기타 리소스
참조