3-3-³ª. ¸Þ½ÃÁö ¹Ú½º

¸Þ½ÃÁö ¹Ú½º´Â Á¶±×¸¸ º°µµÀÇ À©µµ¿ì¸¦ ¿­¾î¼­ »ç¿ëÀÚ¿¡°Ô Á¤º¸¸¦ Àü´ÞÇØ Áְųª Áú¹®À» ÇÏ´Â ÀåÄ¡À̸ç MessageBox ÇÔ¼ö È£Ãâ ÇѹøÀ¸·Î ºñ±³Àû °£´ÜÇÏ°Ô ¸¸µé ¼ö ÀÖ´Ù. MessageBox ÇÔ¼ö¸¦ º¸ÀÚ.

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

ù¹ø° Àμö hWnd´Â ¸Þ½ÃÁö ¹Ú½ºÀÇ ¿À³Ê(Owner) À©µµ¿ìÀÌ´Ù. ¿À³Ê À©µµ¿ì¶õ ¸Þ½ÃÁö »óÀÚ¸¦ ¼ÒÀ¯ÇÑ À©µµ¿ì¸¦ ¸»ÇÏ¸ç ¸Þ½ÃÁö ¹Ú½º´Â ¿À³Ê À©µµ¿ìÀÇ Áß¾Ó¿¡ ³ªÅ¸³ª¸ç ¸Þ½ÃÁö ¹Ú½º°¡ ¶° ÀÖ´Â µ¿¾È ¿À³Ê À©µµ¿ì´Â »ç¿ëÇÒ ¼ö ¾ø´Â »óÅ°¡ µÈ´Ù. ¸Þ½ÃÁö ¹Ú½º¸¦ ´Ý¾Æ¾ß¸¸ ¿À³Ê À©µµ¿ì¸¦ »ç¿ëÇÒ ¼ö ÀÖ´Ù. µÎ¹ø° Àμö lpText´Â ¸Þ½ÃÁö ¹Ú½º¿¡ Ãâ·ÂÇÒ ¹®ÀÚ¿­ÀÌ¸ç ¼¼¹ø° Àμö lpCaptionÀº ¸Þ½ÃÁö »óÀÚÀÇ Å¸ÀÌƲ ¹Ù¿¡ ³ªÅ¸³¯ Á¦¸ñ ¹®ÀÚ¿­ÀÌ´Ù. ³×¹ø° Àμö uTypeÀº ¸Þ½ÃÁö »óÀÚ¿¡ ¾î¶² Á¾·ùÀÇ ¹öÆ°ÀÌ ³ªÅ¸³¯ °ÍÀΰ¡¸¦ ÁöÁ¤ÇÏ´Â ¿©·¯°¡Áö Ç÷¹±×µéÀÌ¸ç ´ÙÀ½°ú °°Àº °ªµéÀÌ °¡´ÉÇÏ´Ù.

°ª ¼³¸í
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

¿¹¸¦ µé¾î OK, Cancel µÎ °³ÀÇ ¹öÆ°À» ³ªÅ¸³»µµ·Ï ÇÏ°í ¿¡·¯ ¾ÆÀÌÄÜÀ» ³ªÅ¸³»°í ½Í´Ù¸é uType Àμö´Â MB_OKCANCEL | MB_ICONERROR·Î ÁöÁ¤ÇÏ¸é µÈ´Ù. ¸Þ½ÃÁö ¹Ú½º¸¦ Å×½ºÆ®ÇØ º¸±â À§ÇØ GrpahOut ÇÁ·ÎÁ§Æ®¿¡ WM_LBUTTONDOWN ¸Þ½ÃÁö¸¦ »ç¿ëÇÏ¿© ¸¶¿ì½ºÀÇ ¿ÞÂÊ ¹öÆ°ÀÌ ´­·¯Áö¸é ¸Þ½ÃÁö ¹Ú½º¸¦ º¸¿©ÁÖµµ·Ï ÇØ º¸ÀÚ. WndProc¿¡ ´ÙÀ½ ¹®ÀåÀ» Ãß°¡ÇÏ¸é µÈ´Ù.

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));
}

