Windows ÄÁÆ®·Ñ¿¡ ´ë ÇÑ TN062: ¸Þ½ÃÁö ¸®Ç÷º¼Ç

ÀÌ ±â¼ú ³ëÆ® ¸Þ½ÃÁö ¹Ý»ç¸¦, MFC 4.0ÀÇ »õ·Î¿î ±â´É¿¡ ¼³¸íÇÕ´Ï´Ù. ±×°ÍÀº ¶ÇÇÑ ¸Þ½ÃÁö ¸®Ç÷º¼ÇÀ» »ç¿ë ÇÏ ¿© °£´ÜÇÑ Àç»ç¿ë °¡´ÉÇÑ ÄÁÆ®·ÑÀ» ¸¸µé±â À§ÇÑ ÁöħÀ» Æ÷ÇÔ¡£

ÀÌ ±â¼ú ³ëÆ®´Â ActiveX ÄÁÆ®·Ñ (ÀÌÀüÀÇ OLE ÄÁÆ®·Ñ)¿¡ Àû¿ë ¸Þ½ÃÁö ¹Ý»ç¸¦ ¼³¸í ÇÏÁö ¾Ê½À´Ï´Ù. ¹®¼­¸¦ ÂüÁ¶ ÇϽʽÿÀ ActiveX ÄÁÆ®·Ñ: Windows ÄÁÆ®·ÑÀ» ¼­ºêŬ·¡½ÌÇÏ ¸é Visual c + + ÇÁ·Î±×·¡¸Ó °¡À̵塣

¸Þ½ÃÁö ¸®Ç÷º¼Ç ¹«¾ùÀԴϱî?

Windows ÄÁÆ®·ÑÀº ÀÚÁÖ ±×µéÀÇ ºÎ¸ð â¿¡ ¾Ë¸² ¸Þ½ÃÁö¸¦ º¸³À´Ï´Ù. ¿¹¸¦ µé¾î, ¸¹Àº ÄÁÆ®·Ñ ÄÁÆ®·Ñ »ö ¾Ë¸² ¸Þ½ÃÁö º¸³»±â (WM_CTLCOLOR ¶Ç´Â ±× º¯Á¾ Áß Çϳª) ºÎ¸ð ±×¸² ÄÁÆ®·ÑÀÇ ¹è°æ ºê·¯½Ã¸¦ Á¦°øÇÒ ¼ö ÀÖµµ·Ï ±×µéÀÇ ºÎ¸ð¡£

Windows ¹× MFC ¹öÀü 4.0 ÀÌÀü¿¡ Á¾Á¾ ´ëÈ­ »óÀÚÀÇ ºÎ¸ð âÀÌÀÔ´Ï´Ù ÀÌ·¯ÇÑ ¸Þ½ÃÁö¸¦ ó¸® ÇÏ´Â ÀÛ¾÷À» ´ã´ç ÇÕ´Ï´Ù. ÀÌ ¸Þ½ÃÁö¸¦ ó¸® Çϱâ À§ÇÑ ÄÚµå ºÎ¸ð â Ŭ·¡½º¿¡ ÇÊ¿ä ÇÏ °í ÇØ´ç ¸Þ½ÃÁö¸¦ ó¸® ÇØ¾ß ÇÏ´Â ¸ðµç Ŭ·¡½º¿¡¼­ Áߺ¹ µÉ ¼ö ÀÖÀ½À» ÀÇ¹Ì ÇÕ´Ï´Ù. À§ÀÇ °æ¿ì¿¡¼­ ¹è°æ »ç¿ëÀÚ Á¤ÀÇ ÄÁÆ®·ÑÀ» ¿øÇÏ´Â ¸ðµç ´ëÈ­ »óÀÚ ÄÁÆ®·Ñ Ä÷¯ ¾Ë¸² ¸Þ½ÃÁö¸¦ ó¸® ÇØ¾ß ÇÕ´Ï´Ù. Control Ŭ·¡½º´Â ÀÚü ¹è°æ»öÀ» ó¸®ÇÒ °Í À̶ó°í ¾µ ¼ö ÀÖÀ¸¸é Äڵ带 Àç»ç¿ë Çϱâ ÈξÀ ½¬¿ï °Í¡£

