<ÀÀ¿ë ÇÁ·Î±×·¥À» ÃÖ¼Ò Å©±â ¸¸µé±â>

MFC 4.0À¸·Î µÎ ÇÁ·Î±×·¥ °£ÀÇ ¸Þ½ÃÁö Àü´Þ ÇÁ·Î±×·¥À» ÀÛ¼ºÇÒ ¶§ ½ÇÇàÁßÀ̶ó´Â °Í¸¸ È®ÀÎÇÏ¸é µË´Ï´Ù. ±×·¡¼­ ÇÁ·Î±×·¥À» ÃÖ¼ÒÅ©±â·Î ÀÛ¾÷ÁÙ¿¡ ¶ç¿ì°í ½ÍÀºµ¥ ¾î¶»°Ô ÇÏ¸é µÇ´ÂÁö¿ä.

 À©µµ¿ì´Â ¿ø·¡ Å©±â·Î º¹±¸ÇÒ ¶§ WM_QUERYOPEN ¸Þ½ÃÁö¸¦ Àü´ÞÇÕ´Ï´Ù. Ŭ·¡½º À§Àúµå¸¦ »ç¿ëÇØ OnQueryOpen()¿¡¼­ ¸Þ½ÃÁö¸¦ ó¸®ÇÑ ÈÄ ÀÀ¿ë ÇÁ·Î±×·¥ÀÌ ¿ø·¡ Å©±â·Î º¹±¸ÇÏÁö ¾Ê°Ô ÇÏ·Á¸é FALSE¸¦ ¸®ÅÏÇÏ¸é µË´Ï´Ù.

BOOL CMainFrame::OnQueryOpen()
{
     ....
     return FALSE;
}

< ¿¡µðÆ® ¹Ú½º¿¡¼­ ¿£ÅÍÅ° È®ÀÎ ¹æ¹ý >

´ÙÀ̾ó·Î±×¹Ú½º¿¡ ÀÖ´Â ¿¡µðÆ® ¹Ú½º¿¡¼­ ¿£ÅÍÅ°°¡ ´­·ÁÁú ¶§¸¶´Ù µ¥ÀÌÅ͸¦ ¾ò°í ½Í½À´Ï´Ù.

 ÄÁÆ®·ÑÀÌ »ý¼ºµÇ±â Àü¿¡ ¸Þ½ÃÁö¸¦ °¡·Îä¼­ ÀÛ¾÷ÇÏ´Â °ÍÀ» ½´ÆÛŬ·¡½ÌÀ̶ó Çϸç, ÄÁÆ®·ÑÀÌ »ý¼ºµÈ ÈÄ¿¡ ¸Þ½ÃÁö¸¦ °¡·Îä´Â °ÍÀ» ¼­ºêŬ·¡½ÌÀ̶ó°í ÇÕ´Ï´Ù. ±×·¯¹Ç·Î ´ÙÀ̾ó·Î±×¹Ú½ºÀÇ ¿¡µðÆ® ÄÁÆ®·Ñ¿¡¼­ ¿£ÅÍÅ°ÀÇ ÀԷ¿©ºÎ¸¦ üũÇÏ°í ½Í´Ù¸é ¼­ºêŬ·¡½ÌÀ» ÀÌ¿ëÇÏ¸é µË´Ï´Ù.
 ¸ÕÀú CEdit Ŭ·¡½º¸¦ º£À̽º Ŭ·¡½º·Î ¼±ÅÃÇÑ ÈÄ CEditTest·Î Ŭ·¡½º¸íÀ» ÁöÁ¤Çß´Ù¸é WM_CHAR ¸Þ½ÃÁö¸¦ ¼±ÅÃÇÕ´Ï´Ù. CEditTest::OnChar()ÀÇ Ã¹ ¹ø° ÀÎÀÚÀÎ nChar°¡ ¿¡µðÆ® ÄÁÆ®·Ñ¿¡ µé¾î¿À´Â ¹®ÀÚÀ̹ǷΠÁ¦¾îÇÏ·Á´Â ¹®ÀÚ¸¦ ½á ÁÖ¸é µË´Ï´Ù. °¡·É ¼ýÀÚ¸é µé¾î¿À±æ ¹Ù¶õ´Ù¸é ´ÙÀ½°ú °°ÀÌ ÇÏ¸é µË´Ï´Ù.

