cMessageMap Ŭ·¡½º
CMessageMap Àº °³Ã¼ÀÇ ¸Þ½ÃÁö¸¦ Çã¿ë ÇÏ´Â Ãß»ó ±âº» Ŭ·¡½º´Â ´Ù¸¥ °³Ã¼¿¡ ¾×¼¼½ºÇÒ ¼ö¿¡ ¸ÅÇε˴ϴÙ. ¸Þ½ÃÁö ¸ÊÀ» ³ëÃâ ÇÏ´Â °³Ã¼¿¡¼ ÇØ´ç Ŭ·¡½º´Â CMessageMap ¿¡¼ ÆÄ»ý µÇ¾î¾ß ÇÕ´Ï´Ù.
ATL CMessageMap ¸¦ »ç¿ë ÇÏ ¿© Æ÷ÇÔ µÈ Áö¿ø windows ¹× µ¿Àû ¸Þ½ÃÁö ¸Ê üÀÎ. ¿¹¸¦ µé¾î, CContainedWindow °³Ã¼¸¦ Æ÷ÇÔ ÇÏ´Â ¸ðµç Ŭ·¡½º´Â CMessageMap¿¡¼ ÆÄ»ý µÇ¾î¾ß ÇÕ´Ï´Ù. ´ÙÀ½ Äڵ忡¼ °¡Á®¿Â °ÍÀÔ´Ï´Ù ÀÖ´Â SUBEDIT »ùÇÃ. CComControl, ÅëÇØ´Â CAtlEdit CMessageMap ¿¡¼ ÀÚµ¿À¸·Î ÆÄ»ý¡£
cAtlEdit Ŭ·¡½º: °ø¿ë CComControllt;CAtlEdit >,...
????????????? / / CComControl CWindowImpl¿¡¼ ÆÄ»ý
????????????? / /´Â Cmessagemap¿¡¼ ÆÄ»ý
{
°ø°³:
? / / Æ÷ÇÔ µÈ â µ¥ÀÌÅÍ ¸â¹ö ¼±¾ð
? CContainedWindow m_EditCtrl;
/ / ÃʱâÈ Æ÷ÇÔ µÈ â:
? // 1. Àü´Þ µÇµµ·Ï ÁöÁ¤ ÇÏ·Á¸é "ÆíÁý"Àº Æ÷ÇÔ µÈ / / â Ç¥ÁØ¿¡ ±â¹Ý ÇÑ´Ù / / Windows ÆíÁý »óÀÚ
? // 2. ÁöÁ¤ ÇÏ·Á¸é 'this'ÀÌ Æ÷ÀÎÅÍ¿¡ Àü´Þ ±× CAtlEdit / ¸Þ½ÃÁö ¸ÊÀ» »ç¿ëÇÒ ¼ö¸¦ Æ÷ÇÔ ÇÏ´Â /´Â / / Æ÷ÇÔ µÈ âÀÇ ¸Þ½ÃÁö ó¸®
? // 3. ¸Þ½ÃÁö ¸ÊÀÇ ½Äº°ÀÚ¸¦ Àü´Þ ÇÕ´Ï´Ù. ¿¡¼
? / /ÀÌ °æ¿ì '1' ½Äº° ¸Þ½ÃÁö ¸Ê
? / / ALT_MSG_MAP(1)¸¦ »ç¿ë ÇÏ ¿© ¼±¾ð
? CAtlEdit(): m_editctrl(_t("edit")ÀÌ,ÀÌ 1)
? {
???? m_bWindowOnly = ÁøÁ¤ÇÑ;
? }
/ / ±âº» ¸Þ½ÃÁö ¸ÊÀ» ¼±¾ð
? BEGIN_MSG_MAP(CAtlEdit)
???? MESSAGE_HANDLER (WM_PAINT, OnPaint)
???? ...
? / / ´ëü ¸Þ½ÃÁö ¸ÊÀ» ¼±¾ð
? / / '1'¿¡ ÀÇÇØ ½Äº°
? ALT_MSG_MAP(1)
???? MESSAGE_HANDLER (WM_CHAR, OnChar)
? END_MSG_MAP()
...
};
¶§¹®¿¡ Æ÷ÇÔ µÈ â m_EditCtrl , ¸Þ½ÃÁö ¸ÊÀ» »ç¿ë ÇÏ ¿© Æ÷ÇÔ Çϴ Ŭ·¡½º¿¡´Â CAtlEdit CMessageMap ¿¡¼ ÆÄ»ý¡£
¸Þ½ÃÁö ¸Ê¿¡ ´ë ÇÑ ÀÚ¼¼ÇÑ ³»¿ëÀº ¹®¼ÀÇ "ATL â Ŭ·¡½º." ¸Þ½ÃÁö ¸Ê À» ÂüÁ¶ÇÕ´Ï´Ù
# include lt;atlwin.h>
Âü°í Ç׸ñnbsp;CDynamicChain, BEGIN_MSG_MAP, ALT_MSG_MAP(&N)