¸ÞÀÎ ÇÁ·¡ÀÓ À©µµ¿ì¿¡ ¾ó±¼À» ºÎ¿©Çϱâ


1.¿ä¾à

MDIÀÇ ¸ÞÀÎ ÇÁ·¡ÀÓ À©µµ¿ì¿¡ ºñÆ®¸Ê ÆÄÀÏÀ» »ðÀÔÇÏ´Â ¹æ¹ýÀ» ¼Ò°³ÇÕ´Ï´Ù.


2.º»¹®

MDI ȯ°æÀ¸·Î ÇÁ·Î±×·¡¹ÖÀ» ÇÏ½Ç ¶§ ȸ»ö ºû±òÀÇ µüµüÇÏ°í ¹«¹Ì °ÇÁ¶ÇÑ ¸ÞÀÎ ÇÁ·¡ÀÓ À©µµ¿ì¸¦ ¸¹ÀÌ º¸¼ÌÀ» °Ì´Ï´Ù. ÀÌ·¯ÇÑ ¹«¹Ì °ÇÁ¶ÇÑ ¸ÞÀÎ ÇÁ·¡ÀÓ À©µµ¿ì¿¡ ºñÆ®¸Ê ÆÄÀÏÀ» µ¤¾î ¾º¿ö¼­ µüµüÇÑ ¸ÞÀÎ ÇÁ·¡ÀÓ À©µµ¿ì¸¦ Æ÷ÀåÇØ º¸±â·Î ÇϰڽÀ´Ï´Ù. ÀÏ´Ü, ¸ÞÀÎ ÇÁ·¡ÀÓÀ» ¿ì¸®°¡ °Çµå¸®±â À§Çؼ­´Â ¿ì¸®°¡ ¸¸µé¾î ³õÀº applicationÀÇ mainframe classº¸´Ù »óÀ§ Ŭ·¡½ºÀÎ CWnd Ŭ·¡½º¿¡¼­ »ó¼Ó ¹Þ´Â Ŭ·¡½º¸¦ Çϳª ´õ ¸¸µé¾î¼­ ÀÌ Å¬·¡½º¿¡¼­ ºñÆ®¸Ê ÀÛ¾÷À» ¼öÇàÇÏ¸é µË´Ï´Ù. ÀÌ·¯ÇÑ ÀÛ¾÷À» Çϱâ À§Çؼ­ ¿ì¸®°¡ ¼¼¿ö¾ß ÇÏ´Â Àü·«Àº ¿ì¼± ¸ÕÀú Æ÷Åä¼¥À̳ª ÆäÀÎÆ® ¼¥ ÇÁ·Î¿Í °°Àº ±×·¡ÇÈ ¿¡µðÆÃ ÇÁ·Î±×·¥¿¡¼­ ¿ì¸®°¡ ¿øÇÏ´Â ¿µ»ó ó¸® ÀÛ¾÷À» ¼öÇàÇϰí À̸¦ ºñÆ®¸ÊÀ¸·Î ÀúÀåÀ» ÇÕ´Ï´Ù. ±×¸®°í CWnd Ŭ·¡½º¿¡¼­ »ó¼Ó ¹Þ´Â Ŭ·¡½º¸¦ Çϳª ´õ ¸¸µé¾î¼­ ÀÌ Å¬·¡½º¿¡¼­ ºñÆ®¸Ê ÀÛ¾÷À» ¼öÇàÇÕ´Ï´Ù. ±×¸®°í ÀÌ »õ·Î »ðÀÔµÈ Å¬·¡½º¿¡ ¿ì¸®°¡ ¿µ»ó ó¸®ÇÏ¿© ÀúÀåÇÏ¿© µÐ ºñÆ®¸Ê ÆÄÀÏÀ» ·ÎµùÇÕ´Ï´Ù. ±×¸®°í ÀÌ »õ·Î »ðÀÔµÈ Å¬·¡½º¸¦ ¿ì¸®°¡ ¸¸µé¾î ³õÀº applicationÀÇ mainframe class¿¡ ÀÎŬ·çµå ½ÃŲ ´ÙÀ½, mainframe class°¡ »ý¼º µÇ´Â ½ÃÁ¡¿¡¼­ ·ÎµùµÈ ºñÆ®¸Ê ÆÄÀÏÀ» »Ñ·ÁÁÖ¸é ³¡³³´Ï´Ù. ¾ÆÁÖ °£´ÜÇÏÁö¿ä?? ±×·³ ¼Ò½ºÄڵ带 º¸½Ã°í À½¹ÌÇØ º¸½Ã±â¸¦ ¹Ù¶ø´Ï´Ù.


