7-2-´Ù. ÄÁÆ®·ÑÀÇ ¸Þ½ÃÁö

ÄÁÆ®·ÑÀº Àڽſ¡°Ô ¾î¶² º¯È­°¡ ÀÖÀ» ¶§¸¶´Ù ºÎ¸ð À©µµ¿ì·Î ¸Þ½ÃÁö¸¦ º¸³»¸ç ÀÌ ¸Þ½ÃÁö¸¦ ÅëÁö ¸Þ½ÃÁö¶ó°í ºÎ¸¥´Ù. ¿¹¸¦ µé¾î üũ ¹Ú½ºÀÇ °æ¿ì »ç¿ëÀÚ°¡ ¸¶¿ì½º·Î üũ ¹Ú½º¸¦ Ŭ¸¯ÇÒ ¶§¸¶´Ù ºÎ¸ð À©µµ¿ì·Î BN_CLICKED ¸Þ½ÃÁö¸¦ º¸³½´Ù. ÄÁÆ®·ÑÀÌ ºÎ¸ð À©µµ¿ì·Î º¸³»´Â ÅëÁö ¸Þ½ÃÁö¿Í´Â ´Þ¸® ºÎ¸ð À©µµ¿ì°¡ üũ ¹Ú½ºÀÇ ÇöÀç »óŸ¦ ¾Ë¾Æº¸°Å³ª »óŸ¦ ¹Ù²Ù°íÀÚ ÇÒ ¶§µµ Â÷Àϵå À©µµ¿ì·Î ¸Þ½ÃÁö¸¦ º¸³½´Ù. ºÎ¸ð À©µµ¿ì°¡ üũ ¹Ú½º·Î º¸³¾ ¼ö ÀÖ´Â ¸Þ½ÃÁö¿¡´Â ´ÙÀ½ µÎ°¡Áö°¡ ÀÖ´Ù.

¸Þ½ÃÁö ¼³¸í
BM_GETCHECK üũ ¹Ú½º°¡ ÇöÀç üũµÇ¾î ÀÖ´Â »óÅÂÀÎÁö¸¦ Á¶»çÇϸç Ãß°¡Á¤º¸´Â ¾ø´Ù.
BM_SETCHECK üũ ¹Ú½ºÀÇ Ã¼Å© »óŸ¦ º¯°æÇϸç wParam¿¡ º¯°æÇÒ Ã¼Å© »óŸ¦ º¸³»ÁÖ¸é µÈ´Ù.

BM_GETCHECK¿¡ ÀÇÇØ ¸®ÅϵǴ °ª, ¶Ç´Â BM_SETCHECK¿¡ ÀÇÇØ ¼³Á¤µÇ´Â üũ ¹Ú½ºÀÇ »óÅ´ ´ÙÀ½ ¼¼°¡Áö°¡ ÀÖ´Ù.

»ó¼ö ÀǹÌ
BST_CHECKED ÇöÀç üũµÇ¾î ÀÖ´Ù.
BST_UNCHECKED ÇöÀç üũµÇ¾î ÀÖÁö ¾Ê´Ù.
BST_INDETERMINATE üũµµ ¾Æ´Ï°í ¾Èüũµµ ¾Æ´Ñ »óÅÂ

ID 0ÀÇ Ã¼Å© ¹Ú½º°¡ Ŭ¸¯µÇ¾úÀ» ¶§¸¦ ó¸®ÇÏ´Â Äڵ带 º¸ÀÚ. üũ ¹Ú½º°¡ Ŭ¸¯µÇ¸é BN_CLICKED ÅëÁö ¸Þ½ÃÁö°¡ WM_COMMAND ¸Þ½ÃÁö¸¦ ÅëÇØ Àü´ÞµÇ¹Ç·Î WM_COMMAND ¸Þ½ÃÁö¿¡ ÀÌ Äڵ尡 ÀÛ¼ºµÇ¾î ÀÖ´Ù.

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;