MFC 4.0¿¡¼­ ¿À·¡ µÈ ¸ÞÄ¿´ÏÁò ¿©ÀüÈ÷ ÀÛµ¿-ºÎ¸ð windows ¾Ë¸² ¸Þ½ÃÁö¸¦ ó¸®ÇÒ ¼ö ÀÖ½À´Ï´Ù. ±×·¯³ª ¶ÇÇÑ,, MFC 4.0 ¿ëÀÌ Àç»ç¿ë "¸Þ½ÃÁö ¸®Ç÷º¼Ç" À̶ó´Â ±â´ÉÀ» Á¦°ø ÇÏ ¿© ÀÌ·¯ÇÑ ¾Ë¸² ¸Þ½ÃÁö¸¦ ÀÚ½Ä ÄÁÆ®·Ñ âÀÌ ³ª ºÎ¸ð â ¶Ç´Â µÑ ´Ù¿¡¼­ ó¸®ÇÒ ¼ö ÀÖµµ·Ï ÇÕ´Ï´Ù. ÄÁÆ®·Ñ ¹è°æ »ö ¿¹Á¦¿¡¼­ ¹Ý»ç WM_CTLCOLOR ¸Þ½ÃÁö¸¦ ó¸® ÇÏ ¿© ÀÚü ¹è°æ»öÀ» ¼³Á¤ ÇÏ´Â ÄÁÆ®·Ñ Ŭ·¡½º ÀÌÁ¦ ÀÛ¼ºÇÒ ¼ö ÀÖ½À´Ï´Ù-¸ðµç ºÎ¸ð¿¡ ÀÇÁ¸ ÇÏÁö ¾Ê°í. (Note´Â ¸Þ½ÃÁö ¹Ý»ç´Â MFC¿¡¼­ ±¸Çö ÇÏÁö Windows¿¡ ÀÇÇØ ºÎ¸ð â Ŭ·¡½º¿¡¼­¿¡¼­ ÆÄ»ý µÇ¾î¾ß ÇÕ´Ï´Ù CWnd ¸Þ½ÃÁö ¹Ý»ç¿¡ ´ë ÇÑ ÀÛµ¿ ÇÕ´Ï´Ù.)

ÀÌÀü ¹öÀüÀÇ MFC ¸Þ½ÃÁö ¸®Ç÷º¼Ç ºñ½ÁÇÑ ¼ÒÀ¯ÀÚ°¡ ±×¸° ¸ñ·Ï »óÀÚ (WM_DRAWITEM, ±×¸®°í ±âŸ µîµî)¿¡ ´ë ÇÑ ¸Þ½ÃÁö¿Í °°Àº ¸î °¡Áö ¸Þ½ÃÁö¿¡ ´ë ÇÑ °¡»ó ÇÔ¼ö¸¦ Á¦°ø ÇÏ ¿© ¾Ê¾Ò´Ù. »õ ¸Þ½ÃÁö ¸®Ç÷º¼Ç ¸ÞÄ¿´ÏÁòÀº ÀϹÝÈ­ ÇÏ °í Àϰü¼º Àִ¡£

¸Þ½ÃÁö ¹Ý»ç´Â MFC ¹öÀü 4.0 ÀÌÀü¿¡ ÀÛ¼º µÈ Äڵ忡 ´ë ÇÑ ¿ª¹æÇâ ȣȯ¡£

