ÇÕ¼º ÄÁÆ®·Ñ¿¡ ÇÊ¿äÇÑ ÄÁÆ®·ÑÀ» »ðÀÔ ÇÑ ÈÄ ´ÙÀ½ ´Ü°è¿¡¼´Â »õ·Î¿î ±â´ÉÀ» Ãß°¡ ÇÕ´Ï´Ù. ÀÌ »õ·Î¿î ±â´ÉÀº ÀϹÝÀûÀ¸·Î µÎ °¡Áö ¹üÁÖ·Î ¶³¾îÁö´Â:
¸ñÀû ¹× ¹üÀ§°¡ ¹®¼ÀÇÀÌ ¼½¼ÇÀÇ ³ª¸ÓÁö ºÎºÐ ÀüÀû¿¡ ÃÊÁ¡À» ¸ÂÃß°í À̺¥Æ® 󸮡£
À̺¥Æ®¸¦ ó¸® ÇÏ´Â Æ÷ÇÔ µÈ °¢ ÄÁÆ®·Ñ¿¡ ´ë ÇÑ¿¡¼ ÆÄ»ý ÇÏ ¿© À̺¥Æ® µð½ºÆÐÄ¡ ÀÎÅÍÆäÀ̽º¸¦ ±¸Çö ÇØ¾ß ÇÕ´Ï´Ù´Â IDispEventImpl ÅÛÇø´ Ŭ·¡½º. ÀÌ ÆÄ»ý ÇÕ¼º ÄÁÆ®·ÑÀÇ ¼±¾ð¿¡¼ ÀÌ·ç¾îÁý´Ï´Ù°ú µÎ °³ÀÇ ¸Å°³ º¯¼ö ±¸¼º
IDispEventImpl ÀÎÅÍÆäÀ̽º ÄÁÆ®·ÑÀ» ¼±¾ð ÇÏ´Â ±âº» Ŭ·¡½º ¼±¾ð¿¡ ´ÙÀ½ ¿¹Á¦ ÄÚµå ÁÙ ( IDC_CIRCCTRL1 ), ÇÕ¼º ÄÁÆ®·Ñ Ŭ·¡½º¿¡ ´ë ÇÑ ( CMyCompositeCtrl )¡£
°ø¿ë IDispEventImpllt, IDC_CIRCCTL1, CMyCompositeCtrl & gt;
µð½ºÆÐÄ¡¿¡ Æ÷ÇÔ µÈ °¢ ÄÁÆ®·Ñ¿¡ ´ë ÇÑ À̺¥Æ® Ŭ·¡½º¸¦ ¼±¾ð ÈÄ ÇÕ¼º ÄÁÆ®·Ñ °³Ã¼¿¡ À̺¥Æ® ½ÌÅ© ¸ÊÀ» Ãß°¡ ÇØ¾ß ÇÕ´Ï´Ù. ÀÌ Áöµµ µÎ °¡Áö¸¦ ´Þ¼º:
¿©·¯ °¡Áö ¹Ì¸® Á¤ÀÇ µÈ ¸ÅÅ©·Î »ç¿ë ÇÏ ¿© À̺¥Æ® ½ÌÅ© ¸ÊÀ» ±¸ÇöÇÕ´Ï´Ù:
BEGIN_SINK_MAP(CtrlName)
CtrlName ÇÕ¼º ÄÁÆ®·Ñ¿¡ ´ë ÇÑ À̺¥Æ® ½ÌÅ© ¸Ê ½ÃÀÛ ¼±¾ð¡£
SINK_ENTRY(CtrlID, DispIID, dispID, EventHandler)
CtrlID ½Äº° µÈ ÄÁÆ®·Ñ¿¡ ´ë ÇÑ µð½ºÆÐÄ¡ ÀÎÅÍÆäÀ̽º DispIIDÀÇ (dispID), ÁöÁ¤ µÈ À̺¥Æ® 󸮱â ÇÔ¼ö (EventHandler) ¼±¾ð¡£
CtrlName ÇÕ¼º ÄÁÆ®·Ñ¿¡ ´ë ÇÑ À̺¥Æ® ½ÌÅ© ¸Ê ³¡À» ¼±¾ð¡£
´ÙÀ½ ÄÚµå ¿¹Á¦¿¡¼´Â (¿¡ À§Ä¡ ÇÕ´Ï´Ù.ÇÕ¼º ÄÁÆ®·ÑÀÇ CPP ÆÄÀÏ)¿¡ ´ë ÇÑ À̺¥Æ® ½ÌÅ© ¸ÊÀ» ¼±¾ð ÇÕ´Ï´Ù CMyCompositeCtrl °³Ã¼. ±×°ÍÀº µÎ °³ÀÇ Æ÷ÇÔ µÈ ÄÁÆ®·Ñ¿¡ ´ë ÇÑ µÎ ¸íÀÇ À̺¥Æ® 󸮱⸦ ¼±¾ð ( IDC_CIRCCTL1 ¹× IDC_CIRCCTL2 ). µÎ ÄÁÆ®·ÑÀÇ Click À̺¥Æ®¿¡ ÀÇÇØ ó¸® µÇ´Â OnClick_CircCtrl1 ¹× OnClick_CircCtrl2 ÇÔ¼ö¡£
BEGIN_SINK_MAP(CMyCompositeCtrl)
nbsp; SINK_ENTRY (IDC_CIRCCTL1, DISPID_CLICK, OnClick_CircCtrl1)
? SINK_ENTRY (IDC_CIRCCTL2, DISPID_CLICK, OnClick_CircCtrl2)
END_SINK_MAP()(&N)
ÇÕ¼º ÄÁÆ®·Ñ¿¡ ´ë ÇÑ À̺¥Æ® 󸮱⸦ ±¸Çö ÇÏ·Á¸é À̺¥Æ® ½ÌÅ© ¸ÊÀ» ¼±¾ð µÈ ÈÄ ÁøÇà¡£
À̺¥Æ® ½ÌÅ© ¸ÊÀ» ´Ü°è ¼±¾ð¿¡ Æ÷ÇÔµÈ µÈ µÎ °³ÀÇ Circ ÄÁÆ®·Ñ¿¡ ´ë ÇÑ µÎ ¸íÀÇ À̺¥Æ® 󸮱⸦ ¼±¾ð ÇÏ´Â »õ·Î¿î Áöµµ Ãß°¡ Çß½À´Ï´Ù. ÀÌÁ¦ ÀÌ·¯ÇÑ Ã³¸®±â¸¦ ±¸Çö ÇÏ´Â ½Ã°£ ÀÌ´ÙÀÔ´Ï´Ù. Çü½ÄÀº ´ÙÀ½°ú °°½À´Ï´Ù.:
retVal __stdcall EventHandler (args)
{
nbsp; //handle À̺¥Æ®¸¦ ÀûÀý ÇÏ °Ô ¹ß»ý
}(&N)
¾îµð retVal À̺¥Æ® 󸮱âÀÇ ¹Ýȯ °ªÀº EventHandler ÇÔ¼ö 󸮱â À̸§ÀÔ´Ï´Ù ¹× args À̺¥Æ®¿¡ ´ë ÇÑ ÀμöÀÇ ¼±ÅÃÀû ¸ñ·ÏÀÔ´Ï´Ù. ÀÌ À̸§Àº À̺¥Æ® 󸮱⿡¼ ÇÕ¼º ÄÁÆ®·ÑÀÇ À̺¥Æ® ½ÌÅ© ¸ÊÀ» ¼±¾ð Áß Çϳª¸¦ ÀÏÄ¡ ÇØ¾ß ÇÕ´Ï´Ù.
´ÙÀ½ ÄÚµå ¿¹Á¦¿¡¼´Â À̺¥Æ® 󸮱â (Click À̺¥Æ®)·Î ½Äº° ÇÏ´Â Æ÷ÇÔ µÈ ÄÁÆ®·Ñ¿¡ ´ë ÇÑ Á¤ÀÇIDC_CIRCCTRL1:
À̹ø ÁÖ __stdcall void OnClick_CircCtrl1)
{
nbsp; MessageBox ("click ÇØ!", "CircCtl1", MB_OK);
}(&N)
³ª¸ÓÁö Ç׸ñ¿¡ ´ë ÇÑ À̺¥Æ® 󸮱â´Â À̺¥Æ® ½ÌÅ© ÇÕ¼º ÄÁÆ®·ÑÀÇ Áöµµ Ãß°¡¡£
ÇÕ¼º ÄÁÆ®·Ñ ¿ÏÀüÈ÷ Ȱ¼ºÈ µÇ±â Àü¿¡ Æ÷ÇÔ µÈ °¢ ÄÁÆ®·ÑÀÇ À̺¥Æ®¸¦ ó¸® ÇÏ´Â À̺¥Æ® µð½ºÆÐÄ¡ ÀÎÅÍÆäÀ̽º¿Í °°Àº ³ª°¡´Â ÀÎÅÍÆäÀ̽º¿¡ ´ë ÇÑ Äõ¸® µË´Ï´Ù. ¸ðµç ÀÎÅÍÆäÀ̽º¸¦ ¹ß°ß ÇÏ´Â °æ¿ì ¿¬°áÀ» ¼³Á¤ ÇÏ °í ³ª°¡´Â ÀÎÅÍÆäÀ̽º¿¡ ´ë ÇÑ ÂüÁ¶¸¦ ÄÁÆ®·Ñ¿¡¼ À̺¥Æ®¸¦ ó¸® ÇÏ´Â µ¥. ÀÌ ÀýÂ÷¸¦ "ÄÁÆ®·Ñ ÀÚ¹®" À̶ó°í ÇÏ °í ÇÕ¼º ÄÁÆ®·ÑÀÇ ÃʱâÈ À̺¥Æ® ½ÌÅ© ¸ÊÀ» »ç¿ë ÇÏ ¿© ÇÕ¼º ÄÁÆ®·Ñ °³Ã¼¿¡ ÀÇÇØ ÀÚµ¿À¸·Î ÀÌ·ç¾îÁý´Ï´Ù.
»ç¿ëÀÚ°¡ ´ëÈ »óÀÚ¸¦ ±â °¢, ÈÄ ¸ðµç ÀúÀåµÈ ÂüÁ¶ º¸³»´Â ÀÎÅÍÆäÀ̽º Æ÷ÇÔ µÈ ÄÁÆ®·Ñ¿¡¼ Á¤¸® µË´Ï´Ù. ÀÌ "ÄÁÆ®·Ñ unadvising" À̶ó°í ÇÏ °í º¹ÇÕ ÄÁÆ®·Ñ¿¡ ÀÇÇØ ÀÚµ¿À¸·Î ¼öÇ൵¡£