if((nChar >= '0' && nChar <= '9') || (nChar == VK_BACK))
// VK_BACK´Â ¹é½ºÆäÀ̽ºÀÌ´Ù.
{
     CEdit::OnChar( ³»º¸³¾ ¹®ÀÚ, ³ª¸ÓÁö ÀÎÀÚµé... )
}
else
............  

 ´ÙÀ½À¸·Î ´ÙÀ̾ó·Î±× Ŭ·¡½º°¡ Á¸ÀçÇÏ´Â ÆÄÀÏÀÌ testDlg.cpp/h¶ó¸é testDlg.h¿¡¼­ 'CEditTest m_EditTest;' ¶ó°í ÇÑ ÈÄ testDlg.hÀÇ ¸Ç ¾ÕºÎºÐ¿¡ '#include "EditTest.h"¸¦ ºÙ¿©ÁÖ¸é µË´Ï´Ù.
 ÀÌÁ¦ ¸¶Áö¸·À¸·Î InitDialog()¿¡¼­ 'm_EditTest.SubclassDlgItem(IDC_EDITTEST, this); ¸¦ ÷°¡ÇÏ¸é ¿¡µðÆ® ÄÁÆ®·Ñ ¼­ºêŬ·¡½ÌÀº ³¡³³´Ï´Ù. ÀÌ¿Í °°Àº ¹æ¹ýÀ» »ç¿ëÇÏ¸é ¿¡µðÆ® ÄÁÆ®·Ñ¿¡ µé¾î¿À´Â ¹®ÀÚ¸¦ ¸ðµÎ Á¦¾îÇÒ ¼ö ÀÖ½À´Ï´Ù.
 ´Ù¸é ÇÑ °¡Áö ÁÖÀÇÇÒ Á¡Àº ¼­ºêŬ·¡½ÌÇÒ ¶§ ÄÁÆ®·Ñ Ŭ·¡½º º¯¼ö Á¤ÀÇ ½Ã Ãæµ¹ÀÌ »ý±â¹Ç·Î ¿øÇÏ´Â ¿¡µðÆ® ¹Ú½ºÀÇ ¸â¹öº¯¼ö¸¦ Ŭ·¡½º À§Àúµå¿¡¼­ ¼³Á¤ÇÏ¸é ¾ÈµË´Ï´Ù.

 

<¿À¹ö·¦ À̹ÌÁö Ç¥ÇöÇϱâ>

ÇϳªÀÇ ¹è°æ À̹ÌÁö¿¡ ¿©·¯ ÁÖÁ¦ À̹ÌÁö¸¦ °ãÃÄ ÇϳªÀÇ ¿À¹ö·¦ À̹ÌÁö¸¦ Ç¥ÇöÇÏ°í ½Í½À´Ï´Ù.

 °ãÃÄÁø À̹ÌÁö¸¦ »ç¿ëÇϱâ À§Çؼ­´Â ¸ÕÀú ±× À̹ÌÁö°¡ ¿À¹ö·¹ÀÌ(overlay) À̹ÌÁö·Î Á¤ÀǵŠÀÖ¾î¾ß ÇÕ´Ï´Ù. CImageList::SetOverlayImage()¸¦ »ç¿ëÇϸé À̹ÌÁö ¸®½ºÆ®´ç 4°³±îÁö ºñÆ®¸ÊÀ» ¿À¹ö·¹ÀÌ À̹ÌÁö·Î Á¤ÀÇÇÒ ¼ö ÀÖ½À´Ï´Ù.

     m_imageList.SetOverlayImage(0, 1);

 SetOverlayImage()´Â À̹ÌÁö À妽º¿Í ¿À¹ö·¹ÀÌ À妽º¸¦ ÆĶó¹ÌÅÍ·Î ÃëÇϴµ¥, ¿©±â¼­ ¿À¹ö·¹ÀÌ À妽º´Â 1¿¡¼­ºÎÅÍ ½ÃÀÛÇÑ´Ù´Â °ÍÀ» À¯ÀÇÇØ¾ß ÇÕ´Ï´Ù.

