본문 바로가기

Application Dev./C++/MFC

MessageBox() 사용법

int MessageBox(HWND hWnd, LPCTSTR lpText, LPCTSTR lpCaption, UINT uType);


hWnd      메시지 박스의 오너(Owner) 윈도우이다. 오너 윈도우란 메시지 상자를 소유한 윈도우를
              말하며 메시지 박스는 오너 윈도우의 중앙에 나타나며 메시지 박스가 떠 있는 동안 오너
              윈도우 는 사용할 수 없는 상태가 된다. 메시지 박스를 닫아야만 오너 윈도우를 사용할 수 있다.
lpText      메시지 박스에 출력할 문자열
lpCaption 메시지 상자의 타이틀 바에 나타날 제목 문자열

uType      DWORD값 참조


설명
MB_ABORTRETRYIGNORE Abort, Retry, Ignore 세 개의 버튼이 나타난다.
MB_OK
OK버튼 하나만 나타난다.
MB_OKCANCEL OK, Cancel 두 개의 버튼이 나타난다.
MB_RETRYCANCEL Retry, Cancel 두 개의 버튼이 나타난다.
MB_YESNO
Yes, No 두 개의 버튼이 나타난다.
MB_YESNOCANCEL Yes, No, Cancel 세 개의 버튼이 나타난다.
 
 버튼 종류 플레그와 아이콘 플레그를 OR 연산자로 연결하여 uType 인수에 지정해 준다.
 
아이콘
MB_ICONEXCLAMATION
MB_ICONWARNING
MB_ICONINFORMATION
MB_ICONASTERISK
MB_ICONQUESTION
MB_ICONSTOP
MB_ICONERROR
MB_ICONHAND
 
사용법
LRESULT CALLBACK WndProc(HWND hWnd,UINT iMessage,WPARAM wParam,LPARAM lParam) { HDC hdc; PAINTSTRUCT ps; switch(iMessage) { case WM_PAINT: hdc=BeginPaint(hWnd,&ps); MoveToEx(hdc,150,150,NULL); LineTo(hdc,180,200); Rectangle(hdc,200,100,250,180); Ellipse(hdc,200,200,250,280); EndPaint(hWnd,&ps); return 0; case WM_LBUTTONDOWN: MessageBox(hWnd, "왼쪽 버튼을 눌렀습니다","메시지 박스",MB_OK); return 0; case WM_DESTROY: PostQuitMessage(0); return 0; } return(DefWindowProc(hWnd,iMessage,wParam,lParam)); }
MessageBox 함수는 리턴값으로 사용자가 누른 버튼값을 돌려준다.
설명
IDABORTAbort버튼을 눌렀다.
IDCANCELCancel 버튼을 눌렀다.
IDIGNOREIgnore 버튼을 눌렀다.
IDNONo버튼을 눌렀다.
IDOKOK 버튼을 눌렀다.
IDRETRYRetry 버튼을 눌렀다.
IDYESYes 버튼을 눌렀다.
만약 사용자에게 게임을 계속할 것인가를 묻고 싶다면 다음과 같이 코드를 작성하면 된다.
if (MessageBox(hWnd, "게임을 계속 하겠습니까","질문",MB_YESNO)==IDYES)
{ // 게임 계속 처리 } else
{ // 게임 중지 }