Image Processing Program

È­¸éº¸´Ù Å« ±×¸²À» º¼ ¶§´Â ½ºÅ©·ÑÀ».

 

 ¾Õ¿¡¼­ ¸¸µç ºñÆ®¸Ê ÆÄÀÏÀ» Àоî¿À´Â ¿¹Á¦´Â MDIÀÇ º¸Åë ºä¿¡¼­ ¸¸µç °Ì´Ï´Ù. ½ºÅ©·Ñ ±â´ÉÀÌ ¾ÆÁ÷ ¾ø¾î¼­ È­¸éº¸´Ù Å« ±×¸²ÀÏ °æ¿ì È­¸éÀ» ¹þ¾î³ª´Â ºÎºÐÀº º¼ ¼ö°¡ ¾ø½À´Ï´Ù. À̹ø¿¡´Â ½ºÅ©·Ñ ±â´ÉÀ» ³Ö¾îº¸±â·Î ÇÏÁÒ.

1. ¾ÕÀÇ ÇÁ·ÎÁ§Æ®¸¦ ±×´ë·Î ´Ù½Ã Çѹø ¸¸µå´Âµ¥ ´Ù¸¥ Á¡Àº MFC AppWizard - step 6/6¿¡¼­ CViewÀÇ Base Class¸¦ CScrollView·Î ¹Ù²ß´Ï´Ù.

2. Scroll ViewÀÇ È­¸é ¸éÀûÀ» ±×¸²°ú °°ÀÌ ¸ÂÃß±â À§ÇØ ´ÙÀ½ ±½Àº ±Û¾¾ ºÎºÐÀ» °íĨ´Ï´Ù. ±×¸®°í ÄÄÆÄÀÏÀ» Çϸé ÀÚµµÀ¸·Î ½ºÅ©·Ñ¹Ù°¡ »ý°Ü¼­ È­¸é¿¡ ³ªÅ¸³ªÁö ¾Ê´Â ³ª¸ÓÁö ºÎºÐÀ» º¼ ¼ö ÀÖ½À´Ï´Ù.

void CImgPro2View::OnInitialUpdate()
{
        CScrollView::OnInitialUpdate();

        CSize sizeTotal;
        // TODO: calculate the total size of this view
        CImgPro2Doc* pDoc = GetDocument();
        ASSERT_VALID(pDoc);

        sizeTotal.cx = pDoc->Width();
        sizeTotal.cy = pDoc->Height();

        SetScrollSizes(MM_TEXT, sizeTotal);
}

 