m_imageList.Draw(pDC, 3, ptOverlay, INDEXTOOVERLAYMASK | ILD_OVERLAYMASK);

ÀÌ ¶§ INDEXTOOVERLAYMASK ¸ÅÅ©·Î¿Í ILD_OVERLAYMASK Ç÷¡±× Á¶ÇÕÀº ¿À¹ö·¹ÀÌ À̹ÌÁö À妽º°¡ ±âÃÊ À̹ÌÁö¿Í Á¶Çյǵµ·Ï Çϱâ À§ÇÑ °ÍÀÔ´Ï´Ù.

 

<»ç¿ë °¡´ÉÇÑ ½Ã½ºÅÛ ¸Þ¸ð¸® ¿ë·®>

ºñÁÖ¾ó C++ 4.0¿¡¼­ ¸Þ¸ð¸®¸¦ ÇÒ´çÇÏ·Á°í ³²Àº ¸Þ¸ð¸® ¿ë·®À» ¾Ë°í ½ÍÀºµ¥ ¾î¶² ÇÔ¼ö¸¦ ÀÌ¿ëÇØ¾ß ÇÏ´ÂÁö ¾Ë°í ½Í½À´Ï´Ù.

 ÇöÀç »ç¿ë°¡´ÉÇÑ ¸Þ¸ð¸® ¿ë·®À» ¾Ë¾Æº¸·Á¸é GlobalMemoryStatus()¸¦ »ç¿ëÇÏ¸é µË´Ï´Ù.
 GlobalMemoryStatus()´Â ÇöÀç ½Ã½ºÅÛ ±¸¼º¿¡¼­ ÇÁ·Î±×·¥ÀÌ ½ÇÇàµÉ ¼ö ÀÖ´ÂÁö¿¡ ´ëÇÑ Á¤º¸¸¦ ÇÁ·Î±×·¡¸Ó¿¡°Ô Á¦°øÇÕ´Ï´Ù.
 ÀÌ ÇÔ¼ö¸¦ »ç¿ëÇÏ·Á¸é Àüü ¸Þ¸ð¸®¿¡ ´ëÇÑ Á¤º¸¸¦ °®°í ÀÖ´Â ±¸Á¶Ã¼ (MEMORYSTATUS)ÀÇ ÁÖ¼Ò¸¦ Àü´ÞÇØ¾ß Çϸç, ÀÌ ÁÖ¼Ò·Î »ç¿ë °¡´ÉÇÑ ¹°¸® ¸Þ¸ð¸®¿Í °¡»ó ¸Þ¸ð¸®¸¦ ¾òÀ» ¼ö ÀÖ½À´Ï´Ù.

 

<»óŹ٠¸ð¾ç º¯°æ>

»óŹٿ¡ »ç¿ëµÇ´Â ÆùÆ®¸¦ º¯°æÇÏ·Á ÇÕ´Ï´Ù. ±Û²ÃÀ» º¯°æÇϴµ¥ ÇÊ¿äÇÑ ¸â¹öÇÔ¼ö°¡ CStatusBar¿¡ Á¸ÀçÇÏ´ÂÁö ¾Ë°í ½Í½À´Ï´Ù.

 ¸â¹ö ÇÔ¼öÀÎ CWnd::SetFont¸¦ »ç¿ëÇÏ¸é °£´ÜÈ÷ ÇØ°áÇÒ ¼ö ÀÖ½À´Ï´Ù. CStatusBar´Â CWnd Ŭ·¡½º¿¡¼­ »ó¼Ó¹ÞÀº °ÍÀ̹ǷΠWM_SETFONT ¸Þ½ÃÁö¸¦ »ç¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù. Á» ´õ ¿¹»Û ±Û²ÃÀÇ »óŹٸ¦ ¸¸µé·Á ÇÑ´Ù¸é »óŹٰ¡ »ý¼ºµÇ°í Ãâ·ÂµÇ±â Àü¿¡ CMainFrame::OnCreate ¿¡¼­ 3Â÷¿ø ½ºÅ¸ÀÏ·Î º¯°æÇÏ¸é µË´Ï´Ù.

 

