ActiveX ÄÁÆ®·Ñ Á¦ÀÛ
ActiveX ÄÁÆ®·ÑÀÇ È®ÀåÀÚ´Â ocxÀÌ´Ù. ÀÌ ÆÄÀÏÀº Çѹø ÀÛ¼ºÇÏ¿© ÀÏ¹Ý Application¿¡¼µµ À¥»ó¿¡¼µµ »ç¿ëÀÌ °¡´ÉÇÏ´Ù. ¿©±â¿¡¼´Â ocxÆÄÀÏ ¸¸µå´Â ¹æ¹ýÀ» ¼³¸íÇÑ´Ù.
¸ÕÀú Visual C++ÀÇ ÆÄÀÏ ¸Þ´ºÀÇ ºÎ¸Þ´º New¸¦ ½ÇÇàÇÏ¸é ´ÙÀ½°ú °°Àº ´ëÈ »óÀÚ°¡ »ý¼ºµÈ´Ù.

MFC ActiveX ControlWizard¸¦ ¼±ÅÃÇϰí Project name¿¡ ÇÁ·ÎÁ§Æ® À̸§À» ÀÔ·ÂÇÑ ÈÄ OK ¹öưÀ» ¼±ÅÃÇÏ¸é ´ÙÀ½°ú °°ÀÌ ´ëÈ »óÀÚ°¡ ¹Ù²ï´Ù.

Next>¸¦ ¼±ÅÃÇÏ¸é ´ëÈ »óÀÚ´Â ´ÙÀ½°ú °°ÀÌ ¹Ù²ï´Ù.

Finish¸¦ ¼±ÅÃÇÏ¸é ´ÙÀ½°ú °°Àº ´ëÈ »óÀÚ°¡ »ý¼ºµÇ°í OK¸¦ ¼±ÅÃÇϸé ActiveX ÇÁ·ÎÁ§Æ®°¡ »ý¼ºµÈ´Ù.

»ý¼ºµÇ´Â ÆÄÀÏ ¹× ±× ±â´É(ÀÏ¹Ý Visual C++ ÇÁ·Î±×·¥¿¡¼ »ý¼ºµÇ´Â ÆÄÀϰú ±â´É ºñ±³)µéÀ» ¼³¸íÇÏ¸é ´ÙÀ½°ú °°´Ù(ÇÁ·ÎÁ§Æ® ¸íÀ» Tetris¶ó°í ÀÔ·ÂÇß´Ù°í °¡Á¤).
Tetris.cpp : App ±â´É°ú °°Àº ¿ªÇÒÀ» ÇÑ´Ù.
TetrisPpg.cpp : Document ±â´É°ú °°Àº ¿ªÇÒÀ» Çϵµ·Ï ±¸¼ºµÈ °Í °°À¸³ª °ÅÀÇ »ç¿ëÇÏÁö ¾Ê°í Ctrl¿¡ ¸Þ¸ð¸® ³»¿ëµµ ±¸ÇöÇÑ´Ù.
TetrisCtrl.cpp = View ±â´É°ú °°Àº ¿ªÇÒÀ» ÇÑ´Ù. Áï TetrisCtrl.cppÆÄÀÏÀ» ¿¾î OnDrawÇÔ¼ö¿¡ ȸ鿡 Ç¥½ÃÇÒ ·çƾÀ» ÀÔ·ÂÇÑ´Ù.
ocx ÆÄÀÏÀº ¹ÙÀ̳ʸ® ÆÄÀÏ ÇüÅ·Π¹èÆ÷°¡ µÈ´Ù. µû¶ó¼ ocxÆÄÀÏÀ» ´Ù¸¥ Application¿¡¼ Access°¡´ÉÇÑ ÇÔ¼ö¿Í º¯¼ö¸¦ Ư¼öÇÑ ¹æ¹ýÀ¸·Î Á¤ÀÇÇØ¾ß¸¸ ÇÑ´Ù. ¿ÜºÎ¿¡ ³ëÃâµÇ´Â ÇÔ¼ö¸¦ ¸Þ¼Òµå¶ó ÇÏ°í º¯¼ö¸¦ ÇÁ·ÎÆÛƼ¶ó ÇÑ´Ù.
Ŭ·¡½º À§Àڵ带 ½ÇÇàÇÏ¿© Automation ÅÇÀ» ¼±ÅÃÇÏ¸é ´ÙÀ½°ú °°ÀÌ È¸é¿¡ ³ªÅ¸³´Ù.

