°Å±â¿¡ MMC ½º³ÀÀο¡¼ °³Ã¼ÀÇ »ç¿ëÀÚ ÁöÁ¤ÇÒ ¼ö ÀÖ´Â ¿©·¯ »ç¿ëÀÚ ÀÎÅÍÆäÀ̽º (UI) ±¸¼º ¿ä¼Ò. µµ±¸ ¸ðÀ½ ´ÜÃß¿Í ¸Þ´º Ç׸ñ µîÀÇ ÀÌ·¯ÇÑ ¿µ¿ª Áß ÀϺΠMMC ÀÀ¿ë ÇÁ·Î±×·¥ÀÇ ±¸¼º ¿ä¼Ò¸¦ ¿µÇâÀ» ÁÝ´Ï´Ù. ¸¶Áö¸· ±¸¼º ¿ä¼Ò´Â »ç¿ëÀÚ°¡ ÁöÁ¤ÇÒ ¼ö ÀÖ´Â ½º³ÀÀÎ °³Ã¼ÀÇ ¼Ó¼ºÀ» Ç¥½Ã Çϴ ǥÁØ ¼Ó¼º ½ÃÆ®. ±âº»ÀûÀ¸·Î MMC ½º³ÀÀο¡¼ ¸¶¹ý»ç´Â »ç¿ëÀÚ ÁöÁ¤ UI ¿ä¼Ò¸¦ »ý¼º ÇÏÁö ¾Ê½À´Ï´Ù. ±×·¯³ª, °Å±â¿¡ »ç¿ëÀÚ ÁöÁ¤ UI ¿ä¼Ò °¥ ¼ö¸¦ ³ªÅ¸³»´Â ½º³ÀÀÎ °³Ã¼ ÄÚµå Àüü °³Ã¼ Ʋ¡£
ÇϳªÀÇ ¿µ¿ªÀ» »ç¿ëÀÚ ÁöÁ¤ÇÒ ¼ö ÀÖ½À´Ï´Ù ½º³ÀÀÎ °³Ã¼ÀÇ Ç׸ñ¿¡ ´ë ÇÑ »óȲ¿¡ ¸Â´Â ¸Þ´ºÀÔ´Ï´Ù. 4 ¸Þ´º Ç׸ñ »ç¿ëÀÚ ÁöÁ¤¿¡ »ç¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù: À§ÂÊ, »õ·Î ¸¸µé±â, ÀÛ¾÷ ¹× º¸±â. ½º³ÀÀÎ ¸¶¹ý»ç 4 °³ÀÇ ½½·Ô¿¡ ´ë ÇÑ ÀÚ¸® Ç¥½ÃÀÚ¿Í ¸Þ´º ¸®¼Ò½º¸¦ ¸¸µì´Ï´Ù.
¸Þ´º ¸®¼Ò½º¸¦ ½º³ÀÀÎ °³Ã¼¿¡ ÀÇÇØ ¾Ë·ÁÁø ¶§¹®¿¡ ÀûÀý ÇÑ ½½·Ô¿¡¼ ÇÊ¿äÇÑ ¸ðµç »ç¿ëÀÚ ÁöÁ¤ ¸Þ´º Ç׸ñÀ» Ãß°¡ ÇÏ °í ±×µéÀº ÀÚµ¿À¸·Î ¸ðµç ½º³ÀÀÎ Ç׸ñÀÇ »óȲ¿¡ ¸Â´Â ¸Þ´º¿¡ ³ªÅ¸³³´Ï´Ù. ½º³ÀÀÎ Ç׸ñ µ¥ÀÌÅÍ °³Ã¼¿¡ ´ÙÀ½°ú °°Àº ¼±¾ðÀÌ Æ÷ÇÔ µÇ¾î Àֱ⠶§¹®¿¡ »ç¿ë ÇÏ´Â ¸Þ´º ¸®¼Ò½º¸¦ ¾ËÀ¸½Ê½Ã¿À:
SNAPINMENUID(IDR_MMCSNAP_MENU)
ÀÎÅÍÆäÀ̽º¸¦ Á¦°ø ÇÏ´Â Platform SDK ( IExtendContextMenu) ½º³ÀÀÎ Ç׸ñÀÇ »óȲ¿¡ ¸Â´Â ¸Þ´º¸¦ »ç¿ëÀÚ ÁöÁ¤ÇÒ ¼ö ÀÖ½À´Ï´Ù. ´ëºÎºÐÀÇ °æ¿ìÀÌ ÀÎÅÍÆäÀ̽º¸¦ Á÷Á¢ È£Ãâ ÇÏÁö ¾Ê¾Æµµ ÀÌÁö¸¸ ½º³ÀÀÎÀº ÀüÁø ÇÏ´Â °æ¿ìÀÌ ÀÎÅÍÆäÀ̽º¿¡ ´ë ÇÑ ÀÚ¼¼ÇÑ ³»¿ëÀº Platform SDK ¿¡¼ »ç¿ëÇÒ ¼ö¡£
½º³ÀÀÎ °³Ã¼´Â »ç¿ëÀÚ ÁöÁ¤ µµ±¸ ¸ðÀ½À» »ç¿ë ÇÏ´Â °æ¿ì µµ±¸ ¸ðÀ½ ¸®¼Ò½º¸¦ ¸¸µç ÈÄ¿¡ ¹öưÀÇ ¼ö¸¦ Ãß°¡ÇÒ ¼ö ÀÖ½À´Ï´Ù. ±×·± ´ÙÀ½ »ç¿ëÀÚ ÁöÁ¤ ÀÛ¾÷À» ó¸® ÇÏ´Â °¢ ´ÜÃß¿¡ ´ë ÇÑ Ã³¸®±â¸¦ Á¦°øÇÒ ¼ö ÀÖ½À´Ï´Ù. ÀÚ¼¼ÇÑ ³»¿ëÀº ÂüÁ¶ µµ±¸ ¸ðÀ½ ¸®¼Ò½º ½º³ÀÀÎ °³Ã¼¸¦ Ãß°¡ ÇÏ´Â ¹æ¹ý?¡£
ÀÎÅÍÆäÀ̽º¸¦ Á¦°ø ÇÏ´Â Platform SDK ( IExtendControlbar)¿¡¼ ½º³ÀÀÎÀÇ ÄÁÆ®·Ñ ¸·´ë¸¦ »ç¿ëÀÚ ÁöÁ¤ÇÒ ¼ö ÀÖ½À´Ï´Ù. ´ëºÎºÐÀÇ °æ¿ìÀÌ ÀÎÅÍÆäÀ̽º¸¦ Á÷Á¢ È£Ãâ ÇÏÁö ¾Ê¾Æµµ ÀÌÁö¸¸ ½º³ÀÀÎÀº ÀüÁø ÇÏ´Â °æ¿ìÀÌ ÀÎÅÍÆäÀ̽º¿¡ ´ë ÇÑ ÀÚ¼¼ÇÑ ³»¿ëÀº Platform SDK ¿¡¼ »ç¿ëÇÒ ¼ö¡£
°¢ ½º³ÀÀÎ Ç׸ñ ¸¶¿ì½º¸¦ ¸¶¿ì½º ¿À¸¥ÂÊ ´ÜÃ߷ΠŬ¸¯ÇÒ ¶§ »óȲ¿¡ ¸Â´Â ¸Þ´º¿¡¼ ¾×¼¼½ºÇÒ ¼ö Àִ ǥÁØ ¼Ó¼º ½ÃÆ®¸¦ Ç¥½ÃÇÒ ¼ö ÀÖ½À´Ï´Ù.
±âº»ÀûÀ¸·Î MMC ½º³ÀÀÎ ¸¶¹ý»ç¿¡¼´ÂÀÌ ±â´É¿¡ ´ë ÇÑ ±¸ÇöÀ» Á¦°ø ÇÏÁö ¾Ê½À´Ï´Ù. ±×·¯³ª, IExtendPropertySheet È®ÀζõÀ» ¼±Åà ÇÏ´Â °æ¿ì ¸¶¹ý»ç´Â ±âº» ¼Ó¼º ÆäÀÌÁö Ŭ·¡½º¸¦ ¸¸µì´Ï´Ù ( CSnapNamePage , CSnapInPropertyPageImpl¿¡¼ ÆÄ»ý µÈ) ¹× ¼Ó¼º ½ÃÆ® ´ëÈ »óÀÚ ¸®¼Ò½º (IDD_SnapName)¡£
ÀÌ ±â´ÉÀ» ¿Ï·á ÇÏ·Á¸é »ç¿ëÀÚ°¡ ½º³ÀÀÎ Ç׸ñÀÇ ¼Ó¼ºÀ» ¼öÁ¤ÇÒ ¼ö ÀÖ°Ô ÇÏ´Â ÄÁÆ®·Ñ Ãß°¡¡£
¼Ó¼º ½ÃÆ®¿¡ ÆäÀÌÁö¸¦ Ãß°¡ ÇÏ·Á¸é »õ ¼Ó¼º ÆäÀÌÁö Ŭ·¡½º, »õ ´ëÈ »óÀÚ ¸®¼Ò½º ¹× µ¥ÀÌÅÍ Å¬·¡½ºÀÇ CreatePropertyPages ¸Þ¼µå¿¡¼ Ãß°¡ Äڵ尡 ÇÊ¿ä ÇÕ´Ï´Ù. ÀÌ ¿¹Á¦¿¡¼´Â »õ Ŭ·¡½º¸¦ È£Ãâ CMMCSnapPage2 ´ëÈ »óÀÚ ¸®¼Ò½º À̸çIDD_MMCSNAP2¡£
ÀÏ´Ü ´ç½ÅÀÌ ÇÊ¿äÇÑ Å¬·¡½º¿Í ¸®¼Ò½º¸¦ ¸¸µé°í ½ÃÆ®¿¡ »õ ¼Ó¼º ÆäÀÌÁö¸¦ Ãß°¡ ÇÏ·Á¸é CreatePropertyPages ¸Þ¼µå¸¦ Ãß°¡ ÇÕ´Ï´Ù. ´ÙÀ½ Äڵ忡¼´Â »õ ÆäÀÌÁö¸¦ Ãß°¡ ÇÏ´Â ¿¹¸¦ µé¾î, ( pPage2 )¿Í ÇÔ²² »õ·Î¿î ±¸Çö, CMMCSnapPage2 ½º³ÀÀÎ °³Ã¼ Ŭ·¡½º:
CMMCSnapPage2 * pPage2 = »õ·Î¿î CMMCSnapPage2(_T("MMCSnap2"));
lpProvider-gt;AddPage (pPage2-> Create())
ÀÎÅÍÆäÀ̽º¸¦ Á¦°ø ÇÏ´Â Platform SDK ( IExtendPropertySheet)¿¡ ½º³ÀÀÎÀÇ ¼Ó¼º ½ÃÆ®¸¦ »ç¿ëÀÚ ÁöÁ¤ÇÒ ¼ö ÀÖ½À´Ï´Ù. ´ëºÎºÐÀÇ °æ¿ìÀÌ ÀÎÅÍÆäÀ̽º¸¦ Á÷Á¢ È£Ãâ ÇÏÁö ¾Ê¾Æµµ ÀÌÁö¸¸ ½º³ÀÀÎÀº ÀüÁø ÇÏ´Â °æ¿ìÀÌ ÀÎÅÍÆäÀ̽º¿¡ ´ë ÇÑ ÀÚ¼¼ÇÑ ³»¿ëÀº Platform SDK ¿¡¼ »ç¿ëÇÒ ¼ö¡£