<»óŹٿ¡ ÀÛ¾÷ÁøÇà Ç¥½Ã>

MFC 4.0À¸·Î »óŹٿ¡ ÀÛ¾÷ ÁøÇà °úÁ¤À̳ª °ü·Ã ÀڷḦ ³ªÅ¸³ª°Ô ÇÏ°í ½Í½À´Ï´Ù.

 »óŹٿ¡ ÀÛ¾÷ÀÇ ÁøÇà°úÁ¤À» Ç¥½ÃÇÏ´Â ¹æ¹ýÀº ¿©·¯ °¡ÁöÀÔ´Ï´Ù. ±× Áß Çϳª·Î CStatusBarBar¿¡¼­ »ó¼ÓµÈ CMeterBar Ŭ·¡½º¸¦ »ý¼ºÇÏ´Â ¹æ¹ýÀÌ ÀÖ½À´Ï´Ù. ¿©±â¼­ »óŹ٠¿µ¿ªÀ» ´Ù½Ã ±×¸® ÇÊ¿ä°¡ ÀÖÀ» ¶§¸¶´Ù CStatusBarÀÇ ¸â¹ö ÇÔ¼ö DoPaint()¸¦ È£ÃâÇÏ¸é µË´Ï´Ù. ÀÚ¼¼ÇÑ ³»¿ëÀº µµ¿ò¸»À» Âü°íÇϼ¼¿ä.
 ¶ÇÇÑ ÀϹÝÀûÀÎ »óŹ٠¿µ¿ªÀ» ÃøÁ¤¿µ¿ª(meter pane)À¸·Î º¯È¯ÇÏ·Á¸é ½ºÅ¸ÀÏÀ» SBPS_METER ·Î ¼³Á¤ÇØ¾ß Çϴµ¥, À̸¦ À§Çؼ± CStatusBar::SetPaneInfo ¸¦ È£ÃâÇÏ¸é µË´Ï´Ù.

 

<Doc ¹è¿­À» View¿¡¼­ »ç¿ëÇÏ´Â ¹æ¹ý>

µµÅ¥¸ÕÆ® Ŭ·¡½º¿¡¼­ ¸¸µç ¹è¿­ÀÎ a[i][j]¸¦ ºä Ŭ·¡½º¿¡¼­ Àоî, a[i]´Â xÃà, a[j]´Â yÃàÀ¸·Î ÇÏ´Â ±×·¡ÇÁ¸¦ ±×¸®·Á ÇÕ´Ï´Ù.

 ºä Ŭ·¡½º ¾È¿¡¼­ GetDocument()¸¦ »ç¿ëÇØ µµÅ¥¸ÕÆ®¸¦ Áö½ÃÇÏ´Â Æ÷ÀÎÅ͸¦ ±¸ÇÏ¸é ¹®Á¦¸¦ °£´ÜÈ÷ ÇØ°áÇÒ ¼ö ÀÖ½À´Ï´Ù.

(µµÅ¥¸ÕÆ® Ŭ·¡½º)* = GetDocument();
(µµÅ¥¸ÕÆ® Ŭ·¡½º)->a[i][j];

 

<âÀÇ Æ®·¡Å· Å©±â Á¦ÇÑ>

À©µµ¿ìÀÇ Ã¢ÀÇ Å©±â¿Í Æ®·¡Å·(tracking) Å©±â¸¦ È­¸éÀÇ 1/4·Î ÁöÁ¤ÇÏ°í ½Í½À´Ï´Ù.

 À©µµ¿ì´Â ÃÖ´ë ÃÖ¼Ò Æ®·¡Å· Å©±â, ÃÖ´ë âÀÇ À§Ä¡¿Í Å©±â¸¦ °áÁ¤ÇØ¾ß ÇÒ ¶§ WM_GETMAXMININFO ¸Þ½ÃÁö¸¦ Àü´ÞÇÕ´Ï´Ù. µû¶ó¼­ Æ®·¡Å· Å©±â¸¦ Á¦ÇÑÇÏ·Á¸é OnGetMaxMinInfo()¿¡¼­ ´ÙÀ½°ú °°ÀÌ ¸Þ½ÃÁö¸¦ ó¸®ÇÏ¸é µË´Ï´Ù.

