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 ÀÌ´Ù.