6-1-´Ù. »ö»ó

Àá½Ã ÈÄ¿¡ ´Ù¾çÇÑ »ö»ó°ú ¸ð¾çÀÇ Ææ, ºê·¯½Ã¸¦ ¸¸µé¾î º¼ÅÙµ¥ ±× Àü¿¡ À©µµ¿ìÁî¿¡¼­ »ö»óÀ» Ç¥ÇöÇÏ´Â ¹æ¹ý¿¡ ´ëÇØ ¾Ë¾Æº¸ÀÚ. µµ½º¿¡¼­´Â WHITE, YELLOW, RED µîÀÇ ¸ÅÅ©·Î »ó¼ö·Î »ö»óÀ» Ç¥ÇöÇß°í ÀÌ ¸ÅÅ©·ÎµéÀÇ ½ÇÁ¦°ªÀº 0~15±îÁöÀÇ Á¤¼ö¿´¾ú´Ù. µµ½º¿¡¼­¾ß ±â²¯ 16»ö»ó±îÁö »ç¿ëÇÒ ¼ö ÀÖ¾úÀ¸¹Ç·Î °¢ »ö»ó¸¶´Ù À̸§À» ÁÙ ¼ö ÀÖ¾úÁö¸¸ ÃÖ´ë õÀ°¹é¸¸°¡Áö »ö»óÀ» »ç¿ëÇÒ ¼ö ÀÖ´Â À©µµ¿ìÁî ȯ°æ¿¡¼­´Â ÀÌ·± °£´ÜÇÑ ¹æ¹ýÀ» ¾µ ¼ö ¾ø´Ù. À©µµ¿ìÁî¿¡¼­´Â »ö»ó°ªÀ» Ç¥ÇöÇϱâ À§ÇØ COLORREF¶ó´Â µ¥ÀÌÅÍÇüÀ» »ç¿ëÇϴµ¥ ÀÌ´Â ´ÙÀ½°ú °°ÀÌ Á¤ÀǵǾî ÀÖ´Ù.

typedef DWORD COLORREF;

º¸´Ù½ÃÇÇ COLORREF ÇüÀº ºÎÈ£¾ø´Â 32ºñÆ® Å©±âÀÇ Á¤¼öÇüÀ̸ç 8ºñÆ®¾¿ »¡°£»ö, ÃÊ·Ï»ö, ÆĶõ»öÀÇ ³óµµ¸¦ ³ªÅ¸³»¸ç »óÀ§ 8ºñÆ®´Â »ç¿ëµÇÁö ¾Ê´Â´Ù. °¢ »ö»ó ¿ä¼Ò´Â 1¹ÙÀÌÆ®ÀÇ Å©±â¸¦ °¡Áö¹Ç·Î 0~255±îÁöÀÇ ³óµµ¸¦ Ç¥ÇöÇÒ ¼ö ÀÖ´Ù.

COLORREFÇüÀº 32ºñÆ® Á¤¼öÀÏ »ÓÀ̹ǷΠÁ÷Á¢ 16Áø¼ö·Î Ç¥ÇöÇÒ ¼öµµ ÀÖ´Ù. ¿¹¸¦ µé¾î 0´Â °ËÁ¤»öÀÌ µÇ¸ç 0xff´Â »¡°£»ö, 0xff0000Àº ÆĶõ»öÀÌ µÈ´Ù. ÇÏÁö¸¸ ÀÌ ¹æ¹ýÀº ³Ê¹« ±â°èÀûÀÌ°í Ãʺ¸ÀÚ°¡ ¾²±â´Â Èûµé¹Ç·Î »ö»ó°ªÀ» ¸¸µé ¶§´Â Åë»ó RGB ¸ÅÅ©·Î ÇÔ¼ö¸¦ »ç¿ëÇϸç ÀÌ ¸ÅÅ©·Î´Â ´ÙÀ½°ú °°ÀÌ Á¤ÀǵǾî ÀÖ´Ù.

#define RGB(r,g,b)          ((COLORREF)(((BYTE)(r) | ((WORD)((BYTE)(g))<<8)) | (((DWORD)(BYTE)(b))<<16)))

¼¼ °³ÀÇ Àμö¸¦ °¡Áö´Âµ¥ °¢°¢ »¡°£»ö, ÃÊ·Ï»ö, ÆĶõ»öÀÇ ³óµµÀ̸ç ÀÌ ¼¼°ªÀ» Á¶¸³ÇÏ¿© ÇϳªÀÇ 32ºñÆ® »ö»ó°ªÀ» ¸¸µé¾î³»´Â °£´ÜÇÑ ºñÆ® ¿¬»êÀ» ÇÏ°í ÀÖ´Ù. ºñÆ® ½¬ÇÁÆ®, ºñÆ® OR ¿¬»êÀÚ¸¦ ÀûÀýÈ÷ È¥ÇÕÇÑ ¹®ÀåÀε¥ ±×¸® ¾î·ÆÁö ¾Ê°Ô ÀÌÇØ°¡ µÉ °ÍÀÌ´Ù.

°¢ »ö»ó ¿ä¼Ò°¡ ¾ó¸¶¸¸Å­ È¥ÇյǾî Àִ°¡¿¡ µû¶ó ½ÇÁ¦ »ö»óÀÌ °áÁ¤µÇ´Âµ¥ RGB(255,0,0)´Â »¡°£»ö, RGB(0,0,255)´Â ÆĶõ»öÀÌ´Ù. ¼¼ ¿ä¼Ò°¡ ¸ðµÎ ´Ù ÃÖ´ëÄ¡ÀÎ RGB(255,255,255)´Â Èò»öÀÌ¸ç ¹Ý´ë·Î RGB(0,0,0)´Â °ËÁ¤»öÀÌ´Ù. À©µµ¿ìÁî¿¡¼­´Â ÀÌ¿Í°°ÀÌ RGB ¸ÅÅ©·Î¸¦ »ç¿ëÇÏ¿© »ö»ó°ªÀ» Ç¥ÇöÇϸç COLORREF ÇüÀÇ Àμö ÀÚ¸®¿¡´Â RGB ¸ÅÅ©·Î¸¦ »ç¿ëÇÏ¸é µÈ´Ù. ´ÙÀ½ ¼¼ ¸ÅÅ©·Î ÇÔ¼ö´Â COLORREF Çü º¯¼ö°ª¿¡¼­ °¢ »ö»ó¿ä¼ÒÀÇ ³óµµ¸¦ ºÐ¸®Çس»´Â ÇÔ¼öÀÌ´Ù.

#define GetRValue(rgb)      ((BYTE)(rgb))
#define GetGValue(rgb)      ((BYTE)(((WORD)(rgb)) >> 8))
#define GetBValue(rgb)      ((BYTE)((rgb)>>16))


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