3.¿¹Á¦


//¾Æ·¡ÀÇ  IDB_ LEDZEPPLINEÀº ¸®¼Ò½º¿¡ ·ÎµùµÇ¾î ÀÖ´Â ºñÆ®¸Ê ÆÄÀÏÀÇ ¾ÆÀ̵ð ÀÔ´Ï´Ù. 

CMyBMPClient::CMyBMPClient() 

{ 

    VERIFY(m_bmp.LoadBitmap(IDB_LEDZEPPLINE)); 

} 

BOOL CMyBMPClient::OnEraseBkgnd(CDC* pDC) 

{ 

    // TODO: Add your message handler code here and/or call default 

    CWnd::OnEraseBkgnd(pDC); 

    BITMAP bm ; 

    CDC dcMem ; 

    

    VERIFY(m_bmp.GetObject(sizeof(bm), (LPVOID)&bm)); 

    

    dcMem.CreateCompatibleDC(pDC); 

    CBitmap* pOldBMP = (CBitmap*) dcMem.SelectObject(&m_bmp); 

    

    CRect rect; 

    GetClientRect(rect); 

    

    pDC->BitBlt((rect.right-bm.bmWidth) / 2,   // centered 

        (rect.bottom-bm.bmHeight) / 2, 

        bm.bmWidth, 

        bm.bmHeight, 

        &dcMem, 

        0, 0, 

        SRCCOPY); 

    

    dcMem.SelectObject(pOldBMP) ; 

    

    return TRUE; 

    

} 



void CMyBMPClient::OnSize(UINT nType, int cx, int cy) 

{ 

    CWnd::OnSize(nType, cx, cy); 

    

    // TODO: Add your message handler code here 

    RedrawWindow(NULL, NULL, 

        RDW_INVALIDATE|RDW_ERASE|RDW_ERASENOW|RDW_ALLCHILDREN);     

    return ; 

    

} 



// ÀÌ·¸°Ô ÄÚµùÇϽŠµÚ¿¡ ¸ÞÀÓ ÇÁ·¡ÀÓ Å¬·¡½ºÀÇ OnCreate ÇÔ¼ö¿¡ 

// À̸¦ ÀÇ Å¬·¡½º¸¦ »ðÀÔ½Ã¸é µË´Ï´Ù.  



// ¸ÕÀú mainframe class ÇØ´õ¿¡ ´ÙÀ½°ú °°ÀÌ Á¤ÀÇ ÇϽðí, 

CMyBMPClient m_wndClient; 



// cpp ÆÄÀÏ¿¡¼­ ¸ÞÀÎ ÇÁ·¡ÀÓ »ý¼ºÀ» ´ã´çÇÏ´Â OnCreate ÇÔ¼ö¿¡ ´ÙÀ½°ú °°ÀÌ ÄÚµùÇÕ´Ï´Ù. 

int CMainFrame::OnCreate(LPCREATESTRUCT lpCreateStruct) 

{ 

    if (CMDIFrameWnd::OnCreate(lpCreateStruct) == -1) 

        return -1; 

    if (!m_wndClient.SubclassWindow(m_hWndMDIClient)) 

    { 

        TRACE("Failed to subclass MDI client window.\n"); 

        return -1; 

    } 

    

    // »ý·«.. 

} 



- 2001.08.13 Smile Seo -