ALT·Î ¸¸µç ActiveX Control  ³× ¹ø° ---
¿øº»: http://www7.inforyoma.or.jp/~bono/junks/atlactxctrlsample.html

 À̹ø 4Æí¿¡¼­´Â ¿ÞÂÊ ¸¶¿ì½º Ŭ¸¯ À̺¥Æ®¸¦ ó¸®ÇÒ °ÍÀÌ´Ù. ¾îµð¿¡¼­ ó¸®ÇØ¾ß ÇÒÁö ¸·¸·Çߴµ¥ À§ÀÚ¸¦ Àß»ç¿ëÇÏ¸é ¸¶¿ì½º ó¸® À̺¥Æ®±îÁö´Â ½±°Ô ÇØ°áÇÒ ¼ö ÀÖ´Ù. Ŭ¶óÀ̾îÆ®·Î À̺¥Æ®¸¦ º¸³¾ ÇÊ¿ä°¡ ¾ø´Â °æ¿ì¿¡´Â  [Add Windows Message handler...] 󸮸¸ ÇØÁÖ¸é µÈ´Ù.

À̺¥Æ® 󸮸¦ À§Çؼ­´Â [ATL Object Wizard µî·Ï Á¤º¸]´ëÈ­ »óÀÚ¿¡¼­ ÄÁÆ®·ÑÀ» ¸¸µé ¶§ [Support Connection poins]°¡ üũ µÇ¾î ÀÖ¾î¾ß ÇÒ°ÍÀÌ´Ù.¤»

¿ÞÂÊ ¸¶¿ì½º 󸮸¦ À§Çؼ­ ¸ÕÀú ClickIn, ClickOutÀ» Ãß°¡ÇÑ´Ù.

¿ÞÂÊ Å¬·¡½º ºä [_ISampleCtrlEvenet]À§¿¡¼­ ¿À¸¥ÂÊ ¸¶¿ì½º¸¦ Ŭ¸¯ÇÏ¿© [Add Method...]¸¦ Ŭ¸¯ÇÑ´Ù.

 

[Add Method to Interface]´ëÈ­»óÀÚ¸¦ ¿­°í ClickIn ¸Þ½îµå¸¦ Ãß°¡Çغ¸ÀÚ. 
[Return Type] void, [Mthod Name] ClickIn, [Parameters]´Â [in] long x, [in] long y¸¦ ÀÔ·ÂÇÏ°í [OK]¸¦ ´©¸¥´Ù.

[Add Method to Interface]´ëÈ­»óÀÚ¸¦ ¿­°í ClickOut ¸Þ½îµå¸¦ Ãß°¡Çغ¸ÀÚ.
[Return Type] void, [Mthod Name] ClickOut, [Parameters]´Â [in] long x, [in] long y¸¦ ÀÔ·ÂÇÏ°í [OK]¸¦ ´©¸¥´Ù. 

atltest.idlÆÄÀÏÀ» ¿­¾îº¸¸é ´ÙÀ½ Äڵ尡 Ãß°¡µÈ °ÍÀ» È®ÀÎÇÒ ¼ö ÀÖÀ»°ÍÀÌ´Ù.

dispinterface _ISampleCtrlEvents
{
        properties:
        methods:
       [id(1), helpstring("method ClickIn")] void ClickIn([in] long x, [in] long y);
       [id(2), helpstring("method ClickOut")] void ClickOut([in] long x, [in] long y);
};

Ŭ·¡½º ºäÀÇ [CSmapleCtrl] Ŭ·¡½º¿¡¼­ ¿À¸¥ÂÊ ¸¶¿ì½º ¹öÆ°À» Ŭ¸¯°í [Implement Connection Point...] ¸Þ´º¸¦ Ŭ¸¯ÇÑ´Ù.

[Implement Connection Point] ´ëÈ­ »óÀÚ°¡ ³ªÅ¸³ª¸é [File name] atltestCP.h, [_ISampleCtrlEvents]¸¦ üũÇÏ°í [OK]¹öÆ°À» ´©¸¥´Ù.

ÀÌÁ¦ ¸¶¿ì½º ¿ÞÂÊ ¸Þ½ÃÁö À̺¥Æ®¸¦ ¿¬°áÇØÁÖ¸é µÈ´Ù. Ŭ·¡½º ºä CSampleCtrl Ŭ·¡½º¸¦ ¼±ÅÃÇÏ°í ¿À¸¥ÂÊ ¸¶¿ì½º ¹öÆ°À» Ŭ¸¯ÇÏ¿© [Add Windows Message handler...]¸Þ´º¸¦ ¼±ÅÃÇÑ´Ù.

[New Window Message and Event Handlers for class CsampleCtral] ´ëÈ­ »óÀÚ°¡ ¶°¸é [WM_LBUTTONDOWN] ¸Þ½ÃÁö¸¦ ¼±ÅÃÇÏ°í [Add Handler]¹öÆ°À» Ŭ¸¯ÇÑ´Ù.
±×·¯¸é ±×¸²°ú °°ÀÌ ¸Þ½ÃÁö°¡ ¿ÞÂÊ¿¡ Ãß°¡µÇ¸é [OK]¸¦ Ŭ¸¯ÇÑ´Ù.

SampleCtrl.h ´ÙÀ½°ú °°Àº Äڵ尡 »ý±æ °ÍÀÌ´Ù.

LRESULT OnLButtonDown(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled)
{
        // TODO : Add Code for message handler. Call DefWindowProc if necessary.
        return 0;
}

ÀÌ Äڵ带 ´ÙÀ½°ú °°ÀÌ ¹Ù²ÙÀÚ.

½ÇÇàÇÏ¸é ´ÙÀ½°ú °°ÀÌ ¶ã °ÍÀÌ´Ù.