ƯÁ¤ ¸Þ½ÃÁö¿¡ ´ë ÇÑ Ã³¸®±â¸¦ Á¦°ø ÇØ¾ß ¶Ç´Â ¹«½Ã µË´Ï´Ù ¸Þ½ÃÁö¸¦ ºÎ¸ð â Ŭ·¡½ºÀÇ ¹üÀ§¿¡ ´ë ÇÑ ÀÚ½ÅÀÇ Ã³¸®±â¿¡¼­ ±âº» Ŭ·¡½º 󸮱â ÇÔ¼ö¸¦ È£Ãâ ÇÏÁö ¾Ê½À´Ï´Ù Á¦°ø µ¿ÀÏÇÑ ¸Þ½ÃÁö¿¡ ´ë ÇÑ ¸Þ½ÃÁö 󸮱⸦ ¹Ý¿µ ÇÕ´Ï´Ù. ¿¹¸¦ µé¾î, ´ëÈ­ »óÀÚ Å¬·¡½º¿¡ WM_CTLCOLOR ¸¦ ó¸® ÇÏ´Â °æ¿ì ±ÍÇÏÀÇ Ã³¸® µ¤¾î ¸®Ç÷º¼ÇµÈ ¸Þ½ÃÁö 󸮱⡣

ºÎ¸ð â Ŭ·¡½º¿¡¼­ ƯÁ¤ WM_NOTIFY ¸Þ½ÃÁö ¶Ç´Â WM_NOTIFY ¸Þ½ÃÁö ¹üÀ§¿¡ ´ë ÇÑ Ã³¸®±â¸¦ Á¦°ø ÇÏ´Â °æ¿ì ÇØ´ç ¸Þ½ÃÁö¸¦ Àü¼Û ÇÏ´Â ÀÚ½Ä ÄÁÆ®·Ñ¿¡´Â ON_NOTIFY_REFLECT()¸¦ ÅëÇØ ¹Ý¿µ µÈ ¸Þ½ÃÁö 󸮱⸦ ÇÏ´Â °æ¿ì¿¡ 󸮱â È£Ã⠵˴ϴÙ. ON_NOTIFY_REFLECT_EX() ¸¦ »ç¿ë ÇÏ ¿© ¸Þ½ÃÁö ¸Ê¿¡¼­ ¸Þ½ÃÁö 󸮱⠼öµµ ºÎ¸ð â ¸Þ½ÃÁö¸¦ ó¸®ÇÒ ¼ö ¾ø½À´Ï´Ù. 󸮱⿡¼­ TRUE¸¦ ¹Ýȯ ÇÏ´Â °æ¿ì ¸Þ½ÃÁö FALSE Çã¿ë ÇÏÁö ¾Ê´Â ±×°ÍÀ» ó¸® Çϱâ À§ÇØ ºÎ¸ð¸¦ ¹Ýȯ Çϴ ȣÃâ ÇÏ´Â µ¿¾È »Ó¸¸ ¾Æ´Ï¶ó, ºÎ¸ð¿¡ ÀÇÇØ ó¸® µË´Ï´Ù. Âü°í ¾Ë¸² ¸Þ½ÃÁö Àü¿¡ ¸®Ç÷º¼ÇµÈ ¸Þ½ÃÁö 󸮡£

WM_NOTIFY ¸Þ½ÃÁö¸¦ º¸³¾ ¶§ ÄÁÆ®·Ñ ó¸® ù ¹øÂ° ±âȸ°¡ Á¦°ø µË´Ï´Ù. ´Ù¸¥ ¸®Ç÷º¼ÇµÈ ¸Þ½ÃÁö¸¦ Àü¼Û ÇÏ´Â °æ¿ì ºÎ¸ð â¿¡ ±×°ÍÀ» ó¸® Çϴ ù ¹øÂ° ±âȸ¿Í ÄÁÆ®·Ñ ¸®Ç÷º¼ÇµÈ ¸Þ½ÃÁö¸¦ ¹Þ°Ô µË´Ï´Ù. ÀÌ·¸°Ô ÇÏ·Á¸é 󸮱â ÇÔ¼ö ¹× ÄÁÆ®·ÑÀÇ Å¬·¡½º ¸Þ½ÃÁö ¸Ê¿¡¼­ ÀûÀý ÇÑ Ç׸ñÀÌ ÇÊ¿ä ÇÕ´Ï´Ù.

