ÆÄÀÏ ºÒ·¯¿À±â/ÀúÀåÇϱâ

(CDib Ŭ·¡½º¸¦ ÀÌ¿ëÇÏ¿© ºñÆ®¸ÊÀ» ºÒ·¯¿À´Â ¿¹Á¦¿¡¼­)

 

1. µµÅ¥¸ÕÆ®¿¡ CDib Ŭ·¡½ºÀÇ ¸â¹ö º¯¼ö¸¦ Ãß°¡ÇÕ´Ï´Ù. ¹°·Ð µµÅ¥¸ÕÆ® Ŭ·¡½º¿¡¼­ À̸®Àú¸® »ç¿ëÇÒ °Å´Ï±î publicÀ¸·Î ¼³Á¤Çؾ߰ÚÁÒ. ¹°·Ð ±× Àü¿¡ Dib.h/cpp ÆÄÀÏÀ» º¹»çÇØ ³Ö°í ÇÁ·ÎÁ§Æ®¿¡ Ãß°¡Çϰí Çì´õÆÄÀÏ ÀÎŬ·çµå ÇÏ´Â °Ç ¸» ¾ÈÇØµµ ¾Ë°ÚÁÒ?

public:
       CDib    m_dib;

2. Ŭ·¡½º À§Àúµå¸¦ ¿­¾î Class name¿¡¼­ xxApp Ŭ·¡½º¸¦ ¼±ÅÃ, Object IDs¿¡¼­ ID_FILE_OPENÀ» ¼±ÅÃ, Messages¿¡¼­ COMMAND¸¦ ¼±ÅÃÇϰí, Add Function ¹öưÀ» ´©¸¨´Ï´Ù.

 ½á³ÖÀ» ÄÚµå´Â ´ÙÀ½Ã³·³...

void CDibLookExApp::OnFileOpen()
{
        // TODO: Add your command handler code here
        char szFilter[] = "Image Files(*.BMP)|*.BMP|All Files(*.*)|*.*||";

        CFileDialog fileDlg(TRUE, NULL, NULL, OFN_HIDEREADONLY, szFilter);
        if(IDOK == fileDlg.DoModal()) {
                OpenDocumentFile(fileDlg.GetPathName());

        }               
}

 ¸¸¾à È®ÀåÀÚ¸¦ ¿©·µ ÁöÁ¤ÇÏ·Á¸é ´ÙÀ½À» Âü°íÇϼ¼¿ä.

char szFilter[] = "Image Files(*.BMP, *.IPF)|*.BMP; *.IPF|All Files(*.*)|*.*||";

 ±½Àº ±Û¾¾ ºÎºÐÀ» º¸¸é ¾Ë°ÚÁö¸¸ È®ÀåÀÚ »çÀ̸¦ ¼¼¹ÌÄÝ·Ð(;)À¸·Î ±¸ºÐÇÕ´Ï´Ù.

3. ´Ù½Ã Ŭ·¡½º À§Àúµå¸¦ ¿­¾î À̹ø¿¡´Â µµÅ¥¸ÕÆ® Ŭ·¡½º¿¡¼­ OnOpenDocument¸¦ ¼±ÅÃÇÕ´Ï´Ù.

 ÀÌ ÇÔ¼ö¿¡¼­ ÀÎÀÚÀÎ lpszPathName ´Â À§ÀÇ OnFileOpen¿¡¼­ »ý¼ºÇÑ ÆÄÀÏ ¿­±â ´ÙÀ̾ó·Î±×¿¡¼­ ¾òÀº, Àüü °æ·Î¸¦ Æ÷ÇÔÇÑ ÆÄÀÏÀ̸§ÀÔ´Ï´Ù. ±×¸®°í LoadBMP() ÇÔ¼ö´Â CDIB Ŭ·¡½ºÀÇ ¸â¹öÇÔ¼ö·Î ºñÆ®¸Ê ÆÄÀÏÀ» ºÒ·¯¿À´Â ÇÔ¼öÁÒ.

BOOL CDibLookExDoc::OnOpenDocument(LPCTSTR lpszPathName)
{
        if (!CDocument::OnOpenDocument(lpszPathName))
                return FALSE;
        
        // TODO: Add your specialized creation code here
        if(!m_dib.LoadBMP(lpszPathName)) return FALSE;

        return TRUE;
}

4. ´ÙÀ½Àº À§¿Í °°Àº ¹æ¹ýÀ¸·Î OnSaveDocument¸¦ ¼±ÅÃÇÕ´Ï´Ù.

BOOL CDibLookExDoc::OnSaveDocument(LPCTSTR lpszPathName)
{
        // TODO: Add your specialized code here and/or call the base class
        if(!m_dib.SaveBMP(lpszPathName)) return FALSE;

        return CDocument::OnSaveDocument(lpszPathName);
}