7-2-³ª. Check

üũ ¹Ú½º¸¦ »ç¿ëÇÏ´Â °£´ÜÇÑ ¿¹Á¦¸¦ ¸¸µé¾î º¸ÀÚ. È­¸é¿¡ »ç°¢ÇüÀ» Çϳª ±×¸®µÇ üũ ¹Ú½ºÀÇ »óÅ¿¡ µû¶ó Ÿ¿øÇüÀ¸·Îµµ ±×¸± ¼ö ÀÖµµ·Ï ÇÒ °ÍÀÌ´Ù. ¶ÇÇÑ ÀÚµ¿ üũ ¹Ú½ºÀÇ »ç¿ë¿¹¸¦ º¸À̱â À§ÇØ ÀÚµ¿ üũ ¹Ú½º°¡ ¼±ÅõǾî ÀÖÀ» °æ¿ì ÇÁ·Î±×·¥ Á¾·á Àü¿¡ ¸Þ½ÃÁö »óÀÚ¸¦ Ãâ·ÂÇØ º¸À̵µ·Ï ÇÑ´Ù. ½Ç¿ë¼ºÀº Çϳªµµ ¾ø´Â ¿¹Á¦ÀÌÁö¸¸ üũ ¹Ú½º¸¦ ¸¸µé°í »ç¿ëÇÏ´Â ¹æ¹ý°ú °¢ üũ ¹Ú½º Á¾·ù¿Í ¿ëµµ¸¦ ¾Ë ¼ö ÀÖÀ» °ÍÀÌ´Ù. ¼Ò½º´Â ´ÙÀ½°ú °°´Ù.

LRESULT CALLBACK WndProc(HWND hWnd,UINT iMessage,WPARAM wParam,LPARAM lParam)
{
	HDC hdc;
	PAINTSTRUCT ps;
	static HWND c1,c2,c3,c4;
	static BOOL ELLIPSE = FALSE;
	switch(iMessage) {
	case WM_CREATE:
		c1=CreateWindow("button","Draw Ellipse?",WS_CHILD | WS_VISIBLE | 
			BS_CHECKBOX,20,20,160,25,hWnd,(HMENU)0,g_hInst,NULL);
		c2=CreateWindow("button","Good bye Message?",WS_CHILD | WS_VISIBLE | 
			BS_AUTOCHECKBOX,20,50,160,25,hWnd,(HMENU)1,g_hInst,NULL);
		c3=CreateWindow("button","3State",WS_CHILD | WS_VISIBLE | BS_3STATE,
			20,80,160,25,hWnd,(HMENU)2,g_hInst,NULL);
		c4=CreateWindow("button","Auto 3State",WS_CHILD | WS_VISIBLE | 
			BS_AUTO3STATE,20,110,160,25,hWnd,(HMENU)3,g_hInst,NULL);
		return 0;
	case WM_COMMAND:
		switch(LOWORD(wParam)) {
		case 0:
			if (SendMessage(c1,BM_GETCHECK,0,0)==BST_UNCHECKED) {
				SendMessage(c1,BM_SETCHECK,BST_CHECKED,0);
				ELLIPSE = TRUE;
			}
			else {
				SendMessage(c1,BM_SETCHECK,BST_UNCHECKED,0);
				ELLIPSE = FALSE;
			}
			InvalidateRect(hWnd, NULL, TRUE);
			break;
		case 2:
			if (SendMessage(c3,BM_GETCHECK,0,0)==BST_UNCHECKED)
				SendMessage(c3,BM_SETCHECK,BST_CHECKED,0);
			else
			if (SendMessage(c3,BM_GETCHECK,0,0)==BST_INDETERMINATE)
				SendMessage(c3,BM_SETCHECK,BST_UNCHECKED,0);
			else
				SendMessage(c3,BM_SETCHECK,BST_INDETERMINATE,0);
			break;
		}
		return 0;
	case WM_PAINT:
		hdc=BeginPaint(hWnd,&ps);
		if (ELLIPSE == TRUE)
			Ellipse(hdc,200,100,400,200);
		else 
			Rectangle(hdc,200,100,400,200);
		EndPaint(hWnd, &ps);
		return 0;
	case WM_DESTROY:
		if (SendMessage(c2,BM_GETCHECK,0,0)==BST_CHECKED)
			MessageBox(hWnd,"Good bye","Check",MB_OK);
		PostQuitMessage(0);
		return 0;
	}
	return(DefWindowProc(hWnd,iMessage,wParam,lParam));
}

4°¡Áö Á¾·ùÀÇ Ã¼Å© ¹Ú½º¸¦ ¸ðµÎ ¸¸µé¾î º¸±â À§ÇØ c1~c4±îÁö ³× °³ÀÇ À©µµ¿ì ÇÚµé º¯¼ö¸¦ ¼±¾ðÇÏ°í WM_CREATE¿¡¼­ üũ ¹Ú½ºÀÇ ½ºÅ¸ÀÏÀ» º¯°æÇØ °¡¸ç 4°³ÀÇ Ã¼Å© ¹Ú½º¸¦ »ý¼ºÇÏ¿´´Ù. ½ÇÇà ÁßÀÇ ¸ð½ÀÀº ´ÙÀ½°ú °°´Ù.

ù¹ø° üũ ¹Ú½ºÀÇ ¼±Åà »óÅ¿¡ µû¶ó »ç°¢ÇüÀÌ ±×·ÁÁö±âµµ ÇÏ°í Ÿ¿øÇüÀÌ ±×·ÁÁö±âµµ ÇÑ´Ù. µÎ¹ø° üũ ¹Ú½º´Â ¼±Åà »óŸ¦ º¯°æÇÏ´Â ½ÃÁ¡¿¡¼­´Â ¾Æ¹«·± µ¿ÀÛµµ ÇÏÁö ¾ÊÁö¸¸ ÀÌ Ã¼Å© ¹Ú½º°¡ ¼±ÅõǾî ÀÖÀ¸¸é ÇÁ·Î±×·¥ Á¾·á Àü¿¡ ¸Þ½ÃÁö ¹Ú½º¸¦ Ãâ·ÂÇϵµ·Ï ÇÏ¿´´Ù. ¼¼¹ø°, ³×¹ø° üũ ¹Ú½º´Â ¸ð¾çÀ» »ìÆ캸±â À§ÇØ ¸¸µé¾î¸¸ ³õ¾ÒÀ¸¸ç ±â´ÉÀº °¡Áö°í ÀÖÁö ¾Ê´Ù. ÄÚµå ºÐ¼®Àº Â÷±ÙÈ÷ ÇØ º¸µµ·Ï ÇÏÀÚ.


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