¸®Ç÷º¼ÇµÈ ¸Þ½ÃÁö¿¡ ´ë ÇÑ ¸Þ½ÃÁö ¸Ê ¸ÅÅ©·Î ÀÏ¹Ý ¾Ë¸² °Í º¸´Ù ¾à°£ ´Ù¸¥: ±×°ÍÀº _REFLECT ÀÇ ÀϹÝÀûÀÎ À̸§¿¡ Ãß°¡ ÇÕ´Ï´Ù. ¿¹¸¦ µé¾î, ºÎ¸ð¿¡¼­ WM_NOTIFY ¸Þ½ÃÁö¸¦ ó¸® ÇÏ·Á¸é »óÀ§ÀÇ ¸Þ½ÃÁö ¸Ê¿¡ ON_NOTIFY ¸ÅÅ©·Î »ç¿ë Çϸé. ÀÚ½Ä ÄÁÆ®·Ñ¿¡ ¸®Ç÷º¼ÇµÈ ¸Þ½ÃÁö¸¦ ó¸® ÇÏ·Á¸é ON_NOTIFY_REFLECT ¸ÅÅ©·Î »ç¿ë ÇÏ ¿© ÀÚ½Ä ÄÁÆ®·ÑÀÇ ¸Þ½ÃÁö ¸Ê¿¡ ÀÖ½À´Ï´Ù. ¾î¶² °æ¿ì¿¡ ¸Å°³ º¯¼ö´Â ´Ù¸¥, »Ó¸¸ ¾Æ´Ï¶ó. Âü°í ClassWizard ¼ö ÀÖ½À´Ï´Ù ÀϹÝÀûÀ¸·Î ´ç½Å¿¡ ´ë ÇÑ ¸Þ½ÃÁö ¸Ê Ç׸ñÀ» Ãß°¡ ÇÏ °í ¿Ã¹Ù¸¥ ¸Å°³ º¯¼ö¸¦ °¡Áø »À´ë ÇÔ¼ö ±¸ÇöÀ» Á¦°øÇÕ´Ï´Ù¡£

ÂüÁ¶ TN061: ON_NOTIFY WM_NOTIFY ¸Þ½ÃÁö »õ·Î¿î WM_NOTIFY ¸Þ½ÃÁö¿¡ ´ë ÇÑ Á¤º¸¡£

¸Þ½ÃÁö ¸Ê Ç׸ñ ¹× ¸®Ç÷º¼ÇµÈ ¸Þ½ÃÁö 󸮱â ÇÔ¼ö ÇÁ·ÎÅäŸÀÔ

¸Þ½ÃÁö ¸Ê ¸ÅÅ©·Î ¹× ÇÔ¼ö ÇÁ·ÎÅäŸÀÔ ¾Æ·¡ Å×ÀÌºí¿¡ ³ª¿­ µÈ »ç¿ë ÇÏ´Â ¿© ¹Ý»ç ÄÁÆ®·Ñ ¾Ë¸² ¸Þ½ÃÁö¸¦ ó¸® ÇÏ·Á¸é¡£

ClassWizard ÀϹÝÀûÀ¸·Î ´ç½ÅÀ» À§ÇØ ÀÌ·¯ÇÑ ¸Þ½ÃÁö ¸Ê Ç׸ñÀ» Ãß°¡ ÇÏ °í »À´ë ÇÔ¼ö ±¸ÇöÀ» Á¦°øÇÒ ¼ö ÀÖ½À´Ï´Ù. ÂüÁ¶ ¸Þ½ÃÁö¸¦ ¹Ý¿µ¿¡ ´ë ÇÑ Ã³¸®±â¸¦ Á¤ÀÇ ÇÏ´Â ¹æ¹ý¿¡ ´ë ÇÑ ³»¿ëÀº Visual c + + ÇÁ·Î±×·¡¸Ó °¡ÀÌµå ¿¡ ¹Ý¿µ ÇÏ´Â ¸Þ½ÃÁöÀÇ ¸Þ½ÃÁö 󸮱â Á¤ÀÇ¡£

