<À©µµ¿ì 3.1ÀÇ ´ÙÀ̾ó·Î±× ±¸Çö>
MFC¿¡¼ Á¦°øÇÏ´Â CFileDialog¸¦ ÀÌ¿ëÇØ ÇÁ·Î±×·¡¹ÖÀ» ÇÏ´Ùº¸¸é À©µµ¿ì 95°¡ »õ·Ó°Ô Á¦°øÇÏ´Â ½ºÅ¸ÀÏÀÇ °øÅë ´ÙÀ̾ó·Î±×°¡ ¶ß´Âµ¥, ÀÌÀü Çü½Ä(À©µµ¿ì 3.1)ÀÇ °øÅë ´ÙÀ̾ó·Î±×¸¦ À©µµ¿ì 95¿¡¼ ±¸ÇöÇÏ´Â ¹æ¹ýÀÌ ¾ø´ÂÁö¿ä.
¹°·Ð °¡´ÉÇÕ´Ï´Ù. CFileDialog¸¦ ÀÌ¿ëÇØ ¿±â³ª ÀúÀå ´ÙÀ̾ó·Î±×¸¦ ±¸ÇöÇϸé À©µµ¿ì 95 ½ºÅ¸ÀÏÀÇ ÆÄÀÏ´ÙÀ̾ó·Î±×°¡ »ý¼ºµË´Ï´Ù. À©µµ¿ì 95ÀÇ °æ¿ì CFileDialogÀÇ »ý¼ºÀÚ¿¡¼ °Á¦·Î OFN_EXPLORER¶ó´Â Ç÷¡±×¸¦ ³Ö¾îÁֱ⠶§¹®ÀÔ´Ï´Ù. ´ÙÀ½Àº CFileDialogÀÇ »ý¼ºÀÚ ÄÚµåÀÔ´Ï´Ù.
CFileDialog::CFileDialog(BOOL bOpenFile Dialog, LPCTSTR lpszDefExt, LPCTSTR
lpszFileName, DWORD dwFlags, LPCTSTR lpszFilter, CWnd* pParentWnd).CCommonDialog(pParentWnd)
{
// »ý·«...
if(afxData.bWin4) // À©µµ¿ì
95À̸é
{
m_ofn.Flags
|= OFN_EXPLORER;
m_ofn.hInstance
= AfxGetResourceHandle();
}
// »ý·«...
}
±×·¯¹Ç·Î ÀÌÀü ½ºÅ¸ÀÏ(À©µµ¿ì 3.1 ½ºÅ¸ÀÏ)ÀÇ ÆÄÀÏ´ÙÀ̾ó·Î±×¸¦ »ý¼ºÇÏ°í ½ÍÀ¸¸é ´ÙÀ½°ú °°Àº Äڵ带 Ãß°¡ÇØ ÁÖ¸é µË´Ï´Ù.
CFileDialog fd(TRUE);
fd.m_ofn.Flags &= ~OFN_EXPLORER;
fd.DoModal();
MFC¸¦ ÀÌ¿ëÇÑ MDI ÇÁ·Î±×·¥¿¡¼ ÇÁ·¹ÀÓ ¸Þ´º°¡ µ¿ÀûÀ¸·Î º¯ÇÏ´Â °ÍÀ» º¼ ¼ö ÀÖ½À´Ï´Ù. ±¸Ã¼ÀûÀ¸·Î ¾î¶»°Ô ÇÏ¸é µ¿ÀûÀÎ ¸Þ´º¸¦ ¸¸µé ¼ö ÀÖÀ»±î¿ä.
»ý°¢º¸´Ù °£´ÜÇÕ´Ï´Ù. ¸ÕÀú ¸®¼Ò½º ÅÇ¿¡¼ ¸Þ´º¸¦ »ý¼ºÇÕ´Ï´Ù. ±×¸®°í ´ÙÀ½°ú °°Àº Äڵ带 Ãß°¡Çؼ ¸ÞÀÎ ÇÁ·¹ÀÓÀÇ ¸Þ´º¸¦ ¹Ù²Ù¾î ÁÖ¸é µË´Ï´Ù. ¿©±â¼ IDR_MENU1Àº »õ·Î »ý¼ºÇÑ ¸Þ´º ¸®¼Ò½ºÀÇ IDÀÔ´Ï´Ù.
CMenu newMenu;
newMenu.LoadMenu(IDR_MENU1);
AfxGetMainWnd()->SetMenu( &newMenu );
// ¸Þ´º¹Ù¸¦ ´Ù½Ã ±×·ÁÁØ´Ù.
AfxGetMainWnd()->DrawMenuBar();
newMenu.Detach();
CFormView¸¦ ÀÌ¿ëÇØ ÇÁ·Î±×·¥À» ¸¸µé¾ú´Âµ¥ ¸ÞÀÎ ÇÁ·¹ÀÓº¸´Ù ºäÀÇ Å©±â°¡ ´õ Å« °æ¿ì ½ºÅ©·Ñ¹Ù°¡ »ý°Ü ÇÁ·Î±×·¥ÀÌ º¸±â ÈäÇØÁý´Ï´Ù. ÀÌ·± °æ¿ì ½ºÅ©·Ñ¹Ù¸¦ ¾ø¾ÖÁÖ´Â ¹æ¹ýÀº ¹«¾ùÀԴϱî.
ºä°¡ º¸¿©Áö±â Àü¿¡ È£ÃâµÇ´Â ºäÀÇ ¸â¹öÇÔ¼öÀÎ OnInitialUpdate()¿¡¼ À©µµ¿ìÀÇ Å©±â¸¦ Á¶Á¤ÇØ Áְųª ½ºÅ©·Ñ Å©±â¸¦ Á¶Á¤ÇÏ´Â µÎ °¡Áö ¹æ¹ýÀÌ ÀÖ½À´Ï´Ù.
ù¹ø° ¹æ¹ýÀº ÇÁ·¹ÀÓ Å©±â¸¦ ºä Å©±â¿¡ ¸Â°Ô Á¶Á¤ÇØ ÁÖ´Â °ÍÀÔ´Ï´Ù. ÇÏÁö¸¸ ÀÌ °æ¿ì ºäÀÇ Å©±â°¡ ÇÁ·¹ÀÓÀÇ Å©±âº¸´Ù Å©¸é Á¦´ë·Î ÀÛµ¿ÇÏÁö ¾Ê´Â ´ÜÁ¡ÀÌ ÀÖ½À´Ï´Ù.
void CYourFormView::OnInitialUpdate() {
CFormView::OnInitialUpdate();
GetParentFrame()->RecalcLayout();
ResizeParentToFit(/*FALSE*/);
}
µÎ ¹ø° ¹æ¹ýÀº CFormView°¡ CScrollView·ÎºÎÅÍ »ó¼Ó¹ÞÀº Ŭ·¡½ºÀ̹ǷΠSetScaleToFitSize(CSize) ¸¦ ÀÌ¿ëÇØ ½ºÅ©·Ñ Å©±â¸¦ ÇöÀç ºäÀÇ Å©±â·Î Á¶Á¤ÇØ ½ºÅ©·Ñ¹Ù¸¦ ¾ø¾Ö´Â °ÍÀÔ´Ï´Ù.
void CYourFormView::OnInitialUpdate() {
CFormView::OnInitialUpdate();
CRect rcClient;
GetClientRect(&rcClient);
GetParentFrame()->RecalcLayout();
// ½ºÅ©·Ñ Å©±â¸¦ ºäÀÇ Å©±â·Î
¸ÂÃß¾î ÁÜ.
SetScaleToFitSize(rcClient.Size());
}
<À©µµ¿ì 95/NT¿¡¼ ¾ÆÀÌÅÛ °³¼ö Á¦ÇÑ ¿©ºÎ>
À©µµ¿ì 3.1¿¡¼ ¸®½ºÆ® ¹Ú½º´Â 8192°³ÀÇ ¸®½ºÆ® ¾ÆÀÌÅÛ°ú 64KB ÀÌ»óÀÇ ¾ÆÀÌÅÛ µ¥ÀÌÅ͸¦ ÀúÀåÇÒ ¼ö ¾ø¾ú½À´Ï´Ù. ÀÌ·¯ÇÑ Á¦ÇÑ»çÇ×ÀÌ À©µµ¿ì 95/NT¿¡¼µµ ¶È°°ÀÌ Àû¿ëµÇ´ÂÁö ±Ã±ÝÇÕ´Ï´Ù.
À©µµ¿ì 95¿¡¼ ¸®½ºÆ®¹Ú½º ¾ÆÀÌÅÛ µ¥ÀÌÅÍ´Â ¸Þ¸ð¸® ¿ë·®¿¡ ÀÇÇؼ¸¸ Á¦Çѹ޽À´Ï´Ù. ±×¸®°í ¸®½ºÆ® ¾ÆÀÌÅÛÀÇ °³¼ö´Â ¸®½ºÆ® ¹Ú½º ¸Þ½ÃÁöÀÇ wParam°ªÀÌ 16ºñÆ®À̹ǷΠ32767°³¸¦ ÃÊ°úÇÒ ¼ö ¾ø½À´Ï´Ù. ÇÏÁö¸¸ À©µµ¿ì NT¿¡¼´Â ÀÌ·± Á¦ÇÑÀÌ ÀüÇô ¾ø½À´Ï´Ù.
<ÇÁ·Î±×·¥ ÀÛ¼º ÈÄ MRU ±â´É »èÁ¦ ¹× º¯°æ>
MFC¸¦ ÀÌ¿ëÇØ ÇÁ·Î±×·¥À» ¸¸µé¸é MRU(Most Recently Used) ¸®½ºÆ®°¡ ÀÚµ¿À¸·Î ¸Þ´º¿¡ Ãß°¡µÇ´Â °ÍÀ» º¼ ¼ö ÀÖ½À´Ï´Ù. Ŭ·¡½º À§Àúµå¿¡¼ ¼³Á¤ÇÏ°Ô²û µÇ¾î Àִµ¥, ÇÁ·Î±×·¥À» ÀÛ¼ºÇÑ ÈÄ¿¡ MRU ¸®½ºÆ®ÀÇ °³¼ö¸¦ º¯°æÇϰųª ÀÌ ±â´ÉÀ» Á¦°ÅÇÏ´Â ¹æ¹ýÀº ¾ø´ÂÁö¿ä.
CWinApp Ŭ·¡½º´Â CRecentFileList ŸÀÔÀÇ Æ÷ÀÎÅÍ ¸â¹ö º¯¼ö m_pRecentFileList¸¦ °¡Áö°í ÀÖ½À´Ï´Ù. ÀÌ º¯¼ö´Â CWinApp::LoadStdProfileSettings()¶ó´Â ÇÔ¼ö°¡ È£ÃâµÇ¾úÀ» ¶§ ¸Þ¸ð¸®°¡ ÇÒ´çµÇ°í Ãʱâȵ˴ϴÙ. ±×¸®°í ÆÄÀÏÀ» ÀúÀåÇÒ ¶§¸¶´Ù ÇÁ·¹ÀÓ¿÷Àº ±× ÆÄÀÏ À̸§À» ÀÌ º¯¼ö ¸®½ºÆ®¿¡ Ãß°¡ÇÕ´Ï´Ù.
CWinApp::LoadStdProfileSettings()Àº CWinApp Ŭ·¡½º·ÎºÎÅÍ »ó¼Ó¹ÞÀº Ŭ·¡½ºÀÇ CYourApp::InitInstance()¿¡¼ È£ÃâµË´Ï´Ù. ÀÌ ÇÔ¼öÀÇ ¿øÇüÀº ´ÙÀ½°ú °°½À´Ï´Ù.
void CWinApp::LoadStdProfileSettings(
UINT
nMaxMRU = _AFX_MRU_COUNT);
¿©±â¼ nMaxMRU´Â MRU ¸®½ºÆ®ÀÇ °³¼ö¸¦ ÀǹÌÇÏ¸ç µðÆúÆ® ¸Å°³º¯¼öÀÎ _AFX_MRU_LIST ´Â Ŭ·¡½º À§Àúµå¿¡¼ ¼³Á¤ÇÑ °ªÀ¸·Î º¸Åë 4°³ÀÔ´Ï´Ù. ¸¸¾à nMaxMRU¸¦ ¹Ù²Ù¸é À¯ÁöµÇ´Â MRU ¸®½ºÆ® °³¼öµµ ¹Ù²î°Ô µË´Ï´Ù. µû¶ó¼ nMaxMRU°¡ 0À̸é ÇÁ·¹ÀÓ¿÷Àº MRU ¸®½ºÆ®¸¦ À¯ÁöÇÏÁö ¾Ê½À´Ï´Ù. ¸¸¾à CYourApp::InitInstance() ÀÌ¿ÜÀÇ °÷¿¡¼ MRU ¸®½ºÆ®ÀÇ °³¼ö¸¦ ¹Ù²ãÁÖ´Â ÀÛ¾÷ÀÌ ÇÊ¿äÇÏ´Ù¸é, m_pRecentFileList ¸â¹ö¿¡ ÇÒ´çµÈ ¸Þ¸ð¸®¸¦ ¹Ýµå½Ã ÇØÁ¦ÇØ¾ß ÇÕ´Ï´Ù.
void CMyApp::OtherFunction()
{
if(m_pRecentFileList
!= NULL) {
delete
m_pRecentFileList;
m_pRecentFileList
= NULL;
}
//
MRU ¸®½ºÆ®ÀÇ °³¼ö¸¦ 6°³·Î ¼³Á¤ÇÑ´Ù.
LoadStdProfileSettings(6);
}
<¸ð´Þ ÇÁ·ÎÆÛƼ½ÃÆ® ´ÙÀ̾ó·Î±×¿¡¼ ¹öÆ° Á¦°Å>
¸ð´Þ ÇÁ·ÎÆÛƼ½ÃÆ®(PropertySheet) ´ÙÀ̾ó·Î±×¸¦ ¸¸µé¾ú½À´Ï´Ù. ±×·±µ¥ ÇÁ·ÎÆÛƼ½ÃÆ®¿¡ ±âº»ÀûÀ¸·Î µé¾î ÀÖ´Â ¹öÆ° Áß µµ¿ò¸»°ú Àû¿ë ¹öÆ°Àº ÇÊ¿äÇÏÁö ¾Ê¾Æ ¾ø¾ÝÀ¸¸é ÁÁ°Ú´Âµ¥ ¾Æ¹«¸® ã¾ÆºÁµµ ÀÌ ¹öÆ°¿¡ ´ëÇÑ ¾ð±ÞÀÌ ¾ø´õ±º¿ä. ¾î¶»°Ô Çϸé ÀÌ µÎ °³ÀÇ ¹öÆ°À» ¾ø¾Ù ¼ö ÀÖÀ»±î¿ä.
´ÙÀ½ Äڵ带 »ðÀÔÇØÁÖ¸é °£´ÜÈ÷ ¸ð´Þ ÇÁ·ÎÆÛƼ½ÃÆ® ´ÙÀ̾ó·Î±× ¹öÆ°À» Á¦°ÅÇÒ ¼ö ÀÖ½À´Ï´Ù.
(GetDlgItem(ID_HELP))->ShowWindow(SW_HIDE);
(GetDlgItem(ID_APPLY_NOW))->ShowWindow(SW_HIDE);
- the end of this article -