ºÎ¸ð À©µµ¿ì´Â ¸ÕÀú BM_GETCHECK ¸Þ½ÃÁö¸¦ c1üũ ¹Ú½º·Î º¸³» ÇöÀç üũ ¹Ú½ºÀÇ »óŸ¦ Á¶»çÇØ º»´Ù. ±×¸®°í ±× °ªÀÌ BST_UNCHECKED Áï ÇöÀç üũµÇ¾î ÀÖÁö ¾ÊÀ¸¸é BM_SETCHECKED ¸Þ½ÃÁö¸¦ ´Ù½Ã º¸³» üũ ¹Ú½º¿¡ üũ Ç¥½Ã¸¦ Çϵµ·Ï ¸í·ÉÇÑ´Ù. À̶§ wParamÀ¸·Î üũ Ç¥½Ã¸¦ Ç϶ó´Â ÀǹÌÀÇ BST_CHECKED°¡ Àü´ÞµÇ¾ú´Ù. ¸¸¾à BST_UNCHECKED°¡ ¾Æ´Ï¸é, Áï ÇöÀç üũµÇ¾î ÀÖÀ¸¸é üũ Ç¥½Ã¸¦ ÇØÁ¦Çϵµ·Ï ¸Þ½ÃÁö¸¦ º¸³½´Ù. ¶ÇÇÑ Á¶»çµÈ üũ ¹Ú½ºÀÇ »óÅ¿¡ µû¶ó ELLIPSE º¯¼ö°ªÀ» TRUE³ª FALSE·Î º¯°æÇϵµ·Ï Çϸç InvalidateRect ÇÔ¼ö¸¦ È£ÃâÇÏ¿© WM_PAINT ¸Þ½ÃÁö¸¦ ¹ß»ý½ÃÅ°´Âµ¥ WM_PAINT ¸Þ½ÃÁö¿¡¼­´Â ELLIPSE º¯¼öÀÇ °ª¿¡ µû¶ó »ç°¢ÇüÀ̳ª Ÿ¿øÀ» ±×¸®°Ô µÈ´Ù. µû¶ó¼­ »ç¿ëÀÚ°¡ ÀÌ Ã¼Å© ¹Ú½º¸¦ Ŭ¸¯ÇÒ ¶§¸¶´Ù üũ¹Ú½ºÀÇ »óÅ°¡ Åä±ÛµÇ¸ç È­¸é»óÀÇ »ç°¢Çü/Ÿ¿øÇüÀÌ °è¼Ó ±³Ã¼µÈ´Ù.

ºÎ¸ð À©µµ¿ì¿Í ÀÚ½Ä À©µµ¿ì´Â ÀÌ·± ½ÄÀ¸·Î ¸Þ½ÃÁö¸¦ ÅëÇØ ¼­·ÎÀÇ »óŸ¦ ¾Ë¸®°Å³ª º¯°æÇϵµ·Ï Áö½ÃÇÑ´Ù.

ID 2ÀÇ Ã¼Å© ¹Ú½º´Â BS_3STATE ½ºÅ¸ÀÏ·Î »ý¼ºµÇ¾úÀ¸¹Ç·Î ¼¼°¡Áö »óŸ¦ °¡Áú ¼ö ÀÖÀ¸¸ç ¼öµ¿ üũ ¹Ú½ºÀ̱⠶§¹®¿¡ ID 0ÀÇ Ã¼Å© ¹Ú½º¿Í ¸¶Âù°¡Áö·Î BN_CLICKED ÅëÁö ¸Þ½ÃÁö°¡ ¹ß»ýÇßÀ» ¶§ üũ »óŸ¦ º¯°æÇØ ÁÖµµ·Ï ÇØ ÁÖ¾î¾ß ÇÑ´Ù.

¹Ý¸é ID 1°ú ID 3ÀÇ Ã¼Å© ¹Ú½º´Â ÀÚµ¿ üũ ¹Ú½ºÀ̱⠶§¹®¿¡ ÀÌ·± Äڵ带 ÀÛ¼ºÇÏÁö ¾Ê¾Æµµ À©µµ¿ìÁî°¡ ¾Ë¾Æ¼­ üũ ¹Ú½ºÀÇ »óŸ¦ º¯°æÇØ ÁØ´Ù. ÀÌ·¸°Ô º¯°æµÈ °ªÀº üũ ¹Ú½ºÀÇ »óÅ°¡ ÇÊ¿äÇÒ ¶§¸¸ BM_GETCHECK ¸Þ½ÃÁö¸¦ º¸³» »óŸ¦ ¾Ë¾Æ º¸±â¸¸ ÇÏ¸é µÇ¸ç üũ ¹Ú½º°ªÀÌ º¯°æµÉ ¶§¸¶´Ù ¾î¶² 󸮸¦ ÇØ ÁÙ ÇÊ¿ä´Â ¾ø´Ù. ÀÌ ¿¹Á¦ÀÇ °æ¿ì ID 1ÀÇ Ã¼Å© ¹Ú½º »óÅ´ Á¾·á½Ã¿¡¸¸ »ç¿ëµÇ¹Ç·Î Á¾·á Á÷Àü¿¡¸¸ °ªÀ» °Ë»çÇÏ¿© üũµÇ¾î ÀÖÀ¸¸é ¸Þ½ÃÁö ¹Ú½º¸¦ Ãâ·ÂÇÏ°í ±×·¸Áö ¾ÊÀ¸¸é ±×³É ÇÁ·Î±×·¥À» Á¾·áÇÏ¸é µÈ´Ù.

	case WM_DESTROY:
		if (SendMessage(c2,BM_GETCHECK,0,0)==BST_CHECKED)
			MessageBox(hWnd,"Good bye","Check",MB_OK);
		PostQuitMessage(0);
		return 0;

ID 0ÀÇ ¼öµ¿ üũ ¹Ú½º´Â üũ »óÅ°¡ º¯°æµÉ ¶§¸¶´Ù ELLIPSE º¯¼ö°ªÀ» º¯°æÇØ ÁÖ¾î¾ß ÇÏ°í ¶ÇÇÑ È­¸éÀ» ´Ù½Ã ±×·Á¾ß ÇϹǷΠÀÚµ¿ üũ ¹Ú½º ½ºÅ¸ÀÏÀº ºÎÀû´çÇÏ´Ù.


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