°£´ÜÇÑ Àü´Þ ³»¿ëÀ» ¹®ÀÚ¿­·Î Ãâ·ÂÇϸç OK¹öÆ° Çϳª¸¸ Ç¥½ÃÇÏ¿© ¸Þ½ÃÁö ¹Ú½º¸¦ ´ÝÀ» ¼ö ÀÖµµ·Ï¸¸ ÇÏ¿´´Ù. ½ÇÇàÁßÀÇ ¸ð½ÀÀº ´ÙÀ½°ú °°´Ù.

Àü´Þ»çÇ×À» ´Ü¼øÈ÷ Àü´ÞÇÏ´Â ¿ëµµ ¿Ü¿¡ »ç¿ëÀÚ¿¡°Ô Áú¹®À» ÇÏ°í ´ë´äÀ» ÀԷ¹޴ ¿ëµµ·Îµµ »ç¿ëÇÒ ¼ö ÀÖ´Ù. ÀÌ ¶§´Â ¸Þ½ÃÁö »óÀÚ¸¦ È£ÃâÇÑ ÈÄ »ç¿ëÀÚ°¡ ¾î¶² ¹öÆ°À» ´­·¶´ÂÁö¸¦ »ìÆ캸¸é µÇ´Âµ¥ MessageBox ÇÔ¼ö´Â ¸®ÅÏ°ªÀ¸·Î »ç¿ëÀÚ°¡ ´©¸¥ ¹öÆ°°ªÀ» µ¹·ÁÁØ´Ù.

°ª ¼³¸í
IDABORT Abort¹öÆ°À» ´­·¶´Ù.
IDCANCEL Cancel ¹öÆ°À» ´­·¶´Ù.
IDIGNORE Ignore ¹öÆ°À» ´­·¶´Ù.
IDNO No¹öÆ°À» ´­·¶´Ù.
IDOK OK ¹öÆ°À» ´­·¶´Ù.
IDRETRY Retry ¹öÆ°À» ´­·¶´Ù.
IDYES Yes ¹öÆ°À» ´­·¶´Ù.

¸¸¾à »ç¿ëÀÚ¿¡°Ô °ÔÀÓÀ» °è¼ÓÇÒ °ÍÀΰ¡¸¦ ¹¯°í ½Í´Ù¸é ´ÙÀ½°ú °°ÀÌ Äڵ带 ÀÛ¼ºÇÏ¸é µÈ´Ù.

if (MessageBox(hWnd, "°ÔÀÓÀ» °è¼Ó ÇÏ°Ú½À´Ï±î","Áú¹®",MB_YESNO)==IDYES) {
	// °ÔÀÓ °è¼Ó ó¸®
}
else {
	// °ÔÀÓ ÁßÁö
}

MessageBox ÇÔ¼ö¸¦ È£ÃâÇÏ¿© Áú¹®À» ¸ÕÀú Ç쵂 ¸Þ½ÃÁö ¹Ú½º¿¡´Â Yes, No µÎ °³ÀÇ ¹öÆ°¸¸À» ¹èÄ¡ÇÑ´Ù. ±×¸®°í ±× ¸®ÅÏ°ªÀ» »ìÆ캸°í IDYES°¡ ¸®ÅϵǾúÀ¸¸é, Áï »ç¿ëÀÚ°¡ Yes ¹öÆ°À» ´­·¶À¸¸é °ÔÀÓÀ» °è¼ÓÇϵµ·Ï ÇÏ°í ±×·¸Áö ¾ÊÀ¸¸é °ÔÀÓÀ» ÁßÁöÇϵµ·Ï ÇÏ´Â °ÍÀÌ´Ù. ¸Þ½ÃÁö ¹Ú½º´Â »ç¿ë ¹æ¹ýÀÌ ½±°í °á°ú¸¦ ±Ý¹æ È®ÀÎÇÒ ¼ö Àֱ⠶§¹®¿¡ Ãʺ¸ÀÚÀÇ ½Ç½À¿ëÀ¸·Î ¸¹ÀÌ »ç¿ëµÇ¸ç µð¹ö±ë¿ëÀ¸·Îµµ È°¿ëµÇ°í ÀÖ´Ù.


¸ñ·Ï º¸±â  ´ÙÀ½ °­Á            written by http://www.winapi.co.kr