// âÀÇ Å©±â¿Í Æ®·¡Å· »çÀÌÁ È­¸éÀÇ 1/4·Î Á¦ÇÑÇÑ´Ù.
void CMainFrame::OnGetMinMaxInfo(MINMAXINFO FAR* lpMMI) {
     lpMMI->ptMaxTrackSize.x = GetSystemMetrics(SM_CXSCREEN)/2;
     lpMMI->ptMaxTrackSize.y = GetSystemMetrics(SM_CYSCREEN)/2;

     CMDIFrameWnd::OnGetMinMaxInfo(lpMMI);
}

 

<µµÅ¥¸ÕÆ®/ºä ±¸Á¶>

µµÅ¥¸ÕÆ®¿¡ ºä¸¦ µî·ÏÇÏ·Á°í ÀÏ´Ü ºä¸¦ »ý¼ºÇÑ ÈÄ CDocument::AddView¸¦ ºÎ¸£¸é ASSERT¿¡¼­ ¾ÆÁ÷ Á¦´ë·Î µÈ À©µµ¿ì°¡ ¾Æ´Ï¶ó´Â °æ°í¿Í ÇÔ²² ½ÇÇàÀÌ ¸ØÃä´Ï´Ù. ±×·¡¼­ ¿ì¼± ºä¸¦ Create·Î ¸¸µé°í È£ÃâÇÏ´Ï À̹ø¿¡´Â Á¦´ë·Î µî·ÏÀº µÆÁö¸¸ ºä°¡ ¾ÆÁ÷µµ µµÅ¥¸ÕÆ®¿¡ ¿¬°áµÇÁö ¾Ê¾Ò´Ù´Â °æ°í¸¦ ³»º¸³À´Ï´Ù.

 µµÅ¥¸ÕÆ®/ºä ¾ÆÅ°ÅØó´Â °£´ÜÇÑ ±¸Á¶°¡ ¾Æ´Ï¹Ç·Î ´Ü¼øÈ÷ ¿¬°áÇÑ´Ù°í Çؼ­ µÇ´Â °Ç ¾Æ´Õ´Ï´Ù. ÀÌ ¾ÆÅ°ÅØó¿¡´Â µµÅ¥¸ÕÆ®, ºä »Ó¸¸ ¾Æ´Ï¶ó ÇÁ·¹ÀÓ À©µµ¿ì±îÁö Æ÷ÇԵ˴ϴÙ. ÀÌ ¼¼ °¡Áö¸¦ ÇÕÃļ­ ÅÛÇø´À̶ó°í ÇÕ´Ï´Ù.
 ¿ì¼± ¾ÖÇø®ÄÉÀ̼ÇÀÌ ½ÇÇàµÇ¸é µµÅ¥¸ÕÆ®, ºä, ÇÁ·¹ÀÓ À©µµ¿ì°¡ ÇÕÃÄÁ® ÅÛÇø´À» »ý¼ºÇÑ ÈÄ ¿¬°è½Ãŵ´Ï´Ù. Áï, ÇÁ·¹ÀÓ À©µµ¿ì°¡ »ý¼ºµÇ°í µµÅ¥¸ÕÆ®°¡ »ý¼ºµÈ ÈÄ ºä°¡ ¿¬°áµÇ´Â °ÍÀÌÁÒ.
 ¸¸¾à µµÅ¥¸ÕÆ®, ºä, ÇÁ·¹ÀÓ À©µµ¿ì°¡ ¿¬°áµÈ »óÅ°¡ ¸¾¿¡ ¾Èµç´Ù¸é ÅÛÇø´ Ŭ·¡½º¸¦ »õ·Î ¸¸µå´Â ¼ö¹Û¿¡ ¾ø½À´Ï´Ù.

 

