ÆÄÀÏ ºÒ·¯¿À±â/ÀúÀåÇϱâ
(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);
}