(note)

 - CScrollView ´Â ³í¸®ÀûÀÎ ¸éÀûÀ» °¡Áö¸ç ¸¸¾à À©µµ¿ìÀÇ Å©±â°¡ ³í¸®ÀûÀÎ ¸éÀûº¸´Ù ÀÛÀ» °æ¿ì ÀÚµ¿À¸·Î ½ºÅ©·Ñ ¹Ù¸¦ ³ªÅ¸³»¸ç º¸ÀÌÁö ¾Ê´Â ´Ù¸¥ ºÎºÐÀ¸·Î À̵¿ÇÒ ¼ö ÀÖ°Ô ÇØ ÁØ´Ù. ³í¸®ÀûÀÎ ¸éÀûÀ» ÁöÁ¤ÇÒ ¶§´Â SetScrollSizes ÇÔ¼ö¸¦ »ç¿ëÇϸç ÀÌ ÇÔ¼ö¿¡¼­ CScrollViewÀÇ °¡»óÀûÀÎ Å©±â¿Í ÇÔ²² ¸ÅÇθðµå, À̵¿°Å¸® µîÀ» ÁöÁ¤ÇÑ´Ù. SetScrollSizes ÇÔ¼öÀÇ È£Ã⠽ñâ´Â ºä°¡ óÀ½ ¸¸µé¾îÁú ¶§ÀÎ OnInitialUpdate ÇÔ¼ö°¡ °¡Àå ÀûÀýÇÏ´Ù.

 - ºäÀÇ ³í¸®ÀûÀÎ Å©±â¸¦ ¼³Á¤ÇÏ´Â SetScrollSizes ÇÔ¼öÀÇ ¿øÇüÀº ´ÙÀ½°ú °°´Ù.

 void SetScrollSizes(int nMapMode,
                             SIZE sizeTotal,
                             const SIZE& sizePage = sizeDefault,
                             const SIZE& sizeLine = sizeDefault);

 ¸ðµÎ ³×°³ÀÇ Àμö¸¦ °¡Áö°í ÀÖÁö¸¸ µÚÀÇ µÎ Àμö´Â µðÆúÆ®°¡ Àû¿ëµÇ¹Ç·Î ÇÊ¿äÇÏÁö ¾ÊÀ» °æ¿ì´Â »ç¿ëÇÏÁö ¾Ê¾Æµµ µÈ´Ù. °¢ ÀμöÀÇ Àǹ̸¦ ¾Ë¾Æº¸ÀÚ.

  nMapMode

  ºä¿¡¼­ »ç¿ëÇÒ ¸ÅÇÎ ¸ðµå¸¦ ¼³Á¤ÇÑ´Ù. ¸ÅÇÎ ¸ðµå¸¦ ¾î¶»°Ô ¼³Á¤Çϴ°¡¿¡ µû¶ó ºäÀÇ Å©±â¸¦ ÁöÁ¤ÇÏ´Â °ªµéÀÇ ³í¸®ÀûÀÎ ´ÜÀ§°¡ ´Þ¶óÁö°Ô µÈ´Ù. ´Ü ¸ÅÇÎ ¸ðµå Áß MM_ISOTROPIC °ú MM_ANISOTROPIC Àº CScrollView¿¡¼­ »ç¿ëÇÒ ¼ö ¾ø´Ù.

  sizeTotal

  ½ºÅ©·Ñ ºäÀÇ ÃÑ Å©±â, Áï ³í¸®ÀûÀÎ ¸éÀûÀ» ÁöÁ¤ÇÑ´Ù. CSizeÇü °´Ã¼ÀÇ cx, cy ¸â¹ö¸¦ »ç¿ëÇÏ¿© °¡·Î, ¼¼·ÎÀÇ Å©±â¸¦ °¢°¡ ´Ù¸£°Ô ¼³Á¤ÇÒ ¼ö ÀÖ´Ù. Å©±â°ªÀ̹ǷΠcx, cy´Â ´ç¿¬È÷ ¾ç¼ö¿©¾ß Çϸç, AppWizard°¡ ÀÛ¼ºÇØ ÁÖ´Â Äڵ忡´Â cx, cy ¸ðµÎ 100À¸·Î ¼³Á¤µÇ¾î ÀÖ´Ù.

  sizePage

  ½ºÅ©·Ñ ¹ÙÀÇ ¸öü ºÎºÐÀ» Ŭ¸¯ÇÒ °æ¿ì ½ºÅ©·ÑµÉ ¾çÀ» ÁöÁ¤ÇÑ´Ù. µðÆúÆ®·Î ÀÌ °ªÀº Àüü Å©±âÀÇ 1/10 ·Î µÇ¾î ÀÖ´Ù. Áï Å©±â°¡ 1000 Çȼ¿ÀÏ ¶§ ½ºÅ©·Ñ ¹ÙÀÇ ¸öü ºÎºÐÀ» Ŭ¸¯Çϸé 100 Çȼ¿¾¿ ½ºÅ©·ÑµÈ´Ù.

  sizeLine

  ½ºÅ©·Ñ ¹ÙÀÇ ³¡¿¡ ÀÖ´Â È­»ìÇ¥ ¹öưÀ» Ŭ¸¯ÇÒ °æ¿ì ½ºÅ©·ÑµÉ ¾çÀ» ÁöÁ¤ÇÑ´Ù. µðÆúÆ®·Î ÀÌ °ªÀº sizePageÀÇ 1/10 ·Î µÇ¾î ÀÖ´Ù. Áï ºä Àüü Å©±âÀÇ 1/100 ÀÌ´Ù.