ÀÌ ³ëÆ®´Â Á¦ÀÚ¸®¿¡¼ ÆíÁý¿¡ °ü·Ã µÈ ¹®Á¦ ¹× ¼¹ö ÇØ¾ß ¿Ã¹Ù¸¥ È®´ë ¼öÇà ¹æ¹ý°ú Àå¼Ò Å©±â ³íÀÇÇÒ ¿¹Á¤ ÀÌ´Ù. ÇöÀç À§Ä¡¿¡¼ Ȱ¼ºÈ¸¦ WYSIWYG °³³ä ±× ¿ë±â¿¡ ÇÑ °ÉÀ½ ´õ ³ª¾Æ°¡ ÃÔ¿µ µË´Ï´Ù¿Í ¼¹ö, ¼·Î Çù·Â ÇÏ °í ƯÈ÷ ÇØ¼® OLE »ç¾çÀÇ °ÅÀÇ °°Àº ¹æ¹ýÀ¸·Î¡£
ÄÁÅ×À̳ʸ¦ ÇöÀç À§Ä¡¿¡¼ Ȱ¼ºÈ¸¦ Áö ¿øÇÏ´Â ¼¹ö »çÀÌÀÇ ´Ý±â »óÈ£ ÀÛ¿ëÀÇ ¶§¹®¿¡ °Å±â¿¡ ´Ù¾ç ÇÑ À¯Áö °ü¸® ÇØ¾ß ÇÏ´Â ÃÖÁ¾ »ç¿ëÀÚ ·ÎºÎÅÍ ±â´ë:
¸Þ¸ðnbsp;??ÇöÀç À§Ä¡¿¡¼ Ȱ¼ºÈ (¿¬°á µÇÁö ¾ÊÀº) Æ÷ÇÔ ÇÏ´Â Ç׸ñ¿¡¸¸ Àû¿ë µË´Ï´Ù, ¶§¹®¿¡ È®´ë¸¸ Æ÷ÇÔµÈ °³Ã¼¿¡ Àû¿ë µË´Ï´Ù. COleServerItem COleServerDoc ¿¡¼ È®´ë/Ãà¼Ò¿¡ »ç¿ë µÇ´Â Api¸¦ º¼ ¼ö ÀÖ½À´Ï´Ù. ÀÌ À̺йý¿¡ ´ë ÇÑ ÀÌÀ¯´Â ¿¬°á ¹× Æ÷ÇÔ µÈ Ç׸ñ¿¡ ´ë ÇÑ À¯È¿ÇÑ ÇÔ¼ö¸¸ COleServerItem ¿¡¼ (ÀÌ ¼ö ÀÖ½À´Ï´Ù ÀϹÝÀûÀÎ ±¸ÇöÀÌ) COleServerDoc Ŭ·¡½º¿¡ ÀÖ´Â ±â´ÉÀ» Æ÷ÇÔ µÈ °³Ã¼¿¡ ´ëÇØ¼¸¸ À¯È¿ ÇÏ °í (¼¹öÀÇ °üÁ¡¿¡¼ ±×°ÍÀÌ Æ÷ÇÔ µÈ ¹®¼ )(&N)¡£
´ëºÎºÐÀÇ ºÎ´ã¿¡¼ ¼¹ö ÄÁÅ×À̳ÊÀÇ È®´ë/Ãà¼Ò ºñÀ²À» ¾Ë°í ÀÖ¾î¾ß ÇÏ °í ÀûÀý ÇÏ °Ô ÆíÁý ÀÎÅÍÆäÀ̽º¸¦ ¼öÁ¤ ÇØ¾ß ÇÕ´Ï´Ù ¼¹ö ±¸ÇöÀÚ¿¡ ¹èÄ¡ µË´Ï´Ù. ÇÏÁö¸¸ ¾î¶»°Ô ¼¹ö ÄÁÅ×À̳ʸ¦ »ç¿ë ÇÏ ¿© È®´ë/Ãà¼Ò ºñÀ²À» °áÁ¤ Çմϱî?
È®´ë/Ãà¼Ò¿¡ ´ë ÇÑ MFC Áö¿ø
COleServerDoc::GetZoomFactor¸¦ È£Ãâ ÇÏ ¿© ÇöÀç È®´ë/Ãà¼Ò ºñÀ²À» È®ÀÎÇÒ ¼ö ÀÖ½À´Ï´Ù. ÀÌ ¹®¼´Â ÇöÀç À§Ä¡¿¡¼ Ȱ¼ºÈ µÉ ¶§ È£Ãâ Ç×»ó 100% È®´ë/Ãà¼Ò ºñÀ² (¶Ç´Â 1: 1 ºñÀ²)¿¡ ¹ß»ý ÇÕ´Ï´Ù. ÇöÀç À§Ä¡¿¡¼ Ȱ¼ºÈ 100% ÀÌ¿ÜÀÇ °ªÀ» ¹ÝȯÇÒ ¼ö ÀÖ½À´Ï´Ù ÇÏ´Â µ¿¾È È£Ãâ¡£
¿Ã¹Ù¸£°Ô È®´ëÀÇ ¿¹¿¡ ´ë ÇÑ MFC OLE »ùÇÃÀ» ÂüÁ¶ ÇϽʽÿÀ. HIERSVR. ÅØ½ºÆ®¸¦ Ç¥½Ã ÇÏ´Â »ç½Ç¿¡ ÀÇÇØ º¹Àâ HIERSVR È®´ë-ÅØ½ºÆ®, ÀϹÝÀûÀ¸·Î È®Àå µÇÁö ¾Ê½À´Ï´Ù (ÈùÆ®, ȰÀÚü ±Ô¾à, ³Êºñ¿Í ³ôÀÌ ¸ðµÎ ¹®Á¦¸¦ º¹Àâ ÇÏ °Ô µðÀÚÀÎ) ¼±Çü ÆÐ¼Ç¿¡¼ ¹×. ¾ÆÁ÷µµ, HIERSVR Á¦´ë·Î È®´ë¸¦ ±¸Çö Çϱâ À§ÇÑ ÇÕ¸®ÀûÀÎ ±âÁØ ÀÌ¸ç ±×·¡¼ MFC Æ©Å丮¾ó ³«¼ (7 ´Ü°è)¡£
COleServerDoc::GetZoomFactor ´Â ´Ù¸¥ Åë°è¸¦ »ç¿ëÇÒ ¼ö ÀÖ´Â ÄÁÅ×ÀÌ³Ê ¶Ç´Â COleServerItem ¹× COleServerDoc Ŭ·¡½ºÀÇ ±¸Çö¿¡¼ ¼ö¸¦ ±â¹ÝÀ¸·Î ÇÏ´Â È®´ë/Ãà¼Ò ºñÀ²À» °áÁ¤ ÇÕ´Ï´Ù. Áï, ÇöÀç È®´ë/Ãà¼Ò ¹èÀ²Àº ´ÙÀ½ ¼ö½Ä¿¡ ÀÇÇØ °áÁ¤ µË´Ï´Ù.
»ç°¢Çü (È«º¸) À§Ä¡ / ÄÁÅ×ÀÌ³Ê ¹üÀ§ (CE)
À§Ä¡ »ç°¢Çü ÄÁÅ×À̳ʿ¡ ÀÇÇØ °áÁ¤ µË´Ï´Ù. COleClientItem::OnGetItemPosition ¶ó°í ÇÏ °í (ÇÔ²² COleClientItem::SetItemRectsÈ£Ãâ) ¼¹ö COleServerDoc::OnSetItemRects ¸¦ È£Ãâ ÇÏ´Â ÄÁÅ×ÀÌ³Ê ¾÷µ¥ÀÌÆ® ÇÏ´Â °æ¿ì ÇöÀç À§Ä¡¿¡¼ Ȱ¼ºÈ ÇÏ´Â µ¿¾È ¼¹ö¿¡ ¹Ýȯ µË´Ï´Ù.
ÄÁÅ×ÀÌ³Ê ¹üÀ§ °è»ê¿¡ ¾à°£ ´õ º¹Àâ ÇÏ´Ù. ÄÁÅ×ÀÌ³Ê ¶ó´Â COleServerItem::OnSetExtent (¿Í COleClientItem::SetExtentÀ» È£Ãâ), ´ÙÀ½ ÄÁÅ×ÀÌ³Ê ¹üÀ§ °æ¿ì ³í¸® ÀÎÄ¡ ´ç Çȼ¿ ¼ö¸¦ ±â¹ÝÀ¸·Î ÇÏ´Â Çȼ¿ÀÌ °ªÀÌ º¯È¯ µË´Ï´Ù. ÄÁÅ×ÀÌ³Ê (ÀÌ °æ¿ì ÀϹÝÀûÀ¸·Î) Setextent¸¦ È£Ãâ ÇÏÁö°¡, ÄÁÅ×ÀÌ³Ê ¹üÀ§´Â COleServerItem::OnGetExtent¿¡¼ ¹Ýȯ µÈ Å©±âÀÔ´Ï´Ù. ±×·¡¼, ÄÁÅ×À̳ʿ¡ SetExtent ¶ó´Â ¸é ÇÁ·¹ÀÓ ¿öÅ©´Â °æ¿ì ÄÁÅ×À̳ʴ À̶ó°í ±×°Í ÀÚ¿¬ Á¤µµ ( COleServerItem::GetExtent¿¡¼ ¹Ýȯ ÇÏ´Â °ª)À» 100%·Î °¡Á¤ ÇÕ´Ï´Ù. ¶Ç´Â ´Ù¸¥ ¹æ¹ýÀ¸·Î, ¸í½Ã µÈ ÇÁ·¹ÀÓ ¿öÅ©¸¦ °¡Á¤ ÄÁÅ×ÀÌ³Ê Ç׸ñÀÇ 100% (ÀÌ»ó, ¾Æ´Ï ´ú) Ç¥½Ã¡£
±×°ÍÀº COleServerItem::OnSetExtent ¹× COleServerItem::OnGetExtent ¿Í À¯»çÇÑ À̸§À», ºñ·Ï ±×µéÀº Á¶ÀÛ ÇÏÁö Ç׸ñÀÇ µ¿ÀÏÇÑ Æ¯¼ºÀ» ¸Þ¸ð ÇÏ´Â °ÍÀÌ Áß¿ä ÇÕ´Ï´Ù. OnSetExtent ÀÎÁö ¾ó¸¶³ª ¸¹Àº °³Ã¼ (È®´ë/Ãà¼Ò ºñÀ²) °ü°è ¾øÀÌ ÄÁÅ×À̳ʿ¡ Ç¥½Ã ÇÏ´Â ¼¹ö¸¦ È£Ãâ ÇÏ °í OnGetExtent °³Ã¼ÀÇ ÀÌ»óÀûÀÎ Å©±â¸¦ È®ÀÎ ÇÏ·Á¸é ÄÁÅ×À̳ʿ¡ ÀÇÇØ È£Ã⠵˴ϴÙ.
¿©±â¿¡ Âü¿© ÇÏ´Â ApiÀÇ °¢À» º¸¸é ¸íÈ®ÇÑ ±×¸²À» ¾òÀ» ¼öÇÕ´Ï´Ù ÀÖ½À´Ï´Ù.:
COleServerItem::OnGetExtent
ÀÌ ÇÔ¼ö´Â HIMETRIC ´ÜÀ§ Ç׸ñÀÇ "±âº» Å©±â"¸¦ ¹Ýȯ ÇØ¾ß ÇÕ´Ï´Ù. "ÀÚ¿¬ Å©±â" »ý°¢ ÇÏ´Â °¡Àå ÁÁÀº ¹æ¹ýÀº ÀÎ¼â µÉ ¶§ ³ªÅ¸³ª´Â Å©±â ±×°ÍÀ» Á¤ÀÇ ÇÏ´Â °Í. Å©±â °°½À´Ï´Ù. (ƯÁ¤ Ç׸ñ¿¡ ´ë ÇÑ »ó¼ö´Â metafile ó·³) ƯÁ¤ Ç׸ñ ³»¿ë¿¡ ´ë ÇÑ »ó¼ö¸¦ ¹Ýȯ ÇÕ´Ï´Ù. ÀÌ Å©±â´Â È®´ë/Ãà¼Ò Ç׸ñ¿¡ Àû¿ë µÉ ¶§ º¯°æ µÇÁö ¾Ê½À´Ï´Ù. ÀϹÝÀûÀ¸·Î ÄÁÅ×ÀÌ³Ê Ç׸ñ ´õ ¸¹°Å³ª ÀûÀº °ø°£ Á¦°ø OnSetExtent¸¦ È£Ãâ ÇÏ ¿© ¶§ º¯°æ µÇÁö ¾Ê½À´Ï´Ù. º¯°æÀÇ ¿¹·Î ÅØ½ºÆ® ÄÁÅ×À̳ʿ¡¼ º¸³½ ¸¶Áö¸· Á¤µµ¿¡ µû¶ó Æ÷Àå "¿©¹é" ±â´É ¾øÀÌ °£´ÜÇÑ ÅØ½ºÆ® ÆíÁý±â µÉ ¼öµµ ÀÖ½À´Ï´Ù. ¼¹ö º¯°æ, ¼¹ö ¾Æ¸¶ ¼³Á¤ ÇØ¾ß ½Ã½ºÅÛ ·¹Áö½ºÆ®¸®¿¡ ºñÆ® OLEMISC_RECOMPOSEONRESIZE (ÀÌ ¿É¼Ç¿¡ ´ë ÇÑ ÀÚ¼¼ÇÑ ³»¿ëÀº OLE SDK ¼³¸í¼¸¦ ÂüÁ¶ ÇϽʽÿÀ)¡£
COleServerItem::OnSetExtent
ÀÌ ÇÔ¼ö´Â ÄÁÅ×ÀÌ³Ê "´õ ¸¹°Å³ª ÀûÀº" °³Ã¼ÀÇ Ç¥½Ã ¶§ È£Ã⠵˴ϴÙ. ´ëºÎºÐÀÇ ÄÁÅ×À̳ʰ¡ ÀüÇô È£Ãâ ÇÏÁö ¾Ê½À´Ï´Ù. 'M_sizeExtent', À§¿¡¼ ¼³¸íÇÑ ÄÁÅ×ÀÌ³Ê ¹üÀ§ °ªÀ» °è»ê ÇÏ´Â °æ¿ì COleServerDoc::GetZoomFactor ¿¡¼ »ç¿ë µÇ´Â ÄÁÅ×À̳ʿ¡¼ ¹ÞÀº ¸¶Áö¸· °ªÀ» ÀúÀå ÇÏ´Â ±âº» ±¸Çö¡£
COleServerDoc::OnSetItemRects
ÀÌ ÇÔ¼ö´Â ¹®¼°¡ ÇöÀç À§Ä¡¿¡¼ Ȱ¼ºÈ ÇÏ´Â °æ¿ì¿¡ È£Ã⠵˴ϴÙ. Ç׸ñÀÇ À§Ä¡ ¶Ç´Â Ç׸ñ¿¡ Àû¿ë µÈ Ŭ¸®ÇÎ ÄÁÅ×ÀÌ³Ê ¾÷µ¥ÀÌÆ® µÉ ¶§ È£Ã⠵˴ϴÙ. À§Ä¡ »ç°¢Çü À§¿¡¼ ¼³¸íÇÑ ´ë·Î È®´ë/Ãà¼Ò ºñÀ² °è»ê¿¡ ´ë ÇÑ ºÐÀÚ¸¦ Á¦°ø ÇÕ´Ï´Ù. ¼¹ö´Â COleServerDoc::RequestPositionChange¸¦ È£Ãâ ÇÏ ¿© Ç׸ñ À§Ä¡¸¦ º¯°æ ÇÏ´Â °ÍÀ» ¿äûÇÒ ¼ö ÀÖ½À´Ï´Ù. ÄÁÅ×ÀÌ³Ê ¼ö ÀÖ½À´Ï´Ù. ¶Ç´Â OnSetItemRects ( COleServerItem::SetItemRects¿¡ ´ë ÇÑ È£Ãâ)À» È£Ãâ ÇÏ ¿©ÀÌ ¿äû¿¡ ÀÀ´ä ÇÏÁö ¾ÊÀ» ¼ö ÀÖ½À´Ï´Ù.
COleServerDoc::OnDraw
±×°ÍÀº COleServerItem::OnDraw ¸¦ ÀçÁ¤ÀÇ ÇÏ ¿© ¸¸µç ¸ÞŸ ÆÄÀÏ ÇöÀç È®´ë/Ãà¼Ò ºñÀ²¿¡ °ü°è ¾øÀÌ µ¿ÀÏÇÑ µÈ metafile Á¤È® ÇÏ °Ô »ý»êÀ» ½ÇÇö ÇÏ´Â °ÍÀÌ Áß¿ä ÇÕ´Ï´Ù. ÄÁÅ×À̳ʴ ÀûÀý ÇÑ ¸ÞŸ ÆÄÀÏÀ» Á¶Á¤ µË´Ï´Ù. À̰ÍÀº º¸±âÀÇ OnDraw °ú ¼¹ö Ç׸ñÀÇ OnDraw°£ÀÇ Áß¿ä ÇÑ Â÷ÀÌ ÀÌ´Ù. È®´ë º¸±â ÇÚµé Ç׸ñ ±×³É ¸¸µì´Ï´Ù´Â zoomable ¸ÞŸ ÆÄÀÏ ÀûÀý ÇÑ È®´ë ÇÒ ÄÁÅ×À̳ʿ¡ ³ª¹µÀÙ¡£
¼¹ö°¡ Á¦´ë·Î ÀÛµ¿À» º¸Àå ÇÏ´Â °¡Àå ÁÁÀº ¹æ¹ýÀº ±ÍÇÏÀÇ ¹®¼°¡ ÇöÀç À§Ä¡¿¡¼ Ȱ¼ºÈ ÇÏ´Â °æ¿ì COleServerDoc::GetZoomFactor ÀÇ ±¸ÇöÀ» »ç¿ë Çϴ¡£
Á¦ÀÚ¸®¿¡¼ Å©±â Á¶Á¤¿¡ ´ë ÇÑ MFC Áö¿ø
MFC OLE 2 »ç¾ç¿¡ ¼³¸í µÈ ´ë·Î ¿ÏÀüÈ÷ Á¦ÀÚ¸®¿¡ Å©±â Á¶Á¤ ÀÎÅÍÆäÀ̽º¸¦ ±¸Çö ÇÕ´Ï´Ù. »ç¿ëÀÚ ÀÎÅÍÆäÀ̽º´Â COleResizeBar Ŭ·¡½º, »ç¿ëÀÚ ÁöÁ¤ ¸Þ½ÃÁö WM_SIZECHILD, ¹× COleIPFrameWnd ¿¡¼ÀÌ ¸Þ½ÃÁöÀÇ Æ¯¼ö ÇÏ °Ô ó¸® ÇÏ ¿© Áö¿ø¡£
´Ù¸¥ ÇÁ·¹ÀÓ ¿öÅ©¿¡¼ Á¦°ø ÇÏ´Â ¹«¾ù º¸´ÙÀÌ ¸Þ½ÃÁö 󸮸¦ ±¸Çö ÇÏ´Â °ÍÀÌ ÁÁ½À´Ï´Ù. À§¿¡¼ ¼³¸íÇÑ ´ë·Î ÇÁ·¹ÀÓ ¿öÅ© ³ª¹µÀÙ Àå¼Ò¿¡ ÄÁÅ×À̳ʸ¦ Á¶Á¤ÀÇ °á°ú ? ¼¹ö È®´ë/Ãà¼Ò ºñÀ²¿¡ ÀÖ´Â º¯È¿¡ ¹ÝÀÀ ÇÕ´Ï´Ù. µÎ ÄÁÅ×ÀÌ³Ê ¹üÀ§¸¦ ¼³Á¤ ÇÏ ¿© ¹ÝÀÀ ÇÏ´Â ÄÁÅ×À̳ÊÀÇ COleClientItem::OnChangeItemPosition ( COleServerDoc::RequestPositionChange¿¡ ´ë ÇÑ È£ÃâÀÇ °á°ú·Î ¶ó°íµµ ÇÔ) ´ÙÀ½ Àå¼Ò¿¡¼ ó¸® ÇÏ´Â µ¿¾È À§Ä¡ »ç°¢Çü Å©±â¸¦ Á¶Á¤ ÇÏ´Â °æ¿ì "´õ ¸¹°Å³ª ÀûÀº" Ç׸ñÀÇ ÆíÁý â¿¡ Ç¥½Ã µË´Ï´Ù. ÄÁÅ×ÀÌ³Ê ±×³É COleClientItem::OnChangeItemPosition¸¦ ó¸® ÇÏ´Â µ¿¾È À§Ä¡ »ç°¢ÇüÀ» ¼³Á¤ ÇÏ ¿© ¹ÝÀÀ ÇÏ´Â °æ¿ì È®´ë/Ãà¼Ò ºñÀ²À» º¯°æ ÇÏ °í "È®´ë ¶Ç´Â Ãà¼Ò ÇÕ´Ï´Ù." Ç׸ñÀ» Ç¥½Ã µË´Ï´Ù.
¼¹ö´ÂÀÌ Çù»ó Áß¿¡ ÀϾ (¾î´À Á¤µµ)¸¦ Á¦¾îÇÒ ¼ö ÀÖ½À´Ï´Ù. ½ºÇÁ·¹µå½ÃÆ® ¿¹ ¼¿À» Ç¥½Ã ÇÏ·Á¸é ´õ ¸¹°Å³ª ÀûÀº »ç¿ëÀÚ Ç׸ñÀ» ÆíÁý ÇÏ´Â µ¿¾È âÀÇ Å©±â¸¦ Á¶Á¤ ÇÏ´Â °æ¿ì Á¦ÀÚ¸®¿¡¼ ¼±ÅÃÇÒ ¼öµµ ÀÖ½À´Ï´Ù. Word-processor ±×·¡¼ ±×µéÀº â µ¿ÀÏ °í »õ ¿©¹é ÅØ½ºÆ®¸¦ ¹Ù²Ü "ÆäÀÌÁö ¿©¹é"À» º¯°æÇÒ ¼±ÅÃÇÒ ¼ö ÀÖ½À´Ï´Ù. ¼¹ö ÀÚ¿¬ Á¤µµ ( COleServerItem::OnGetExtent¿¡¼ ¹Ýȯ µÈ Å©±â)¸¦ º¯°æ ÇÏ ¿©ÀÌ ±¸Çö Å©±â¸¦ Á¶Á¤ ÇÒ ¶§. ÀÌ À§Ä¡ »ç°¢Çü ¹× ÄÁÅ×ÀÌ³Ê ¹üÀ§ ¸ðµÎ µ¿ÀÏÇÑ ±Ý¾× °á°ú µ¿ÀÏÇÑ È®´ë/Ãà¼Ò ºñÀ², ÇÏÁö¸¸ ´õ Å« ¶Ç´Â ÀÛÀº º¸±â ¿µ¿ªÀ¸·Î º¯°æ ÇÏ¸é µË´Ï´Ù. ¶ÇÇÑ, ´õ ¸¹°Å³ª ÀûÀº ¹®¼ OnDraw¿¡¼ »ý¼º µÈ ¸ÞŸ ÆÄÀÏ¿¡ Ç¥½Ã µÉ °ÍÀÔ´Ï´Ù. »ç¿ëÀÚ Ç׸ñ ±×³É º¸±â ¿µ¿ª Å©±â¸¦ Á¶Á¤ ÇÏ´Â °æ¿ì ¹®¼ ÀÚü´Â º¯È ÇÏ´Â °æ¿ì¡£
»ç¿ëÀÚ ÁöÁ¤ Å©±â¸¦ ±¸Çö ÇÏ °í ¿©ÀüÈ÷ COleIPFrameWnd Ŭ·¡½º¿¡ WM_SIZECHILD ¸Þ½ÃÁö¸¦ ÀçÁ¤ÀÇ ÇÏ ¿© COleResizeBar ¿¡¼ Á¦°ø ÇÏ´Â »ç¿ëÀÚ ÀÎÅÍÆäÀ̽º¸¦ Ȱ¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù. WM_SIZECHILDÀÇ ¼¼ºÎ »çÇ׿¡ ÀÚ¼¼ÇÑ ³»¿ëÀº ´ÙÀ½ À¥ »çÀÌÆ®¸¦ ÂüÁ¶ ÇϽʽÿÀ. ±â¼ú ³ëÆ® 24¡£
±â¼ú ³ëÆ® ¹øÈ£·Î |nbsp; Ä«Å×°í¸®º° ±â¼ú ³ëÆ®(&N)