<È­¸éÀÇ ÀϺκÐÀ» ºñÆ®¸ÊÀ¸·Î>

È­¸é¿¡ Ãâ·ÂµÈ ±×¸²ÀÇ ÀϺκÐÀ» ºñÆ®¸ÊÀ¸·Î ºÐ¸®½ÃÅ°·Á°í ÇÕ´Ï´Ù. Åͺ¸ CÀÇ °æ¿ì getimage()·Î ó¸®Çߴµ¥, ºñÁÖ¾ó C++¿¡¼­ ÀÌ·± ¿ªÇÒÀ» ÇÏ´Â API°¡ ÀÖ´ÂÁö ¾Ë°í ½Í½À´Ï´Ù.

 ºñÁÖ¾ó C++ÀÇ °æ¿ì È­¸éÀ» ºÐ¸®ÇØ ºñÆ®¸ÊÀ» ¸¸µå´Â ÇÔ¼ö°¡ µû·Î Á¸ÀçÇÏÁö ¾Ê½À´Ï´Ù. ÇÏÁö¸¸ GetDC, ReleaseDC, CreateDC, DeleteDC ÇÔ¼ö·Î À©µµ¿ìÀÇ ÇÚµéÀ» ¾òÀ» ¼ö ÀÖÀ¸¹Ç·Î ÀÌ¿¡ °ü·ÃµÈ ÀåÄ¡ ÄÁÅؽºÆ®¿¡ Á¢±ÙÇØ È­¸éÀ» ºÐ¸®ÇÏ¸é µË´Ï´Ù.
 BitBlt ÇÔ¼ö¸¦ »ç¿ëÇØ È­¸é DC·ÎºÎÅÍ ¸Þ¸ð¸®¿¡ ÀÖ´Â ÀåÄ¡ ÄÁÅؽºÆ®·Î, ±×·± ´ÙÀ½¿¡¾ß ºñÆ®¸ÊÀ» º¹»çÇÒ ¼ö ÀÖ½À´Ï´Ù. È­¸éÀ¸·ÎºÎÅÍ ºñÆ®¸Ê À̹ÌÁö¸¦ ĸóÇϰųª ȤÀº ºñÆ®¸ÊÀ» µð½ºÅ©¿¡ ÀúÀåÇϰųª Ãâ·ÂÇÒ ¶§ ÆÈ·¹Æ® Á¤º¸¸¦ °®µµ·Ï Çϱâ À§Çؼ± ÇöÀçÀÇ ³í¸®Àû ÆÈ·¹Æ®¸¦ ÀúÀåÇØ¾ß ÇÕ´Ï´Ù.

HDC hMemDC;
HBITMAP hBitmap;

hMemDC = CreateCompatibleDC(hDC);  // hDC´Â ºÐ¸®ÇØ ³¾ È­¸éÀÇ hDC
hBitmap = CreateCompatibleBitmap(hMemDC, nWidth, nHeight);
                                       // nWidth, nHeight´Â ºñÆ®¸ÊÀÇ Å©±â
SelectObject(hMemDC, hBitmap);
BitBlt(hMemDC, 0, 0, nWidth, nHeight, hDC, SrcX, SrcY, SRCCOPY);
                                       // SrcX, SrcY´Â ºñÆ®¸ÊÀÇ ½ÃÀÛ À§Ä¡

....... // ÀúÀå

DeleteDC(hMemDC);
DeleteObject(hBitmap);    // »ç¿ëÈÄ Á¦°ÅÇÑ´Ù.     

 

<À©µµ¿ì¸¦ Áß¾Ó¿¡ À§Ä¡>