¸Þ½ÃÁö À̸§¿¡¼­ ¹Ý¿µ µÈ ¸ÅÅ©·Î À̸§À¸·Î º¯È¯ ÇÏ·Á¸é ON_ ¾Õ¿¡ Ãß°¡ ÇÏ °í _REFLECT¸¦ Ãß°¡ ÇÕ´Ï´Ù. ¿¹¸¦ µé¾î, WM_CTLCOLOR ON_WM_CTLCOLOR_REFLECTµË´Ï´Ù. (¸Þ½ÃÁö¸¦ ¹Ý¿µ ÇϽʽÿÀ ¾Æ·¡ Å×À̺íÀÇ ¸ÅÅ©·Î Ç׸ñ¿¡ ¹Ý´ëÀÇ º¯È¯À» ÇÒ.)

À§ÀÇ ±ÔÄ¢¿¡´Â ¼¼ °¡Áö ¿¹¿Ü°¡ ´ÙÀ½°ú °°½À´Ï´Ù.:

°¢ À§ÀÇ Æ¯º° ÇÑ °æ¿ì 󸮱⠸â¹ö ÇÔ¼ö À̸§À» ÁöÁ¤ ÇØ¾ß ÇÕ´Ï´Ù. ´Ù¸¥ °æ¿ì¿¡ 󸮱â ÇÔ¼ö¿¡ ´ë ÇÑ Ç¥ÁØ À̸§À» »ç¿ë ÇØ¾ß ÇÕ´Ï´Ù.

¸Å°³ º¯¼öÀÇ ÀÇ¹Ì ¹× ÇÔ¼ö ¹Ýȯ °ª ÇÔ¼ö À̸§ ¶Ç´Â ÇÔ¼ö À̸§¿¡ ¾ÕÀ¸·Î ³ª¿Í. ¿¹¸¦ µé¾î, CtlColor Àº OnCtlColor¿¡¼­ ¼³¸í µË´Ï´Ù. ¿©·¯ ¸®Ç÷º¼ÇµÈ ¸Þ½ÃÁö 󸮱⠺θð â¿¡¼­ À¯»çÇÑ Ã³¸®±â º¸´Ù ÀûÀº ¸Å°³ º¯¼ö°¡ ÇÊ¿äÇÕ´Ï´Ù. ±×³É ¹®¼­¿¡ Çü½Ä ¸Å°³ º¯¼öÀÇ À̸§À¸·Î ¾Æ·¡ Å×ÀÌºí¿¡ ÀÖ´Â À̸§°ú ÀÏÄ¡¡£

¸Ê Ç׸ñ ÇÔ¼ö ÇÁ·ÎÅäŸÀÔ
ON_CONTROL_REFLECT ( wNotifyCode, memberFxn ) void afx_msgmemberFxn ( );
ON_NOTIFY_REFLECT ( wNotifyCode, memberFxn ) void afx_msgmemberFxn(NMHDR * pNotifyStruct, LRESULT * °á°ú );
ON_UPDATE_COMMAND_UI_REFLECT ( memberFxn ) void afx_msgmemberFxn(CCmdUI * pCmdUI );
ON_WM_CTLCOLOR_REFLECT) afx_msg HBRUSH CtlColor (CDC * pDC, UINT nCtlColor );
ON_WM_DRAWITEM_REFLECT) afx_msg DrawItem ¹«È¿ (LPDRAWITEMSTRUCT lpDrawItemStruct );
ON_WM_MEASUREITEM_REFLECT) afx_msg MeasureItem ¹«È¿ (LPMEASUREITEMSTRUCT lpMeasureItemStruct );
ON_WM_DELETEITEM_REFLECT) afx_msg DeleteItem ¹«È¿ (LPDELETEITEMSTRUCT lpDeleteItemStruct );
ON_WM_COMPAREITEM_REFLECT) afx_msg int CompareItem (LPCOMPAREITEMSTRUCT lpCompareItemStruct );
ON_WM_CHARTOITEM_REFLECT) afx_msg int CharToItem (UINT nKey, UINT nIndex );
ON_WM_VKEYTOITEM_REFLECT) afx_msg int VKeyToItem (UINT nKey, UINT nIndex );
ON_WM_HSCROLL_REFLECT) afx_msg HScroll ¹«È¿ (UINT nSBCode, UINT Npo );
ON_WM_VSCROLL_REFLECT) afx_msg VScroll ¹«È¿ (UINT nSBCode, UINT Npo );
ON_WM_PARENTNOTIFY_REFLECT) afx_msg ParentNotify ¹«È¿ (UINT ¸Þ½ÃÁö, LPARAM lParam );