Add Method ¹× Add Property¹öưÀ» ÀÌ¿ëÇÏ¿© ÇÔ¼ö ¹× º¯¼ö¸¦ Ãß°¡ÇÏ¸é ¿ÜºÎ ÇÁ·Î±×·¥¿¡¼ Access°¡ °¡´ÉÇÏ´Ù.
³ª¸ÓÁö ÇÁ·Î±×·¥Àº ÀÏ¹Ý Visual C++ ÇÁ·Î±×·¥ÇÏ´Â °Í°ú °°Àº ¹æ¹ýÀ¸·Î ÇÏ¸é µÇ°í ȸéÀ» »õ·Î ±×·ÁÁÖ´Â ÇÔ¼öÀÎ Invalidate ´ë½Å InvalidateControlÀ» ÀÌ¿ëÇÑ´Ù.
µ¥¸ð ÇÁ·Î±×·¥
µ¥¸ð ÇÁ·Î±×·¥Àº ¾ÆÁÖ °£´ÜÇÏ°Ô Á¦ÀÛÇÏ¿´´Ù. Test¶ó´Â ActiveX ÇÁ·ÎÁ§Æ®¸¦ ¸¸µé°í ÀÏ¹Ý ÇÁ·Î±×·¥ Á¦ÀÛÇϵíÀÌ TestCtrl.h¿¡ CString m_strText ¹× short m_nDrawTypeÀ» ¼±À» Çϰí, TextCtrl.cpp¿¡¼ m_nDrawTypeÀÌ 0ÀÌ¸é »ç°¢ÇüÀ» 1ÀÌ¸é ¿øÀ» ±×¸®°í m_strTextÀÇ ¹®ÀÚ¿À» ȸé»ó¿¡ Ãâ·ÂÇϵµ·Ï ±¸¼ºÇÑ´Ù.
¿ÜºÎ ÇÁ·Î±×·¥¿¡¼ ÀÌ ActiveX ÇÁ·Î±×·¥À» Á¦¾îÇϱâ À§ÇÏ¿© SetText ¸Þ¼µå¸¦(m_strText º¯°æ), DrawType ÇÁ·ÎÆÛƼ¸¦ Á¦°øÇÏ¿´´Ù. ´ÙÀ½Àº ±× ¹æ¹ýÀ» ¼³¸íÇÑ °ÍÀÌ´Ù.
ClassWizard¸¦ ½ÇÇàÇÏ¿© Add Method ¹öưÀ» ¼±ÅÃÇÏ¸é ´ÙÀ½°ú °°Àº ´ëÈ »óÀÚ°¡ ȸ鿡 »ý¼ºµÈ´Ù.

External name : ¿ÜºÎ ÇÁ·Î±×·¥¿¡¼ È£ÃâÇÒ ÇÔ¼ö À̸§À» ÀÔ·ÂÇÑ´Ù.
Internal name : ActiveX ÇÁ·Î±×·¥ ³»ºÎÀûÀ¸·Î »ç¿ëÇÒ ÇÔ¼ö À̸§À» ¼³Á¤ÇÑ´Ù. ±âº»ÀûÀ¸·Î External name°ú °°Àº À̸§À¸·Î ÀÔ·ÂÀÌ µÇ´Âµ¥ º¯°æÇÒ ÇÊ¿ä´Â ¾ø´Ù.
Return type : ComboBox¿¡¼ return ÇÒ typeÀ» ¼³Á¤ÇÑ´Ù. ¿©±â¼´Â return ÇÒ µ¥ÀÌÅͰ¡ ¾øÀ¸¹Ç·Î void¸¦ ¼±ÅÃÇÑ´Ù.
Parameter list : ³Ñ°ÜÁÙ ÀÎÀÚ¸¦ ¼³Á¤ÇÑ´Ù. NameºÎºÐÀ» ClickÇÏ¿© º¯¼ö À̸§À» ÀÔ·ÂÇϰí, Type ºÎºÐÀÇ ComboBox¿¡¼ ÀÎÀÚÀÇ typeÀ» ¼³Á¤ÇÑ´Ù.
Add Property¸¦ ¼±ÅÃÇÏ¸é ´ÙÀ½°ú °°Àº ´ëÈ »óÀÚ°¡ »ý¼ºµÈ´Ù.

External name : ¿ÜºÎ¿¡¼ AccessÇÒ º¯¼ö À̸§À» ¼³Á¤ÇÑ´Ù.
Type : º¯¼ö typeÀ» ¼³Á¤ÇÑ´Ù.
Implementation : Get/Set methods¸¦ ¼±ÅÃÇÑ´Ù.
Get function : º¯¼ö¸¦ ¹Þ¾ÆµéÀÌ´Â ÇÔ¼öÀ̸§À» ÀÔ·ÂÇÑ´Ù. ÀÚµ¿ ÀÔ·Â
Set function : º¯¼ö¸¦ ¼³Á¤ÇÏ´Â ÇÔ¼öÀ̸§À» ÀÔ·ÂÇÑ´Ù. ÀÚµ¿ ÀÔ·Â
¼Ò½º¸¦ º¸¸é TestCtrl.cpp¿¡ SetText, GetDrawType, SetDrawTypeÇÔ¼ö°¡ Ãß°¡µÇ¾î ÀÖ´Â °ÍÀ» º¼ ¼ö ÀÖÀ» °ÍÀÌ´Ù. ÀÌ ÇÔ¼öµéÀ» ´ÙÀ½°ú °°ÀÌ ¼öÁ¤ÇÑ´Ù.
void CTestCtrl::SetText(LPCTSTR strText)
{
m_strText = strText;
InvalidateControl;
}
short CTestCtrl::GetDrawType()
{
return m_nDrawType;
}
void CTestCtrl::SetDrawType(short nNewValue)
{
m_nDrawType = nNewValue;
InvalidateControl;
SetModifiedFlag();
}
ÄÄÆÄÀÏÀ» Çϸé test.ocx°¡ »ý¼ºµÈ´Ù.
´Ù¿î·Îµå