MessageBoxW 함수(winuser.h)
시스템 아이콘, 단추 집합 및 상태 또는 오류 정보와 같은 간단한 애플리케이션 관련 메시지가 포함된 모달 대화 상자를 표시합니다. 메시지 상자는 사용자가 클릭한 단추를 나타내는 정수 값을 반환합니다.
통사론
int MessageBoxW(
[in, optional] HWND hWnd,
[in, optional] LPCWSTR lpText,
[in, optional] LPCWSTR lpCaption,
[in] UINT uType
);
매개 변수
[in, optional] hWnd
형식: HWND
만들 메시지 상자의 소유자 창에 대한 핸들입니다. 이 매개 변수가 NULL
[in, optional] lpText
형식: LPCTSTR
표시할 메시지입니다. 문자열이 둘 이상의 줄로 구성된 경우 각 줄 사이에 캐리지 리턴 및/또는 줄 바꿈 문자를 사용하여 줄을 구분할 수 있습니다.
[in, optional] lpCaption
형식: LPCTSTR
대화 상자 제목입니다. 이 매개 변수가 NULL
[in] uType
형식: UINT
대화 상자의 내용과 동작입니다. 이 매개 변수는 다음 플래그 그룹의 플래그 조합일 수 있습니다.
메시지 상자에 표시되는 단추를 나타내려면 다음 값 중 하나를 지정합니다.
값 | 의미 |
---|---|
|
메시지 상자에는 |
|
메시지 상자에는 취소, 다시 시도, 계속등 세 개의 푸시 단추가 있습니다. MB_ABORTRETRYIGNORE 대신 이 메시지 상자 유형을 사용합니다. |
|
메시지 상자에 도움말 단추를 추가합니다. 사용자가 도움말 단추를 클릭하거나 F1 키를 누르면 시스템에서 소유자에게 WM_HELP 메시지를 보냅니다. |
|
메시지 상자에는 확인하나의 푸시 단추가 있습니다. 기본값입니다. |
|
메시지 상자에는 확인취소라는 두 개의 푸시 단추가 있습니다. |
|
메시지 상자에는 다시 시도취소두 개의 푸시 단추가 있습니다. |
|
메시지 상자에는 예 및 아니요두 개의 푸시 단추가 있습니다. |
|
메시지 상자에는 예, 없음, 취소등 세 개의 푸시 단추가 있습니다. |
메시지 상자에 아이콘을 표시하려면 다음 값 중 하나를 지정합니다.
기본 단추를 나타내려면 다음 값 중 하나를 지정합니다.
대화 상자의 형식을 나타내려면 다음 값 중 하나를 지정합니다.
다른 옵션을 지정하려면 다음 값 중 하나 이상을 사용합니다.
값 | 의미 |
---|---|
|
대화형 창 스테이션의 데스크톱과 동일합니다. 자세한 내용은 창 스테이션참조하세요.
현재 입력 데스크톱이 기본 데스크톱이 아닌 경우 MessageBox 사용자가 기본 데스크톱으로 전환할 때까지 반환되지 않습니다. |
|
텍스트가 오른쪽 맞춤입니다. |
|
히브리어 및 아랍어 시스템에서 오른쪽에서 왼쪽으로 읽기 순서를 사용하여 메시지 및 캡션 텍스트를 표시합니다. |
|
메시지 상자가 전경 창이 됩니다. 내부적으로 시스템은 메시지 상자에 SetForegroundWindow 함수를 호출합니다. |
|
메시지 상자는 WS_EX_TOPMOST 창 스타일로 만들어집니다. |
|
호출자는 사용자에게 이벤트를 알리는 서비스입니다. 컴퓨터에 로그온한 사용자가 없더라도 함수는 현재 활성 데스크톱에 메시지 상자를 표시합니다.
터미널 서비스: 호출 스레드에 가장 토큰이 있는 경우 함수는 메시지 상자를 가장 토큰에 지정된 세션으로 전달합니다. 이 플래그가 설정되면 이 플래그 사용과 관련된 보안 고려 사항에 대한 자세한 내용은 Interactive Services참조하세요. 특히 이 플래그는 잠긴 데스크톱에서 대화형 콘텐츠를 생성할 수 있으므로 리소스 소모와 같은 매우 제한된 시나리오 집합에만 사용해야 합니다. |
반환 값
형식: int
메시지 상자에 취소 단추가 있는 경우 ESC 키를 누르거나 취소 단추를 선택한 경우 함수는 IDCANCEL 값을 반환합니다. 메시지 상자에 취소 단추가 없으면 MB_OK 단추가 없는 한 ESC를 누르면 효과가 없습니다. MB_OK 단추가 표시되고 사용자가 ESC를 누르면 반환 값은 IDOK
함수가 실패하면 반환 값은 0입니다. 확장 오류 정보를 얻으려면 GetLastError호출합니다.
함수가 성공하면 반환 값은 다음 메뉴 항목 값 중 하나입니다.
반환 코드/값 | 묘사 |
---|---|
|
중단 단추가 선택되었습니다. |
|
취소 단추가 선택되었습니다. |
|
계속 단추가 선택되었습니다. |
|
무시 단추가 선택되었습니다. |
|
없음 단추가 선택되었습니다. |
|
확인 단추가 선택되었습니다. |
|
다시 시도 단추가 선택되었습니다. |
|
다시 시도 단추가 선택되었습니다. |
|
예 단추가 선택되었습니다. |
발언
uType 매개 변수를 해당 플래그 값으로 설정하여 메시지 상자에서 다음 시스템 아이콘을 사용할 수 있습니다.
아이콘 | 플래그 값 |
---|---|
MB_ICONHAND, MB_ICONSTOP 및 MB_ICONERROR 대한 |
MB_ICONHAND, MB_ICONSTOP또는 MB_ICONERROR |
MB_ICONQUESTION 대한 |
MB_ICONQUESTION |
MB_ICONEXCLAMATION 및 MB_ICONWARNING 대한 |
MB_ICONEXCLAMATION 또는 MB_ICONWARNING |
MB_ICONASTERISK 및 MB_ICONINFORMATION 대한 |
MB_ICONASTERISK 또는 MB_ICONINFORMATION |
MessageBox 표시 문자열의 시작 부분에 유니코드 서식 문자 U+200F로 표시되는 두 개의 오른쪽에서 왼쪽 표시(RLM)를 추가하는 것은 MessageBox의 읽기 순서가 RTL(오른쪽에서 왼쪽)으로 렌더링되도록 MessageBox 렌더링 엔진에서 해석됩니다.
시스템 모달 메시지 상자를 사용하여 시스템이 메모리가 부족함을 나타내는 경우 리소스 로드 시도가 실패할 수 있으므로 lpText 및 lpCaption 매개 변수가 가리키는 문자열을 리소스 파일에서 가져와서는 안 됩니다.
대화 상자가 있는 동안 메시지 상자를 만드는 경우 대화 상자에 대한 핸들을 hWnd 매개 변수로 사용합니다. hWnd 매개 변수는 대화 상자의 컨트롤과 같은 자식 창을 식별하면 안 됩니다.
예제
다음 예제에서 애플리케이션은 오류 조건이 발생한 후 사용자에게 작업을 요청하는 메시지 상자를 표시합니다. 메시지 상자에는 오류 조건 및 해결 방법을 설명하는 메시지가 표시됩니다. MB_CANCELTRYCONTINUE 스타일은 MessageBox 사용자가 진행 방법을 선택할 수 있는 3개의 단추를 제공하도록 지시합니다. 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 헤더는 MESSAGEBox를 유니코드 전처리기 상수의 정의에 따라 이 함수의 ANSI 또는 유니코드 버전을 자동으로 선택하는 별칭으로 정의합니다. 인코딩 중립 별칭을 인코딩 중립이 아닌 코드와 혼합하면 컴파일 또는 런타임 오류가 발생하는 불일치가 발생할 수 있습니다. 자세한 내용은 함수 프로토타입대한
요구 사항
요구 | 값 |
---|---|
지원되는 최소 클라이언트 | 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에서 도입) |
참고 항목
개념
messageBoxIndirect
기타 리소스
참조
SetForegroundWindow