ON_NOTIFY_REFLECT ¹× ON_CONTROL_REFLECT ¸ÅÅ©·Î µÑ ÀÌ»óÀÇ °³Ã¼ (¿¹: ÄÁÆ®·Ñ ¹× ºÎ¸ð) ÁöÁ¤µÈ µÈ ¸Þ½ÃÁö¸¦ ó¸®ÇÒ ¼ö ÀÖ°Ô ÇÏ´Â º¯Çü¡£

¸Ê Ç׸ñ ÇÔ¼ö ÇÁ·ÎÅäŸÀÔ
ON_NOTIFY_REFLECT_EX ( wNotifyCode, memberFxn ) BOOL afx_msgmemberFxn(NMHDR * pNotifyStruct, LRESULT * °á°ú );
ON_CONTROL_REFLECT_EX ( wNotifyCode, memberFxn ) BOOL afx_msgmemberFxn ( );

ó¸® ¸®Ç÷º¼Ç ¸Þ½ÃÁö: Àç»ç¿ë °¡´ÉÇÑ ÄÁÆ®·ÑÀÇ ¿¹

ÀÌ °£´ÜÇÑ ¿¹Á¦ ¶ó´Â Àç»ç¿ë °¡´ÉÇÑ ÄÁÆ®·ÑÀ» ¸¸µì´Ï´Ù CYellowEdit . ÄÁÆ®·Ñ ³ë¶õ»ö ¹è°æ¿¡ °ËÁ¤ ÅØ½ºÆ®¸¦ Ç¥½Ã ÇÑ´Ù´Â Á¡À» Á¦¿Ü Çϸé ÀÏ¹Ý ÆíÁý Á¦¾î¿Í µ¿ÀÏ ÇÏ °Ô ÀÛµ¿ ÇÕ´Ï´Ù. ¼ö ÀÖµµ·Ï ÇÏ´Â ¸â¹ö ÇÔ¼ö¸¦ Ãß°¡ ÇÏ´Â °ÍÀº ½¬¿ï °Í ÀÌ´Ù´Â CYellowEdit ´Ù¸¥ »öÀ» Ç¥½Ã ÇÏ´Â ÄÁÆ®·Ñ¡£

