ÇÕ¼º ÄÁÆ®·Ñ¿¡ ±â´É Ãß°¡

ÇÕ¼º ÄÁÆ®·Ñ¿¡ ÇÊ¿äÇÑ ÄÁÆ®·ÑÀ» »ðÀÔ ÇÑ ÈÄ ´ÙÀ½ ´Ü°è¿¡¼­´Â »õ·Î¿î ±â´ÉÀ» Ãß°¡ ÇÕ´Ï´Ù. ÀÌ »õ·Î¿î ±â´ÉÀº ÀϹÝÀûÀ¸·Î µÎ °¡Áö ¹üÁÖ·Î ¶³¾îÁö´Â:

¸ñÀû ¹× ¹üÀ§°¡ ¹®¼­ÀÇÀÌ ¼½¼ÇÀÇ ³ª¸ÓÁö ºÎºÐ ÀüÀû¿¡ ÃÊÁ¡À» ¸ÂÃß°í À̺¥Æ® 󸮡£

Æ÷ÇÔ µÈ ÄÁÆ®·Ñ¿¡ ´ë ÇÑ IDispEventImpl ÀÎÅÍÆäÀ̽º ¼±¾ð

À̺¥Æ®¸¦ ó¸® ÇÏ´Â Æ÷ÇÔ µÈ °¢ ÄÁÆ®·Ñ¿¡ ´ë ÇÑ¿¡¼­ ÆÄ»ý ÇÏ ¿© À̺¥Æ® µð½ºÆÐÄ¡ ÀÎÅÍÆäÀ̽º¸¦ ±¸Çö ÇØ¾ß ÇÕ´Ï´Ù´Â 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) ¼±¾ð¡£

END_SINK_MAP()

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" À̶ó°í ÇÏ °í º¹ÇÕ ÄÁÆ®·Ñ¿¡ ÀÇÇØ ÀÚµ¿À¸·Î ¼öÇ൵¡£

Index