MFC 4.0 ÇÁ·Î±×·¡¹ÖÇÒ ¶§ »óÀ§ À©µµ¿ì¸¦ ±âÁØÀ¸·Î ÇÏÀ§ À©µµ¿ì¸¦ Áß¾Ó¿¡ À§Ä¡½ÃÅ°°í ½Í½À´Ï´Ù.

 MFC¿¡¼­ Á¦°øÇÏ´Â CWnd::CenterWindow¸¦ È£ÃâÇϸé À©µµ¿ì¸¦ Áß¾Ó¿¡ À§Ä¡½Ãų ¼ö ÀÖ½À´Ï´Ù. ¸¸¾à ´Ù¸¥ À©µµ¿ì¸¦ ±âÁØÀ¸·Î Áß¾Ó¿¡ À§Ä¡½ÃÅ°°íÀÚ ÇÑ´Ù¸é CWnd ÇüÀÇ °´Ã¼¿¡ Æ÷ÀÎÅ͸¦ Àü´ÞÇÏ¸é µË´Ï´Ù.

//»óÀ§ À©µµ¿ì¸¦ ±âÁØÀ¸·Î Áß¾Ó¿¡ À§Ä¡½ÃŲ´Ù.
CenterWindow();

//À©µµ¿ì¸¦ Àüü È­¸éÀÇ Áß¾Ó¿¡ À§Ä¡½ÃŲ´Ù.
CenterWindow(GetDesktopWindow());

//ÀÀ¿ë ÇÁ·Î±×·¥ÀÇ ¸ÞÀÎ À©µµ¿ì¸¦ Áß¾Ó¿¡ À§Ä¡½ÃŲ´Ù.
AfxGetMainWnd()->CenterWindow();

 

<´Ù¸¥ ÇÁ·Î±×·¥À» ½ÇÇàÇÒ ¶© WinExec>

MFC 4.0À¸·Î ÀÛ¼ºÇÑ ÀÀ¿ë ÇÁ·Î±×·¥¿¡¼­ ¸Þ´º¸¦ ¼±ÅÃÇßÀ» ¶§ ³ëÆ®Æе尡 ½ÇÇàµÇµµ·Ï ÇÏ´Â ¹æ¹ýÀ» ¾Ë°í ½Í½À´Ï´Ù.

 ºñÁÖ¾ó C++ 4.0 À¸·Î § ÀÀ¿ë ÇÁ·Î±×·¥¿¡¼­ ³ëÆ®Æе带 ½ÇÇàÇÏ·Á¸é WinExec()¸¦ »ç¿ëÇÏ¸é µË´Ï´Ù.
          ::WinExec(_T("notepad.exe", SW_SHOW));

¿©±â¼­ SW_SHOW´Â ºÒ·ÁÁø ÇÁ·Î±×·¥À» È°¼ºÈ­ÇÏ°íÀÚ ÇÒ ¶§ »ç¿ëÇϸç, ¸¸¾à ÀÚ½ÅÀÇ ÇÁ·Î±×·¥ÀÌ È°¼ºÈ­µÈ ä·Î ´Ù¸¥ ÇÁ·Î±×·¥À» ºÎ¸£°íÀÚ ÇÑ´Ù¸é SW_SHOW ´ë½Å SW_SHOWNA ¸¦ ¾²¸é µË´Ï´Ù.
 Âü°í·Î ƯÁ¤ µð·ºÅ丮¿¡ ÀÖ´Â ÆÄÀÏÀ» ÇÔ²² ¿­°í ½Í´Ù¸é, À©µµ¿ìÀÇ °ü·Ã Ư¼ºÀ» ÅëÇØ ÆÄÀÏÀ» ¿­°Å³ª ÀÛ¾÷ µð·ºÅ丮¸¦ ÁöÁ¤ÇÒ ¼ö ÀÖ´Â ShellExecute()¸¦ ¾²¸é µË´Ï´Ù.

//maso.txt¸¦ ¿¬°áµÈ ÀÀ¿ëÇÁ·Î±×·¥À¸·Î ¿¬´Ù.
::ShellExecute(NULL, NULL, _T("maso.txt"),
           NULL, _T("c:\sally"), SW_SHOWMINIZED);
//ÀÀ¿ëÇÁ·Î±×·¥À» ÃÖ¼ÒÈ­½ÃÄÑ
//½ÇÇà ÀÛ¾÷ µð·ºÅ丮¸¦ c:\sally ·Î ¼³Á¤ÇÑ´Ù.