ÀÌ ¿¹Á¦¸¦ ½ÇÇà ÇÏ·Á¸é ´ÙÀ½ ´Ü°è¸¦ ¼öÇà ÇÕ´Ï´Ù.:

  1. ±âÁ¸ ÀÀ¿ë ÇÁ·Î±×·¥¿¡¼­ »õ ´ëÈ­ »óÀÚ¸¦ ¸¸µì´Ï´Ù. ÀÚ¼¼ÇÑ ³»¿ëÀº ÂüÁ¶ Visual c + + »ç¿ëÀÚ °¡ÀÌµå ¿¡¼­ ´ëÈ­ »óÀÚ ÆíÁý±â¡£

    Àç»ç¿ë °¡´ÉÇÑ ÄÁÆ®·ÑÀ» °³¹ß ÇÏ´Â ÀÀ¿ë ÇÁ·Î±×·¥ÀÌ ÀÖ¾î¾ß ÇÕ´Ï´Ù. Appwizard¸¦ »ç¿ë ÇÏ ¿© ´ëÈ­ »óÀÚ ±â¹Ý ÀÀ¿ë ÇÁ·Î±×·¥ ¸¸µé±â¸¦ »ç¿ë ÇÏ´Â ±âÁ¸ ÀÀ¿ë ÇÁ·Î±×·¥¿¡ ¾ø´Â °æ¿ì¡£

  2. Visual c + +¿¡ ·Îµå µÈ ÇÁ·ÎÁ§Æ®¿Í ClassWizard ¶ó´Â »õ Ŭ·¡½º¸¦ ¸¸µé±â¸¦ »ç¿ë ÇÏ ¿© CYellowEdit CEdit¿¡ ±â¹Ý ÇÕ´Ï´Ù. üũ "±¸¼º ¿ä¼Ò °¶·¯¸®¿¡ Ãß°¡" »óÀÚ¸¦ µÎ°í¡£

  3. ¼¼ °³ÀÇ ¸â¹ö º¯¼ö¸¦ Ãß°¡ ±ÍÇÏÀÇ CYellowEdit Ŭ·¡½º. óÀ½ µÎ COLORREF ÀúÀåÇÒ º¯¼ö¸¦ ÅØ½ºÆ® »ö»ó ¹× ¹è°æ »ö»óÀ» µÉ °ÍÀÔ´Ï´Ù. ¼¼ ¹øÂ° CBrush °³Ã¼ ¹è°æ ±×¸²¿¡ ´ë ÇÑ ºê·¯½Ã¸¦ °³ÃÖ ÇÏ´Â °ÍÀÔ´Ï´Ù. CBrush °³Ã¼¸¦ »ç¿ë Çϸé ÇÑ ¹ø, ´ÜÁö ±× ÈÄ¿¡, ÂüÁ¶ ÇÏ´Â ºê·¯½¬¸¦ ¸¸µéÀ» ¶§ ÀÚµ¿À¸·Î ºê·¯½Ã¸¦ ÆÄ±« ÇÏ´Â CYellowEdit ÄÁÆ®·Ñ ÆÄ±«¡£

  4. ´ÙÀ½°ú °°ÀÌ »ý¼ºÀÚ¸¦ ÀÛ¼º ÇÏ ¿© ¸â¹ö º¯¼ö¸¦ ÃʱâÈ­:
    CYellowEdit::CYellowEdit()
    {
    m_clrText = RGB (0, 0, 0);
    m_clrBkgnd = RGB (255, 255, 0);
    m_brBkgnd.CreateSolidBrush (m_clrBkgnd);
    }
    
  5. ¹Ý»ç WM_CTLCOLOR ¸Þ½ÃÁö¿¡ ´ë ÇÑ Ã³¸®±â¸¦ Ãß°¡ ¸¶¹ý»ç¸¦ »ç¿ë ÇÏ ¿© ±ÍÇÏÀÇ CYellowEdit Ŭ·¡½º. Note ó¸®ÇÒ ¼ö ÀÖ´Â ¸Þ½ÃÁö ¸ñ·Ï¿¡¼­ ¸Þ½ÃÁö À̸§ ¾Õ¿¡ µîÈ£ ¸Þ½ÃÁö°¡ ¹Ý¿µ µË´Ï´Ù ³ªÅ¸³À´Ï´Ù. ÀÌ¿¡¼­ ¼³¸í ÇÏ´Â Visual c + + ÇÁ·Î±×·¡¸Ó °¡ÀÌµå ¿¡ ¹Ý¿µ ÇÏ´Â ¸Þ½ÃÁöÀÇ ¸Þ½ÃÁö 󸮱â Á¤ÀÇ¡£

    ClassWizard ´ç½ÅÀ» À§ÇØ ´ÙÀ½°ú °°Àº ¸Þ½ÃÁö ¸Ê ¸ÅÅ©·Î ÇØ°ñ ±â´É Ãß°¡:

    ON_WM_CTLCOLOR_REFLECT()
    
    / / Âü°í: ´Ù¸¥ ÄÚµå »çÀÌ ÀÖÀ» °ÍÀÔ´Ï´Ù....
    
    HBRUSH CYellowEdit::CtlColor(CDC* pDC, UINT nCtlColor) {
    / / TODO: ¿©±â DCÀÇ Æ¯¼º º¯°æ
    
    / / TODO: °æ¿ì¿¡ NULLÀÌ ¾Æ´Ñ ºê·¯½Ã¸¦ ¹Ýȯ ÇÕ´Ï´Ù
    / / ºÎ¸ð 󸮱⸦ È£Ãâ ÇØ¼­´Â ¾È
    NULL; ¹Ýȯ
    }
    
  6. ÇÔ¼ö º»¹®À» ´ÙÀ½ ÄÚµå·Î ¹Ù²ß´Ï´Ù. ÄÚµå ÅØ½ºÆ® »ö»ó, ÅØ½ºÆ® ¹è°æ »ö ¹× ³ª¸ÓÁö ÄÁÆ®·ÑÀÇ ¹è°æ»öÀ» ÁöÁ¤ÇÕ´Ï´Ù.
    pDC-gt;SetTextColor (m_clrText);    / / ÅØ½ºÆ®
    pDC-> SetBkColor (m_clrBkgnd);    / / ÅØ½ºÆ® bkgnd
    ¹Ýȯ m_brBkgnd;                / / ctl bkgnd
    
  7. ´ëÈ­ »óÀÚ¿¡¼­ ÆíÁý ÄÁÆ®·Ñ ¸¸µé±â ´ÙÀ½ control ۸¦ ´©¸¥ ä ÆíÁý ÄÁÆ®·ÑÀ» µÎ ¹ø Ŭ¸¯ ÇÏ ¿© ¸â¹ö º¯¼ö¸¦ ¿¬°á ÇÕ´Ï´Ù. ¸â¹ö º¯¼ö Ãß°¡ ´ëÈ­ »óÀÚ¿¡¼­ º¯¼ö À̸§À» ¿Ï·á ÇÏ °í º¯¼ö Çü½Ä¿¡ ´ë ÇÑ ´ÙÀ½ "CYellowEdit" ¹üÁÖ¿¡ ´ë ÇÑ "Á¦¾î"¸¦ ¼±Åà ÇÕ´Ï´Ù. ´ëÈ­ »óÀÚ¿¡¼­ ÅÇ ¼ø¼­¸¦ ¼³Á¤ ÇÏ´Â °ÍÀ» ÀØÁö ¸¶¼¼¿ä. ¶ÇÇÑ,¿¡ ´ë ÇÑ Çì´õ ÆÄÀÏÀ» Æ÷ÇÔ ÇØ¾ß ÇÕ´Ï´Ù CYellowEdit ´ëÈ­ »óÀÚÀÇ Çì´õ ÆÄÀÏ¿¡¼­ ÄÁÆ®·Ñ¡£

  8. ºôµå ¹× ÀÀ¿ë ÇÁ·Î±×·¥À» ½ÇÇà ÇÕ´Ï´Ù. ÆíÁý ÄÁÆ®·Ñ¿¡´Â ³ë¶õ»ö ¹è°æÀ» ÇØ¾ßÇÑ´ÙÇÕ´Ï´Ù¡£

  9. ±¸¼º ¿ä¼Ò °¶·¯¸®¸¦ »ç¿ë ÇÏ ¿© Ãß°¡ÇÒ ¼ö ÀÖ½À´Ï´Ù ÀÌÁ¦ ±ÍÇÏÀÇ CYellowEdit Ŭ·¡½º¸¦ ´Ù¸¥ ÇÁ·ÎÁ§Æ® Á¦¾î¡£

±â¼ú ³ëÆ® ¹øÈ£·Î |nbsp; Ä«Å×°í¸®º° ±â¼ú ³ëÆ®(&N)

Index