<Visual C++ÀÇ À¯¿ëÇÑ ´ÜÃàÅ°>

* Ctrl+F3 : ÇöÀç Ä¿¼­°¡ ÀÖ´Â À§Ä¡ÀÇ ´Ü¾î°¡ ³ª¿À´Â ´ÙÀ½ À§Ä¡¸¦ ã¾ÆÁÝ´Ï´Ù. Ctrl+Shift+F3À» ´©¸£¸é ÀÌÀü °É ã¾ÆÁÖÁÒ.

* Ctrl+H : replaceÀÔ´Ï´Ù. ƯÈ÷ ÀÏÁ¤ºÎºÐ¾ÈÀÇ º¯¼ö À̸§À» º¯°æÇϰųª ÇÒ ¶§ ¹üÀ§¸¦ ¼±ÅÃÇÑ ´ÙÀ½¿¡ Ctrl+H¸¦ ´©¸£¸é ÆíÇÏÁÒ.

* Ctrl+], Ctrl+E : °ýÈ£ ¦À» ¸ÂÃçÁÝ´Ï´Ù. {À§¿¡¼­ ´©¸£¸é ¦ÀÌ ¸Â´Â }¸¦ ã¾ÆÁÖÁö¿ä.

* Ctrl+L : ÇÑÁÙÀ» À߶ó³À´Ï´Ù. -> Ŭ¸³º¸µå·Î

* Ctrl+Shift+L : ÇÑÁÙÀ» Áö¿ó´Ï´Ù.

* Ctrl+J, K : #ifdef ... #endif ½ÖÀ» ã´Âµ¥ »ç¿ëÇÕ´Ï´Ù.

* ±×¿Ü CtrlÀ» ´©¸£°í Ä¿¼­³ª Delete, Backspace¸¦ ´©¸£¸é ´Ü¾î ´ÜÀ§·Î µ¿ÀÛÀ» ÇÏ°Ô µË´Ï´Ù.

* Alt+F8 : Àε§Æ® Á¤¸®. ÀÏÁ¤ ¹üÀ§¸¦ ¼±ÅÃÇÏ°í ´©¸£¸é ¶óÀÎ ¾ÕºÎºÐÀÇ °ø¹éÀ» ÀÚµ¿À¸·Î Á¶Á¤ÇØÁÝ´Ï´Ù.

* CTRL+SHIFT+T : Ä¿¼­ À§Ä¡ÀÇ ´Ü¾î¿Í ¾Õ ´Ü¾î°¡ ¼­·Î ±³Ã¼ µË´Ï´Ù.

* ALT+SHIFT+T : Ä¿¼­ À§Ä¡ÀÇ ÇÑÁÙ°ú À­ÁÙÀÌ ¼­·Î ±³È¯µË´Ï´Ù.

* Shift + F9 : µð¹ö±× ¸ðµå¿¡¼­ Ãß°¡ÇÏ°íÇ º¯¼ö³ª µîµî ¾Õ¿¡ Ä¿¼­¸¦ À§Ä¡ ½ÃŲÈÄ Shift+F9¸¦

´©¸£¸é Watch Window¿¡ ÀÚµ¿À¸·Î Ãß°¡.

* Ctrl + Alt + T , Ctrl + Spacebar : ¸â¹ö¸ñ·Ï Æ˾÷âÀÌ ³ªÅ¸³³´Ï´Ù (Âü°í·Î ´ë¼Ò¹®¿¡ °ü°è¾ø½À´Ï´Ù.)

* Ctrl + Shift + U : ¼Ò¹®ÀÚ¸¦ ´ë¹®ÀÚ·Î ¹Ù²Ù°í ½ÍÀ»¶§ ºí·° ÁöÁ¤À» ÇÑ´ÙÀ½ ÀÌ Å°¸¦ ´©¸£¸é ¼Ò¹®ÀÚ°¡ ´ë¹®ÀÚ·Î µÐ°©.

* Ctrl + U : ´ë¹®ÀÚ¸¦ ¼Ò¹®ÀÚ·Î º¯°æ

* Ctrl + Shift + 8 : TabÀº ^¸ð¾çÀ¸·Î °ø¹é¹®ÀÚ´Â .·Î º¯°æ, ´Ù½Ã ´©¸£¸é ¼³Á¤ÀÌ ÇØÁ¦

 

<ALT+F4·Î Á¾·á¾ÈµÇ°Ô ÇÏ·Á¸é>

BOOL MyApp::PreTranslateMessage(MSG* pMsg)
{
        if(pMsg->message == WM_SYSKEYDOWN &&
                pMsg->wParam == VK_F4) {
                      return TRUE;
        }
 }

 ÀÌ ÇÔ¼ö¸¦ ¿À¹ö¶óÀ̵å ÇÏ¿©¼­ Áý¾î³ÖÀ¸¸é µË´Ï´Ù.   

 

<Á¦ÀÏ ÂªÀº, ÆÄÀÏ Å©±â ¾Ë¾Æ³»´Â ÇÔ¼ö>

 ÀÏ´Ü Á¦°¡ º» ¹æ¹ýµéÀ» ¿­°ÅÇØ º¸°Ú½À´Ï´Ù.

      1] ÆÄÀÏÀ» ¿­°í, ÆÄÀÏ ³¡À¸·Î À§Ä¡¸¦ ¿Å°Ü¼­ ±× À§Ä¡°ªÀ» Àд´Ù.

      2] ÆÄÀÏÀ» fopen()ÀÌ ¾Æ´Ñ open()À¸·Î ¿­¾î¼­ ÇÚµéÀ» ¾òÀº ´ÙÀ½ ±×°ÍÀ» ÀÌ¿ëÇؼ­ filelength()ÇÔ¼ö·Î ÆÄÀÏ Å©±â¸¦ ±¸ÇÑ´Ù.

 

 °£´ÜÇÏ´Ï °á·Ð¸¸ ¸»¾¸µå¸®ÁÒ. Àú´Â ´ÙÀ½°ú °°ÀÌ ÆÄÀÏ Å©±â¸¦ ±¸ÇÕ´Ï´Ù.

      fileSize = filelength( fileno(fp) );

 fp´Â FILE *fp; ·Î Á¤ÀÇµÈ ÆÄÀÏ Æ÷ÀÎÅÍÀÔ´Ï´Ù.

 ¹°·Ð fopen()À¸·Î ÆÄÀÏÀ» ¿¬ »óÅ¿¡¸¸ °¡´ÉÇÕ´Ï´Ù.

±×·¯³ª ÆÄÀÏ Å©±â¸¦ ±¸ÇÑ´Ù´Â °ÍÀÌ DIRÇÁ·Î±×·¥ÀÌ ¾Æ´Ñ ÀÌ»ó ÆÄÀÏÀ» ¿­°í³ª¼­ ±¸ÇÏ´Â °Å ¾Æ´Ï°Ú½À´Ï±î?

 

<Ŭ·¡½º À̸§ µî·Ï¹æ¹ý>

 PreCreateWindow(CREATESTRUCT& cs)¿¡¼­ cs.lpszClass¸¦ º¯°æÇØÁÖ¸é µÉ °Í °°Àºµ¥ ÀßµÇÁö ¾Ê´Â °æ¿ì°¡ ÀÖ½À´Ï´Ù. À̺κп¡¼­ »ç¿ëÀÚµéÀÌ Çì¸Å´Â °æ¿ì°¡ ¸¹ÀÌ ÀÖÁÒ.

´ÙÀ½ÀÇ Äڵ带 È°¿ëÇϽøé ÀßµÇ½Ç °Ì´Ï´Ù.

 

BOOL CTestDlg::PreCreateWindow(CREATESTRUCT& cs)
{
     if(!CWnd::PreCreateWindow(cs))
          return FALSE;

     HINSTANCE hInst=AfxGetInstanceHandle();
     WNDCLASS wc;

     ::GetClassInfo(hInst, cs.lpszClass, &wc);
     wc.lpszClassName=cs.lpszClass="MyClass";

     return AfxRegisterClass(&wc);
}

 

<¿Ü±¹ ¸®¼Ò½º¸¦ ÇÑ±Û ¸®¼Ò½º·Î ¼öÁ¤Çϱâ>

1. °£´ÜÇÏ°Ô °íÄ¡±â

¿µ±¹Àΰ¡ ¿¡¼­ ¸¸µç ¼Ò½º¸¦ ºÐ¼®ÇÏ´Ù°¡ ¸®¼Ò½º¸¦ º¼·Á°í ´©¸£´Ï ¾ð¾î°¡ ´Ù¸£´Ù°í ¾È³ª¿À´õ±º¿ä °è¼Ó °í¹ÎÇÏ´Ù°¡ ÀÌ·² ¶§´Â rcÈ­ÀÏ¿¡¼­

¿ø·¡ ÄÚµå

//*****************************************************
#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU)
#ifdef _WIN32
LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US
#pragma code_page(1252)
#endif //_WIN32
//*****************************************************

 

Çѱ¹¸»·Î ¼öÁ¤ÇÑµÚ ÄÚµå

//******************************************************
#if !defined(AFX_RESOURCE_DLL)||defined(AFX_TARG_KOR)
#ifdef _WIN32
LANGUAGE LANG_KOREAN, SUBLANG_DEFAULT
#pragma code_page(949)
#endif//_WIN32
//******************************************************

 

ÀÌ·¸°Ô ¼öÁ¤ÇØÁÖ´Ï Äڵ尡 ³ª¿À´õ±º¿ä.

¹°·Ð ´Ù¾Æ½Ã°ÚÁö¸¸ ¿­±â¿¡¼­ rcÈ­ÀÏÀ» text·Î ¿­¾î¼­ ¼öÁ¤ÇØÁּž߰ÚÁö¿ä

 

2. ±Ùº»Àû ÇØ°á¹æ¹ý

´Ù ¾Æ½Ã°ÚÁö¸¸ VC++Àº ´Ù±¹¾î ¸®¼Ò½º¸¦ Áö¿øÇÕ´Ï´Ù.

¿Ü±¹¿¡¼­ ¸¸µç »ùÇà ¿¹Á¦¸¦ Down¹Þ¾Æ¼­ ¸®¼Ò½º¸¦ ¿ÀÇÂÇÒ¶§ ÇöÀç ½Ã½ºÅÛÀÇ ÄÚµå ÆäÀÌÁö¿Í ´Ù¸£¸é ¿ÀǵÇÁö¸¦ ¾Ê½À´Ï´Ù.

Áö¿øÇÏÁö ¾Ê´Â ÄÚµå ÆäÀÌÁö ¶§¹®¿¡ ¸®¼Ò½º°¡ Á¦´ë·Î ¿ÀǵÇÁö ¾Ê´Â´Ù¸é ÇØ´çÇÏ´Â ÄÚµå ÆäÀÌÁöÀÇ .nls(National Language Support)ÆÄÀÏÀ» ½Ã½ºÅÛ¿¡ º¹»çÇØ ³Ö¾îÁÖ¸é µË´Ï´Ù.

ÇØ´ç nlsÆÄÀÏÀº Win95/98 CD¿¡ ÀÖ°í ÀÌÆÄÀÏ(¿¹:cp_1252.nls)À» windows system Æú´õ¾È¿¡ º¹»çÇÑ ÈÄ ·¹Áö½ºÆ®¸®(\HKEY_LOCAL_MACHINE\System\CurrentControlSet\control\Nls\Codepage)¿¡ ¼öµ¿À¸·Î µî·Ï½ÃÄÑ ÁÖ¸é µË´Ï´Ù.

 

<F10 Å°¸¦ ó¸®Çϱâ>

µµ½º½ÃÀý ÇÁ·Î±×·¥¿¡¼­ F10 Å°´Â ÁÖ·Î Ç®´Ù¿î ¸Þ´º¸¦ ¶ç¿ì´Âµ¥ »ç¿ëµË´Ï´Ù.

±×·¡¼­ ¿ì¸®´Â F10 À¸·Î ¸Þ´º¸¦ ¶Ù¿ì´Âµ¥ Àͼ÷ÇÏÁÒ. À©µµ¿¡¼­µµ ¸¶Âù°¡Áö·Î F10 Å°°¡ ¸Þ´º¸¦ È°¼ºÈ­½ÃÅ°´Âµ¥ »ç¿ëµÇÁÒ. F10 Å°°¡ ¸Þ´º¸¦ È°¼ºÈ­ ÇÏ´Â °ÍÀ» ¸·°í ³ªÀÇ °íÀ¯ ±â´ÉÀ» ½ÇÇàÇÏ°Ô ÇÒ·Á¸é ¾î¶»°Ô ÇØ¾ß ÇÏÁÒ?

¸î°¡Áö ¹æ¹ýÀÌ Àִµ¥...

1.- SetWindowsHookEx() ÀÇ »ç¿ë

Å°º¸µåÀÇ ÇൿÀ» ¹Ù²Ù±â À§Çؼ­ SetWindowsHookEx ÇÔ¼ö¸¦ »ç¿ëÇÏ´Â °ÍÀÔ´Ï´Ù.¿ì¼± Å°º¸µå ÈÅ(Hook)À» ÀÛ¼ºÇÏ°í ¾²·¹µå Àü¹Ý¿¡ ÀÌ ÈÅÀ» ¼³Ä¡ÇÏ´Â °ÍÀÌÁÒ.ÄÚµùÀÌ Á» ±î´Ù·ÓÁö¸¸..¿À¹öÇìµå°¡ º°·ç ¾ø±â ¶§¹®¿¡ ..°¡Àå ÁÁÀº Á¦¾ÈÀÌ µÉ°ÍÀÔ´Ï´Ù.

2.- PreProcessMessage() ¿Í WM_SYSKEYDOWN Å×½ºÆ®

 ¸Þ½ÃÁö ¼±Ã³¸®±âÀÎ PreProcessMessage ¿¡¼­ WM_SYSKEYDOWN ¸Þ½ÃÁö°¡ ¹ß»ýÇßÀ»¶§ F10 Å°ÀÎÁö È®ÀÎÇÏ´Â °ÍÀÔ´Ï´Ù.±×·¯³ª ¸Å¹ø Á¶»çÇØ¾ß Çϱ⠶§¹®¿¡ (¸ðµç Å°¿¡ ´ëÇؼ­..) ¸¹Àº ¿À¹öÇìµå¸¦ ¹ß»ý½ÃÄÑ ¼ÓµµÀúÇϸ¦ °¡Á®¿É´Ï´Ù.

3.- F10 Å°¿¡ ´ëÇÑ ¾ï¼¿·¹ÀÌÅÍ Å×À̺í ÀÛ¼º

ÃßõÇÒ¸¸ÇÑ ´Ù¸¥ ÁÁÀº ¹æ¹ýÀÔ´Ï´Ù. ±×·¯³ª Àß ¾È¸ÔÈú¶§°¡ À־.

4.- OnSysKeyDown() Çڵ鷯¿¡¼­ F10 Å×½ºÆ®

¹®¼­È­µÇ¾î ÀÖ´Â ¹æ¹ýÀÌÁÒ...±×·±µ¥ ...ÀÌÇØÇÒ¼ö ¾ø´Â°Ç..

MFC ¿¡¼­´Â F10 Å°¿¡ ´ëÇÑ SysKeyDown ¸Þ½ÃÁö¸¦ SDI View ¿¡ º¸³»Áö ¾Ê½À´Ï´Ù. ¹®Á¦ÀÇ ¼ÒÁö°¡ µÇÁÒ.

 

<ESCÅ°·ÎºÎÅÍ Dialog »ç¶óÁüÀ» ¹æÁö>

 ESCÅ°·ÎºÎÅÍ Dialog »ç¶óÁüÀ» ¹æÁöÇÏ·Á¸é

 

// ¸â¹ö º¯¼ö
        BOOL m_bClose

// »ý¼ºÀÚ
        m_bClose = FALSE;

// OnClose
void CKeyDlg::OnClose()
{
        m_bClose = TRUE;
        CDialog::OnClose();
}

// WindowProc
LRESULT CKeyDlg::WindowProc(UINT message, WPARAM wParam, LPARAM lParam)
{
        if( message == WM_COMMAND && wParam == WM_DESTROY )
        {
                if( m_bClose == FALSE )
                        return NULL;
                // escÅ°·Î ºÎÅÍ ´ÙÀ̾ó·Î±× »ç¶óÁüÀ» ¹æÁö
                // ¿ä±æ FALSE(NULL)·Î ¸·¾ÆÁÖ¸é
                // (Á¤»óÀûÀ¸·Î´Â ¾Æ·¡ return °ªÀÌ 1·Î µÊ)
                // ´ÙÀ½¿¡ message WM_DESTROY, WM_NCDESTROY°¡
                // ³¯¾Æ¿ÀÁö ¾Ê¾Æ Á¾·á µÇÁö ¾ÊÀ½
        }
        return CDialog::WindowProc(message, wParam, lParam);
}

/// Âü°í
// dialog¿¡¼­ esc ¶Ç´Â close ¹öÆ°Àº  message - 111, wParam - 2 °¡ ³¯¾Æ¿È
// return °ªÀÌ TRUE À̸é
// message - 2¿¡ À̾î message -82°¡ ³¯¾Æ¿È

//#define WM_COMMAND                      0x0111
//#define WM_DESTROY                      0x0002
//#define WM_NCDESTROY                    0x0082
//#define WM_CLOSE                        0x0010

/* Enter Å° */ 

¹öÆ° Áß¿¡ Property¿¡ Default¶ó°í üũ°¡ µÈ °ÍÀÌ ÀÖÀ» °ÍÀÔ´Ï´Ù.

¹öÆ°Áß Çϳª¸¸ÀÌ ÀÌ ¼Ó¼ºÀ» °¡Áú ¼ö Àִµ¥ EnterÅ°¸¦ Ä¡¸é ÀÌ ¹öÆ°ÀÌ ½ÇÇàµË´Ï´Ù.

 Default·Î IDOK¹öÆ°ÀÌ ¸Ô°Ô µÇÁö¿ä. Çؼ­ ´Ù¸¥ ¹öÆ°¿¡ À̼ӼºÀ» Áְųª IDOK¹öÆ°ÀÇ  ÇÔ¼ö¸¦ °íÄ¡¼¼¿ä.

 

<fscanf()¿¡¼­ ¾µµ¥ ¾ø´Â °ª ÀÐÁö¾Ê°í ¹ö¸®±â>

È­Àϸí: aaa.dat
ÀÚ·á: 1 2.0 3

ÀÌ·²°æ¿ì ÀڷḦ fscanf()·Î ÀÐ¾î µéÀÏ ¶§ ºÒÇÊ¿äÇÑ ÀÚ·á°¡ ÀÖÀ» ¼ö ÀÖ½À´Ï´Ù. ¸¸¾à À§ÀÇ µ¥ÀÌÅ͸¦ ÀÐ¾î µéÀδٸé -> ½ÇÁ¦·Î 2.0Àº ÇÊ¿ä ¾ø´Â ÀÚ·á¶ó °¡Á¤ÇÏ°í

ÀϹÝÀûÀ¸·Î ÇÊ¿ä¾ø´Â 2.0µµ dummy¶ó°í ÀÐ¾î µéÀδÙÀ½ ¹ö¸³´Ï´Ù.

ÀÌ·± ¾µµ¥°¡ ¾ø´Â µ¥ÀÌÅ͸¦ ÀÐ¾î µéÀÌ¸é ½Ã°£µµ ³¶ºñ°í... ¿¡±¸ Äڵ嵵 º¹ÀâÇÏ°í....

ÀÌ·² °æ¿ì *¸¦ »ç¿ëÇÏ½Ã¸é ¾ÆÁÖ ÁÁÁÒ... ^^;

¿ä·¸°Ô ¹Ù²Ù¸é ½Ç¼öÇü ÀÚ·á°¡ ³ª¿À¸é ±×³É ³Ñ¾î °¡¿ä...

°¢°¢ÀÇ µ¥ÀÌÅÍ ÀÚ·áÇü¸¸ ¸ÂÃß¾î ÁÖ¸é ±×³É ¾ÈÀÐ°í ³Ñ¾î°£ ´ÙÀ½¿¡ ±× ´ÙÀ½ µ¥ÀÌÅ͸¦ ÀÐÁö¿ä

ÀÚ½ÅÀÌ ¸¸µç µ¥ÀÌÅͶó¸é ÀÌ·± °æ¿ì°¡ ¾ø°ÚÁö¸¸ ³²ÀÌ ¸¸µç µ¥ÀÌÅ͸¦ ÀÐ¾î ¿Ã °æ¿ì¿¡

Àڱ⿡°Ô ºÒÇÊ¿äÇÑ µ¥ÀÌÅÍ°¡ »ý±æ °æ¿ì ÀÏÀÏÀÌ ´Ù Àо ¹ö¸°´Ù¸é ³Ñ Â¥Áõ ³ª°ÚÁö¿ä ^^;

 

<Toggle ±â´É ±¸ÇöÇϱâ>

 ¹öÆ°À» ´©¸¦ °æ¿ì ¼­·Î Åä±ÛµÇ´Â ±â´ÉÀ» ±¸Çö ÇÏ°Ú½À´Ï´Ù. 

 

<ÇÑ±Û À©µµ¿ì¿¡¼­ ÀϺ»¾î ÇÁ·Î±×·¥ ºôµåÇϱâ>

ÀÏ´Ü. ¸®¼Ò½º´Â ´ç¿¬È÷ ÀϺ»¾î ÄÚµå·Î º¯È¯µÇ¾î ÀÖ¾î¾ß ÇÕ´Ï´Ù. ÇÑ±Û À©µµ¿ì¿¡¼­ º¸¸é Äڵ尡 ±úÁ® º¸ÀÌ°ÚÁö¿ä? ÄÚµå º¯È¯ ¹æ¹ýÀº Microsoft Word °°Àº °É ÀÌ¿ëÇϼŵµ µÇ°í, ¾Æ´Ï¸é ÇÁ·Î±×·¥À» ¸¸µå¼Åµµ µÇ±¸¿ä.. °¡´ÉÇÏ¸é ¸®¼Ò½º ÀÛ¾÷Àº ÀϺ»¾î À©µµ¿ì¿¡¼­ ÇϽñ⸦ ±ÇÇÕ´Ï´Ù. Copy&Paste ·Î Çߴµ¥µµ, ÀϺÎÄڵ尡 ±ú¾îÁö´Â ¹®Á¦°¡ ÀÖ´õ¶ó±¸¿ä.. Á¤È®È÷ ÀÌÀ¯´Â ¸ð¸£°ÚÁö¸¸, ¸®¼Ò½ºÀÇ Text ¸¦ ºÙ¿©³Ö´Â ÀÛ¾÷Àº °¡´ÉÇÑÇÑ ÀϺ»¾î À©µµ¿ì¿¡¼­ ÇϽñ⸦ ±ÇÇÕ´Ï´Ù. ±×¸®°í ºôµåÇÏ½Ç ÇÁ·ÎÁ§Æ®ÀÇ ¸®¼Ò½º ÆÄÀÏ(*.rc ÆÄÀÏ) ¿¡´Â Çѱ¹¾î°¡ ÀÖÀ¸¸é Àý´ë·Î ¾ÈµË´Ï´Ù!! Å×½ºÆ®¸¦ À§Çؼ­ ¸î°³ÀÇ ´ÙÀ̾ó·Î±×¸¸ ÀϺ»¾î·Î ¹Ù²å´Âµ¥ ºôµå°¡ ¾ÈµÇ´õ±º¿ä.. ¹Ýµå½Ã Àüü ¸®¼Ò½º ÆÄÀÏ¿¡´Â ¿µ¾î ¾Æ´Ï¸é ÀϺ»¾î Äڵ常 Á¸Àç ÇØ¾ß ÇÕ´Ï´Ù.

 ±×¸®°í Resource file (rc ÆÄÀϵé)ÀÇ ³»¿ëÀ» ´ÙÀ½°ú °°ÀÌ ¹Ù²Ù½Ã¸é µË´Ï´Ù. ¸ðµç ºÎºÐÀ» ¹Ù²Ù¾î¾ß ÇÏ´ÂÁö´Â È®½ÇÄ¡ ¾ÊÁö¸¸, ÀÏ´Ü ÀÌ·¸°Ô ¹Ù²Ù¸é ºôµå¶û ½ÇÇà¿¡ ¹®Á¦´Â ¾ø½À´Ï´Ù..

 1. #if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_KOR) ¸¦

    #if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_JPN) À¸·Î...

 2. LANGUAGE 18, 1 ¸¦

    LANGUAGE 17, 1 ·Î...

 3. #pragma code_page(949) ¸¦

    #pragma code_page(932) ·Î...

 4. l.kor\\afxres.rc ¸¦

    l.jpn\\afxres.rc ·Î..

ÀÌ»óÀÔ´Ï´Ù.. ^^.. µµ¿òÀÌ µÆÀ»±î¿ä?? ±×¸®°í ÁÖÀÇÇÏ½Ç Á¡Àº Font ÀÔ´Ï´Ù.. ÀϺ»ÀÇ ÆùÆ®¿¡ ¸ÂÃß¾î Å©±â¶û À̸§À» Á¤ÇØÁà¾ß¸¸ ÇÏÁö¿ä..

 

<#°ú ##>

'##'¿¡ ´ë¾È Áú¹®ÀÌ ³ª¿Â ±è¿¡ '#'°ú '##' ´ëÇØ À̾߱⸦ Çѹø Çغ¼±î ÇÕ´Ï´Ù.

¸ÕÀú #ºÎÅÍ ½ÃÀÛÇÏ°Ú½À´Ï´Ù.

#Àº C/C++¿¡¼­ ¸¹ÀÌ ³ª¿À´Â ±âÈ£ÁÒ. #include ¶öÁö, #define À̶öÁö. ±×·±µ¥, #ÀÌ ´Ù¸¥ ¿ëµµ·Î ¾²ÀÌ´Â °æ¿ì°¡ ÀÖ½À´Ï´Ù.

´ÙÀ½°ú °°Àº Äڵ尡 ÀÖ½À´Ï´Ù.

¸ÅÅ©·Î¸¦ ¾Æ½Ã´Â ºÐÀ̶ó¸é À§¿¡ Äڵ尡 ¾î¶»°Ô º¯È¯µÇ´ÂÁö ¾Æ½Ç °Ì´Ï´Ù. STRING(trowind) ºÎºÐÀÌ printf(trowind)·Î ¹Ù²î°ÚÁÒ. (ÀÌ º¯È¯Àº preprocessor¿¡¼­ ´ã´çÇÕ´Ï´Ù. ÀÚ¼¼ÇÑ ³»¿ëÀº 'Preprocessor' ¶Ç´Â 'Àü󸮱â'¿¡´ëÇÑ ÀڷḦ Âü°íÇϼ¼¿ä.)

ÀÌ°Ç ¸í¹éÈ÷ ÄÄÆÄÀÏ ¿¡·¯ÀÔ´Ï´Ù. trowind¶ó´Â º¯¼ö°¡ ¾øÀ¸´Ï±î¿ä.

±×·³ ÀÌÁ¦ STRING() ¸ÅÅ©·Î ÇÔ¼ö¸¦ ´ÙÀ½°ú °°ÀÌ ¹Ù²ãº¸°Ú½À´Ï´Ù.

¹Ù²Û°Å¶ó°í´Â 'a' ¾Õ¿¡ #¸¦ ºÙÀÎ °Í ¹Û¿¡ ¾ø½À´Ï´Ù. ±×·¯¸é À§ÀÇ STRING(trowind) ´Â ´ÙÀ½°ú °°ÀÌ ¹Ù²ò´Ï´Ù. 

 Áï #ÀÇ ¿ëµµ´Â ¸ÅÅ©·Î¿¡¼­ ġȯµÇ´Â ¹®ÀÚ¿­¿¡ Å«µû¿ÈÇ¥¸¦ ºÙ¿©ÁÖ´Â °ÍÀÔ´Ï´Ù. ÀÌ°É Àß ÀÌ¿ëÇÏ¸é ´ÙÀ½°ú °°Àº ±â´ÉÀ» ±¸ÇöÇÒ ¼ö ÀÖÁÒ.

#include <stdio.h>
#include <stdlib.h>

// MFC¿¡µµ ASSERT¶õ ¸ÅÅ©·Î°¡ Àֱ⠶§¹®¿¡ MY_ASSERT·Î ÇÕ´Ï´Ù.
#defien MY_ASSERT(a) if ( !a ) { printf("Error : "); printf(#a); }

void main() {
    int a = 0;
    int b = 1;
    MY_ASSERT(a > b)
}

(°á°ú´Â Á÷Á¢ È®ÀÎÇØ º¸½Ã±â ¹Ù¶ø´Ï´Ù.)

 

 ##Àº #°ú´Â ´Ù¸£°Ô ÀÛµ¿ÇÕ´Ï´Ù. ##Àº ÁÖ¾îÁø ¹®ÀÚ¿­À» ±×´ë·Î ¹Ù²ãÁÝ´Ï´Ù. ¿¹¸¦ µé¾îº¸ÁÒ.

´ÙÀ½°ú °¥Àº ¸ÅÅ©·Î°¡ ÀÖ½À´Ï´Ù.

±×·³ ´ÙÀ½°ú °¥ÀÌ µË´Ï´Ù.

 ##Àº ±× »ç¿ë ¿¹¸¦ ã±â°¡ ½±Áø ¾ÊÁÒ. ÇÏÁö¸¸, MFC¿¡¼­´Â ÀÌ ##À» ±â°¡¸·È÷°Ô Àß »ç¿ëÇÕ´Ï´Ù.  MFC·Î ¾ÖÇø®ÄÉÀ̼ÇÀ» ¸¸µé ¶§ ±âº»ÀûÀ¸·Î ¸¸µé¾îÁö´Â Ŭ·¡½º Áß¿¡ View³ª Document Ŭ·¡½º¿¡ º¸¸é DECLARE_DYNCREATE, IMPLEMENT_CYNCREATE ¸ÅÅ©·Î°¡ ÀÖ½À´Ï´Ù. ÀÌ ¸ÅÅ©·Î¸¦ Çѹø ºÐ¼®ÇØ º¸¼¼¿ä.

 

<µå¶óÀ̺ê Æ÷¸ËÇϱâ>

MSDN¿¡´Â ¼³¸íÀÌ Çϳªµµ ¾ø³×¿ä..

 

DWORD WINAPI SHFormatDrive(HWND hwnd, UINT drive, UINT fmtID, UINT option)

 

ÀÌ·± Çü½ÄÀÔ´Ï´Ù..µå¶óÀ̺ê´Â ID°¡

0=A, 1=B,2=C....

fmtID´Â -1À̱¸¿©..

option˼

0 - ºü¸¥Æ÷¸Ë

1 - ÀüüÆ÷¸Ë

2 - ½Ã½ºÅÛ µð½ºÅ© ÀÛ¼º

 

<¿¡µðÆ®¹Ú½º¿¡¼­ Ä¿¼­¸¦ ÀÓÀÇÀÇ À§Ä¡¿¡>

À½.. ¿¡µðÆ® ¹Ú½º¿¡¼­ Ä¿¼­¸¦ µÚÂÊÀ̳ª.. ÀÓÀÇÀÇ À§Ä¡¿¡ ³õÀ» ¼ö ÀÖ´Â ¹æ¹ýÀ» ¹°¾î º¸½Ã´Â ºÐ²² µµ¿òµÉ ÀÚ·áÀÔ´Ï´Ù. 

1. Ä¿¼­¸¦ ¸Ç ³¡¿¡

2. Ä¿¼­¸¦ ÀÓÀÇÀÇ À§Ä¡¿¡

======================================
1. ÀÀ¿ëÇÒ ¸â¹ö ÇÔ¼ö
======================================

 ¿¡µðÆ® ¹Ú½ºÀÇ ¸â¹ö ÇÔ¼öÁß¿¡¼­ Ä¿¼­¸¦ ÀÓÀÇÀÇ À§Ä¡¿¡ ³õÀ» 󸮸¦ ÇÏ´Â ÇÔ¼ö´Â SetSel( ... ) °ú ReplaceSel( ... ) ÀÔ´Ï´Ù.

 µÎ ÇÔ¼ö´Â ¸¹ÀÌ »ç¿ëµÇ±â ¶§¹®¿¡ ¾Æ½Ã°í °è½Ã¸®¶ó ¹Ï~~½À´Ï´Ù.

  ex) ¿¡µðÆ® ¹Ú½ºÀÇ ¸â¹ö º¯¼ö¸¦ ´ÙÀ½°ú °°ÀÌ Á¤ÀÇµÈ »óÅ¿¡¼­ ¿¹¸¦ µé¾î °¡¸é¼­ ¼³¸íÀ» µå¸³´Ï´Ù.

      CEdit   º¯¼ö m_editMyBox;
      CString º¯¼ö m_strMyBox; 

======================================
2. Ä¿¼­¸¦ ¸Ç µÚÂÊ¿¡ ³õ±â
======================================

  Ä¿¼­¸¦ ¸Ç µÚÂÊ¿¡ ³õ´Â ¹æ¹ýÀº ÀÇ¿Ü·Î °£´Ü ÇÕ´Ï´Ù.

   UpdateData( TRUE );

  //--> Àüü¸¦ ¼±ÅÃ
  m_editMyBox.SetSel( 0, -1 );         

  //--> ÇöÀçÀÇ µ¥ÀÌÅÍ·Î ´Ù½Ã ġȯ
  m_editMyBox.ReplaceSel( m_strMyBox );

  //--> Æ÷Ä¿½º¸¦ ¿¡µðÆ® ¹Ú½º·Î ¼³Á¤
  m_editMyBox.SetFocus(); 

 ÀÌ·¸°Ô ó¸®ÇϽøé Ä¿¼­°¡ µ¥ÀÌÅÍÀÇ Á¦ÀÏ ³¡¿¡ ³õÀÏ °Ì´Ï´Ù.

======================================
3. Ä¿¼­¸¦ ÀÓÀÇÀÇ ÀÚ¸®¿¡ ³õ±â
======================================

 ¹æ¹ýÀº ¸¶Âù°¡Áö·Î..SetSel(..) °ú ReplaceSel(...)À» ÀÌ¿ëÇÏ´Â °ÍÀä.. 

 ¾î¶² ÇüÅ·ΠÀÀ¿ëÇÒ ¼ö ÀÖ³Ä Çϸé..

  SetSel( ½ÃÀÛ À§Ä¡, ³¡ À§Ä¡, ..?? ¾È»ìÆì ºÃÀ½..¼¼¹ø° ÀÎÀÚ)¿¡¼­ º¸¸é, ½ÃÀÛ À§Ä¡¸¦ óÀ½(0)À¸·Î ÇÏ°í ³¡ À§Ä¡¸¦ Ä¿¼­°¡ ³õÀÌ°íÀÚ ÇÏ´Â À§Ä¡·Î ÁöÁ¤ÇÑ ÈÄ¿¡, ÇöÀçÀÇ µ¥ÀÌÅ͸¦ óÀ½ºÎÅÍ Ä¿¼­°¡ ³õÀÌ°íÀÚ ÇÏ´Â À§Ä¡±îÁö ´Ù¸¥ ¹öÆÛ¿¡ º¹»çÇÑ ÈÄ¿¡, ReplaceSel·Î º¹»ç ÇÕ´Ï´Ù.

¼Ò½º Äڵ带 º¸½Ã¸é ´õ ½¬¿ì½Ç °Ì´Ï´Ù.

UpdateData( TRUE );

//--> Ä¿¼­°¡ ³õÀÏ À§Ä¡±îÁö º¹»çÇÒ Àӽà ¹öÆÛ(Å©±â´Â??)
char cDataBuf[100];

//--> ¾²·¹±â °ªÀ» ¹æÁöÇϱâ À§ÇØ.. ÃʱâÈ­
for( int i=0; i<100; i++ )    cDataBuf[i] = NULL;

//--- 6¹ø°¿¡ Ä¿¼­¸¦ À§Ä¡ÇÏ°í ½ÍÀ» °æ¿ì...
for( i=0; i<6; i++ )
      cDataBuf[i] = m_strMyBox[i];

//****º¸Ãæ ¼³¸í.. CString ÇüÀÇ µ¥ÀÌÅÍ °°Àº °æ¿ì¿¡¼­****

 µ¥ÀÌÅ͸¦ ¿øÇÒ¶§´Â ¹öÆÛ ÇüÅ·Π»ç¿ëÀ» Çϼŵµ µË´Ï´Ù.

 À½.. ¹«½¼ ¸»ÀÌ³Ä Çϸé.. Á¦°¡ CString ÇüÀ¸·Î ¼±¾ðµÈ ¸â¹ö º¯¼ö m_strMyBoxÀÇ µ¥ÀÌÅ͸¦ Àӽà ¹öÆÛ¿¡ º¹»çÇϴ °úÁ¤¿¡¼­ m_strMyBox[i]¶ó°í »ç¿ëÀ» Çߴµ¥..

 m_strMyBox´Â ¿¡µðÆ® ¹Ú½ºÀÇ ¸â¹ö º¯¼öÀ̰ŵç¿ä.

 À§¿Í °°Àº ¹æ¹ýÀ» º¹»ç¸¦ Çϼŵµ µÇ°í.. ´Ù¸¥ ¹æ¹ýµµ ÀÖ°ÚÁÒ..

//--> ¿øÇÏ´Â À§Ä¡¸¸Å­ ÁöÁ¤
     m_editTest.SetSel( 0, 6 );

//--> ¹Ù²Ù¸é µÇ°ÚÁÒ.. º¹»çµÈ ³»¿ëÀ¸·Î..
     m_editTest.ReplaceSel( cDataBuf );

//--> Æ÷Ä¿½º¸¦ ³õÀ¸¸é.. ³¡..
     m_editTest.SetFocus();

 

ÀÌ·¸°Ô ó¸®Çϸé.. ¿¡µðÆ® ¹Ú½º¿¡¼­ Á¦ÀÏ ³¡À̳ª ÀÓÀÇÀÇ ÀÚ¸®¿¡ Ä¿¼­¸¦ ³õÀ» ¼ö ÀÖ±º¿ä..

 

<¸±¸®Áî ¹öÁ¯ ½ÇÇà½Ã ·±Å¸ÀÓ ¿¡·¯ ã¾Æ³»±â>

¸±¸®Áî ¹öÁ¯ ½ÇÇà½Ã ¿¡·¯°¡ ³µÀ» °æ¿ì..Âü °ï¶õÇßÁÒ.

¹°·Ð °í¼ö´Ôµé²²¼­¾ß ÀÌ¹Ì ¾Ë°í°è½Ã°ÚÁö¸¸..

³ª¸§´ë·Î ¾öû °¡½¿ÀÌ ¾ÆÆͽÀ´Ï´Ù. µð¹ö±×¸ðµå´Â ±¦ÂúÀºµ¥..¸±¸®Áî´Â ¿¡·¯¸¦ ¶§¸®±¸..¾îµð¼­ ³ª´ÂÁöÁ¶Â÷ ¸ð¸£°Ú±¸...±×¶§ ¾µ¸¸ÇÑ ÀëÀÖ´Â ¹æ¹ýÀÔ´Ï´Ù.(¹°·Ð ¸ð¸£´Â ºÐ¿¡ ÇÑÇؼ­..^^)

 

Step 1.

ÇÁ·ÎÁ§Æ® ¼¼Æà µé¾î°¡¸é..

Link¶ó´Â ÅÇ ¼±ÅÃÇؼ­..º¸¸é

Generate MapfileÀÌ¶ó±¸ ÀÖÀ»²¨¶ø´Ï´Ù.

°í°É ¼±ÅÃÇؼ­ ¼¡ µ¹·Áº¸¸é..mapÆÄÀÏÀÌ releaseµð·ºÅ丮¿¡ »ý±âÁÒ.

 

Step 2.

±×¸®±¸ ³ª¼±..¿¡·¯¸¦ ¸¸µé¾î µ¹·Áº¸°í, ¾î´À ÁÖ¼Ò¿¡¼­ ¿¡·¯°¡ ³µ´ÂÁö ĸÃç

±×¸®±¸¼­ mapÆÄÀÏ¿¡ ÀÖ´Â ÁÖ¼Ò¶û ¸ÅÄ¡ÇØ º¸´Â°Ì´Ï´Ù.

±×·³ ¾î´À ÇÔ¼ö¿¡¼­ ¿¡·¯°¡ ³µ´ÂÁö ¾Ë ¼ö ÀÖÁÒ~

 

<¸ðµç Top Level Windows ¿¡°Ô ¸Þ¼¼Áö º¸³»±â>

SendMessage ¾Æ½ÃÁ®? °Å±â¿¡¼­ HWND ÀÎÀÚ¿¡ HWND_BROADCASTÀ» ³ÖÀ¸¸é,¸ðµç À©µµ¿ì¿¡°Ô ¸Þ¼¼Áö°¡ °£´ä´Ï´Ù..

 

<ÀϹÝÀûÀÎ À©µµ ¼Ò¸ê ¼ø¼­>

 MFC framework¿¡¼­, »ç¿ëÀÚ°¡ frame À©µµ¸¦ ´Ý°ÔµÇ¸é, À©µµ´Â ±âº»ÀûÀ¸·Î OnClose ÇÚµéÀ» call ÇÑ´Ù. OnClose ³»ºÎ¿¡¼­´Â DestroyWindow¸¦ È£ÃâÇÑ´Ù. °¡Àå ¸¶Áö¸·À¸·Î È£ÃâµÇ´Â ÇÔ¼ö´Â OnNcDestroyÀÌ´Ù. ÀÌ ÇÔ¼ö´Â ¾à°£ÀÇ Á¤¸®¸¦ ÇÏ´Â ÇÔ¼ö·Î À©µµ¸¦ Á¤¸®Çϱâ À§ÇÏ¿© ±âº»ÀûÀ¸·Î ºÒ·ÁÁö´Â ÇÔ¼ö ÀÌ´Ù. OnNcDestroyÇÔ¼ö ³»ºÎ¿¡¼­´Â PostNcDestroyÇÔ¼ö¸¦ È£ÃâÇÑ´Ù.

FrameworkÀº CWnd³ª applicationÀ» Á¾·á ½ÃÅ°±â À§Çؼ­ ÀÌ ÇÔ¼ö¸¦ ¸¶Ä¡ ½Ã±×³¯Ã³·³ È£ÃâÇÑ´Ù. ³»ºÎÀÇ ±âº»ÀûÀÎ ±¸ÇöÀº DestroyWindow¸¦ È£ÃâÇÑ´Ù.

Destroy Window ÇÔ¼ö´Â

  1)  CWnd³»ºÎ¿¡ ÀÖ´Â À©µµ¸¦ destroy ÇÑ´Ù.

  2)  ¶ÇÇÑ À©µµ¸¦ ÇØÁ¦ÇÏ°í ÀÔ·Â Æ÷Ä¿½º¸¦ Á¦°ÅÇϱâ À§ÇÑ ÀûÀýÇÑ message¸¦ À©µµ¿¡°Ô º¸³½´Ù.

  3)  À©µµÀÇ ¸Þ´º Á¦°Å  

  4)  application queue¸¦ ºñ¿î´Ù.

  5)  timer¸¦ Á¦°Å

  6)  clipboardÀÇ ¼ÒÀ¯ÁÖ Á¦°Å

  7)  Clipboard-viewer chainÀ» ²÷´Â´Ù. ( CWnd°¡ viewer chainÀÇ ¸Ç À§¿¡ ÀÖÀ» °æ¿ì )

  8)  WM_DESTROY( OnDestroy )¿Í WM_NCDESTROY( OnNcDestroy ) ¸Þ½ÃÁö¸¦ À©µµ¿¡°Ô º¸³½´Ù.

ÇÏÁö¸¸ ¾ÆÁ÷ CWnd °´Ã¼´Â destroyÇÏÁö ¾Ê´Â´Ù.

 

ÀÌ ÇÔ¼ö¸¦ ¿À¹ö¶óÀ̵å ÇÏ´õ¶óµµ ÀÌ ÇÔ¼ö¸¦ È£ÃâÇÏÁö ¾Ê¾Æµµ µÈ´Ù. ( ¿Ö³Ä¸é ½Ã½ºÅÛÀÌ ¾Ë¾Æ¼­ È£ÃâÀ» ÇØÁִϱî..) ¹¹ ±»ÀÌ ÇÏ°í ½Í´Ù¸é Çصµ µÈ´Ù. ¸¸¾à ³»ºÎ¿¡ ÀÚ½Ä À©µµ°¡ ÀÖ´õ¶óµµ °ÆÁ¤ÇÏÁö ¸»ÀÚ ÀڽĵéÀ» ¸ÕÀú destroyÇÑ ´ÙÀ½¿¡ ÀÚ½ÅÀÌ Á×À¸´Ï±î....

 

FrameworkÀÌ CWnd¿¡°Ô ÇöÀç CWnd°¡ ¼Ò¸êµÇ°í ÀÖ´Â ÁßÀ̶ó°í ¾Ë·Á ÁÖ±âÀ§ÇÏ¿© È£Ãâ ÇÑ´Ù. OnDestroyÇÔ¼ö´Â CWnd ÇÔ¼ö°¡ È­¸é¿¡¼­ »ç¶óÁø ´ÙÀ½¿¡ È£ÃâµÈ´Ù.

OnDestroy is called first for the CWnd being destroyed, then for the child windows of CWnd as they are destroyed. It can be assumed that all child windows still exist while OnDestroy runs.

 

Client°¡ ¾Æ´Ñ  ¿µ¿ªÀÌ destroyµÉ ¶§ Frame work¿¡ ÀÇÇÏ¿© ºÒ·ÁÁö´Â ÇÔ¼öÀÌ´Ù. À©µµ°¡ ¼Ò¸êµÉ¶§ ¸¶Áö¸·À¸·Î ºÒ·ÁÁö´Â ÇÔ¼öÀÌ´Ù. ±âº»ÀûÀ¸·Î ¾à°£ÀÇ Á¤¸®¸¦ ÇÑÈÄ, PostNcDestroy ÇÔ¼ö¸¦ È£ÃâÇÑ´Ù. ´ë°Ô´Â ÀÌ ÇÔ¼ö¸¦ ¿À¹ö¶óÀ̵å ÇÏÁö ¾ÊÁö¸¸ ¸¸¾à ÇÏ°ÔµÇ¸é ³»ºÎ¿¡¼­ »óÀ§ Ŭ·¡½ºÀÇ OnNcDestroy¸¦ È£ÃâÇؾ߸¸ ÇÑ´Ù. ±×·¸Áö ¾ÊÀ¸¸ç³à ³»ºÎÀûÀ¸·Î À©µµ¸¦ À§ÇØ ÇÒ´çµÈ ¸Þ¸ð¸®°¡ freeµÇÁö ¸øÇÑ´Ù.

 

À©µµ°¡ ¼Ò¸êµÈ ÈÄ OnNcDestroyÇÔ¼ö¿¡ ÀÇÇÏ¿© ºÒ·ÁÁö´Â ±âº»ÇÔ¼öÀÌ´Ù. »ç¿ëÀÚµéÀÌ »ó¼Ó¹Þ¾Æ ¸¸µç Ŭ·¡½ºÀÇ Á¤¸®¸¦ À§ÇÑ Äڵ带 »ðÀÔÇÏ¸é µÈ´Ù. ( ex. delete this; )

À§ÀÇ ÇÔ¼ö¸¦ ±×³É ´ëÃæ º¸Áö ¾Ê°í ¼¼½ÉÈ÷ º» »ç¶÷À̶ó¸é ÀÌÁ¦ ÀÚ½ÅÀÌ »ðÀÔÇϱ⸦ ¿øÇÏ´Â Äڵ带 ¾î´ÀºÎºÐ¿¡ »ðÀÔÀ» ÇؾߵǴÂÁö ¾Ë ¼ö ÀÖÀ» °ÍÀÌ´Ù. ±×·³ ¾Æ·¡ÀÇ ¿¹¸¦ ÅëÇÏ¿© ¾Ë¾Æº¸ÀÚ.

¸ÕÀú View class¿¡¼­´Â 3°¡Áö ¼Ò¸ê Çڵ鷯¸¦ Á¦°øÇÑ´Ù. ´ÙÀ½À» º¸ÀÚ.

À§¿¡ ³ª¿­ µÈ ¼ø¼­°¡ ¹Ù·Î view°¡ ´ÝÈú ¶§ ºÒ·ÁÁö´Â ¼ø¼­ÀÌ´Ù.   ¿ì¸®°¡ À¯½ÉÈ÷ »ìÆì º¸¾Æ¾ßÇÒ ºÎºÐÀº TODOÀÇ À§Ä¡ÀÌ´Ù. °ú¿¬ ¾î¶² ÀÌÀ¯¿¡¼­ °¢°¢ÀÇ TODOÀÇ À§Ä¡°¡ °áÁ¤ µÇ´Â°¡?

¸¸¾à  À©µµ°¡ ¾ø¾îÁö±â Àü¿¡ ÀÛ¾÷À» ÇؾßÇÒ ÀÏÀÌ ÀÖ´Ù¸é   4¹ø Áß¿¡ Äڵ带 »ðÀÔÇÏÀÚ. ¶ÇÇÑ À©µµ°¡ »ç¶óÁø ´ÙÀ½¿¡ ÀÛ¾÷À» ÇØ¾ß ÇÑ´Ù¸é 22¹ø ÁÙ¿¡ »ðÀÔÀ» ÇÑ´Ù. delete this ÇÔ¼ö¸¦ »ç¿ëÇÑ´Ù¸é 25¹ø° ÁÙ¿¡ »ðÀÔÇÏÀÚ.

 view¿¡¼­´Â Á¦°øµÇÁö ¾ÊÁö¸¸  OnClose ÇÔ¼öµµ TODOÀÇ À§Ä¡¸¦ Àá½Ã º¸ÀÚ. 

void CAboutDlg::OnClose()
{
      // TODO: Add your message handler code here and/or call default

      CDialog::OnClose();
}

 

<ÇÁ·ÎÆÄÀϸµ[profiling]>

³¡³¯¶§±îÁö ¾î´À ºÎºÐ¿¡¼­ ¾î´À Á¤µµÀÇ ½Ã°£ÀÌ °É·È´ÂÁö¸¦ ¾Ë ¼ö°¡ ÀÖ½À´Ï´Ù.. ±âŸ.. ´Ù¸¥ ±â´Éµµ ¸¹ÀÌ ÀÖ±¸¿ä..  

¿©·¯±â´ÉÁß¿¡ function timing¸¸ ½áºÃ°Åµç¿ä.. 

output â¿¡ ³ª¿Â °á°ú¸¦ °£´ÜÈ÷ ½áº¸¸é..

 

program Statistics
------------------
    Command line at 2001 Jan 15
08:51: "D:\myProg\TestApp\PropertyTest\Debug\PropertyTest"
    Total time: 2848.924 millisecond
    Time outside of functions: 11.820 millisecond
    Call depth: 15
    Total functions: 141
    Total hits: 1868
    Function coverage: 51.8%
    Overhead Calculated 6
    Overhead Average 6

Module Statistics for propertytest.exe
--------------------------------------
    Time in module: 2837.104 millisecond
    Percent of time in module: 100.0%
    Functions in module: 141
    Hits in module: 1868
    Module function coverage: 51.8%

        Func          Func+Child           Hit
        Time   %         Time      %      Count  Function
---------------------------------------------------------
    2599.647  91.6     2716.741  95.8       44 CWinThread::PumpMessage(void) (mfc42d.dll)
     130.907   4.6      131.192   4.6      207 CWnd::DefWindowProcA(unsigned int,unsigned int,long) (mfc42d.dll)
      58.981   2.1     2835.973 100.0        1 CDialog::DoModal(void) (mfc42d.dll)

 

¾î´À ÇÔ¼ö°¡ ½Ã°£ÀÌ Á© ¸¹ÀÌ °É¸°Áö ³ª¿ÀÁÒ.. ^^;; 

ÇÁ·Î±×·¥Â¥´Ù°¡ ³ªÁß¿¡ Çѹø µ¹·Áº¸¸é.. 

¾î´À ºÎºÐ¿¡¼­ ÆÛÆ÷¸Õ½º°¡ ¶³¾îÁö´ÂÁö È®ÀÎÇÒ ¼ö ÀÖ°ÚÁÒ.. 

Àâ¼³Àº °í¸¸ÇÏ°í..

 

Project ¸Þ´º Setting¿¡¼­ Link ÅÇÀ» ¼±ÅÃÇϸé.. 

Enable Profiling ¿¡ üũÇϽðí.. 

Rebuild All ÇϽŠÈÄ¿¡.. 

Build¸Þ´º Á© ¾Æ·¡¿¡ ProfileÇØÁֽøé.. 

¼±ÅÃâÀÌ ¶ß´Âµ¥.. ¼±ÅÃÇϽðí 

ÇÁ·Î±×·¥ ½ÇÇàÇÑÈÄ¿¡.. Á¾·áÇϸé outputâ¿¡ °á°ú°¡ ³ª¿É´Ï´Ù.. 

 

Windows 2000¿¡¼­ profile ¸Þ´º°¡ È°¼ºÈ­µÇÁö ¾ÈµÈ´Ù´Â ºÐÀÌ °è½Ã´Âµ¥ ÇØ°á ¹æ¹ýÀº ´ÙÀ½°ú °°½À´Ï´Ù. 

Visual Studio°¡ ¼³Ä¡µÉ ¶§ Profile°ú °ü·ÃµÈ ·¹Áö½ºÆ®¸® Á¤º¸¸¦ HKEY_CURRENT_USER ¾Æ·¡¿¡ ½á³Ö½À´Ï´Ù. ±×·¡¼­ Visual Studio¸¦ ¼³Ä¡ÇÒ ¶§ »ç¿ëÇß´ø °èÁ¤À¸·Î ·Î±×ÀÎÇÏÁö ¾ÊÀ¸¸é profileÀÌ È°¼ºÈ­µÇÁö ¾Ê½À´Ï´Ù.

 À̸¦ ÇØ°áÇÏ·Á¸é VC¸¦ ¼³Ä¡ÇÒ ¶§ Á¢¼ÓÇß´ø °èÁ¤À¸·Î ·Î±×ÀÎÀ» ÇÏ´ø°¡, ¾Æ´Ï¸é ·¹Áö½ºÆ®¸®¿¡ °ªÀ» ½á³Ö¾îÁÖ¸é µË´Ï´Ù. text editor¸¦ ÀÌ¿ëÇÏ¿© a.reg¶ó´Â ÆÄÀÏÀ» ¸¸µé°í ´ÙÀ½ÀÇ ³»¿ëÀ» ³Ö¾îÁÝ´Ï´Ù. 

ÀÌ ÆÄÀÏÀ» ´õºíŬ¸¯ÇÏ¸é ·¹Áö½ºÆ®¸®¿¡ °ªÀÌ ½á³Ö¾îÁö°í VC¿¡ profile ¸Þ´º°¡ È°¼ºÈ­µË´Ï´Ù.

ÀÌ Á¤º¸´Â MSDN¿¡¼­ Q224382·Î ã¾Æº¸½Ã¸é µË´Ï´Ù.

 

<ÇØ»óµµ º¯°æÇϱâ>

¸» ±×´ë·Î ÇÁ·Î±×·¡¹Ö »ó¿¡¼­ ÇöÀçÀÇ Çػ󵵸¦ ¿øÇϴµ¥·Î º¯°æÇÒ ¼ö ÀÖ½À´Ï´Ù. 

Àü¿ªÇÔ¼ö·Î ChangeDisplaySettings ¶ó´Â ÇÔ¼ö°¡ ÀÖ´õ±º¿ä. 

¾Ïµ¥¼­³ª ºÒ·¯ ¾µ¼ö ÀÖÁÒ.  

ÀÌÀü Çػ󵵸¦ º¸°üÇß´Ù°¡ ´Ù½Ã º¹±ÍÇÒ ¼ö ÀÖµµ·Ï Çغ¸°Ú½À´Ï´Ù.

 

ÇöÀçÀÇ Çػ󵵸¦ ¾ò¾î¿À´Â ÇÔ¼ö´Â GetSystemMetrics ÀÔ´Ï´Ù.

¸ÕÀú ÇöÀçÀÇ Çػ󵵸¦ ÀúÀåÇÒ º¯¼ö¸¦ ¼±¾ðÇÕ´Ï´Ù.

 

ÃʱâÈ­´Â ¿ä·¸°Ô..

ÀÎÀÚ·Î ¹ÞÀº Çػ󵵷Πº¯°æÇÏ´Â ÇÔ¼ö¸¦ ¸¸µì´Ï´Ù.

Àü 16ºñÆ® Ä®¶ó·Î¸¸ º¯°æÇϵµ·Ï Çߴµ¥, Àú°ÍµÎ ÀÎÀÚ·Î ¹Þ¾Æ¼­ ó¸®ÇÏ¸é ¿øÇÏ´Â Ä®¶ó·Î ¹Ù²Ü¼ö ÀÖ°ÚÁÒ??? ±×¸®±¸ ¿øÇÏ´Â °÷¿¡¼­ ÇÔ¼ö¸¦ È£Ãâ~~~

    // 1024 x 768 ·Î º¯°æ    
    ((CMainFrame*)AfxGetMainWnd())->ChangeDisplay(1024, 768) ;     

ÇÁ·Î±×·¥ÀÌ Á¾·áÇÒ¶§ ÀÌÀü Çػ󵵷Πº¹±ÍÇϵµ·Ï ÇØ¾ß °ÚÁÒ? ÀÌ°Ç DestroyWindow() ¿¡¼­ ó¸®ÇÏ¸é µË´Ï´Ù. 

BOOL CMainFrame::DestroyWindow()
{
    if(screenX != GetSystemMetrics(SM_CXSCREEN) ||
        screenY != GetSystemMetrics(SM_CYSCREEN))
        ChangeDisplay(screenX, screenY) ;
    return CFrameWnd::DestroyWindow();
}

ÀÌÀü Çػ󵵸¦ ÀúÀåÇص×À¸´Ï±î ±×°É·Î ´Ù½Ã º¹±ÍÇÑ°ÅÁÒ.

¾ÏÆ°, À§¿¡¼­Ã³·³ ÀÛ¾÷ÇÏ¸é ¿øÇÏ´Â Çػ󵵷Πº¯°æ½ÃÄѼ­ ÀÛ¾÷ÇÒ ¼ö ÀÖÁÒ.

 

Âü, µµ¿ò¸»À» µÚÁ®º¸´Ï±ñ À©µµ¿ì ¸Þ½ÃÁöÁß¿¡ WM_DISPLAYCHANGE ¶ó´Â°Ô ÀÖ´õ±º¿ä.

±Ùµ¥ ÀÌ ¸Þ½ÃÁö´Â Ŭ·¡½ºÀ§Àúµå¿¡ µé¾îÀÖÁú ¾Ê³×¿ä.

99999999WM_DISPLAYCHANGE ¸Þ¼¼Áö´Â Á÷Á¢ È£ÃâÇÒ ¼ö´Â ¾øÀ» °Ì´Ï´Ù.

´Ù¸¸ OS°¡ È­¸é Çػ󵵰¡ º¯°æµÇ¾úÀ» ¶§ ¸ðµç Window¿¡°Ô·Î

º¸³»ÁÖ´Â MessageÀÏ °Ì´Ï´Ù.

 

ÇØ»óµµ º¹¿ø½Ã¿¡ º¯¼ö·Î Çػ󵵸¦ °¡Áö°í ÀÖ´Ù°¡ º¹¿øÇÒ ÇÊ¿ä ¾øÀÌ ±×³É

    ChangeDisplaySettings(NULL, 0);

À̶ó°í¸¸ Çϸé È­¸é º¹¿ø µË´Ï´Ù. ÀÌ ÇÔ¼ö´Â ÇØ»óµµ º¯°æ¸¸ ÇÏÁö µð½ºÇ÷¹ÀÌ

µî·ÏÁ¤º¸ ÀÚü¸¦ ¹Ù²ÙÁø ¾Ê±â ¶§¹®¿¡ À§ ¹æ½Ä´ë·Î ÇÔ¼ö¸¦ È£ÃâÇÏ¸é µð½ºÇ÷¹ÀÌ

µî·ÏÁ¤º¸¿¡ ÀÖ´Â Çػ󵵷Π±×´ë·Î ¹Ù²ãÁֱ⠶§¹®¿¡ ´õ ¾ÈÁ¤ÀûÀÔ´Ï´Ù. 

 

¿øÇÏ´Â Çػ󵵸¦ ¸ð´ÏÅÍ°¡ ¹Þ¾ÆÁÙ¼ö ÀÖ´ÂÁö Å×½ºÆ® ÇÏ½Ã°í ¹Ù²ã¾ßÁÒ.

±× ºÎºÐÀÌ ºüÁ³±º¿ä.

EnumDisplaySettings¸¦ ÀÌ¿ëÇÏ½Ã¸é µË´Ï´Ù.

 

< È­¸é Áö¿ì±â>

1) OnDraw ¿Í InvalidateRect ÀÌ¿ë

VC++ ¿¡´Â BasicÀÇ CLS ¸í·É°ú °°Àº °£´ÜÈ÷ È­¸éÀ» Áö¿ì´Â ¸í·ÉÀÌ ¾ø½À´Ï´Ù. À̶§¹®¿¡ ´ÙÀ½°ú °£Àº ¹æ¹ýÀ» »ç¿ëÇÕ´Ï´Ù. ¿¹¸¦ µé¸é

À¸·Î »ç°¢ÇüÀ» ±×¸°ÈÄ ¾ÈÀ» ¹è°æ»öÀ¸·Î ¸ðµÎ ä¿ì¸é Áö¿î °Í°ú °°Àº È¿°ú¸¦ ³»°Ô µË´Ï´Ù. windows´Â ¿Ü°ü»ó È­¸é¿¡ ¹®ÀÚÃâ·ÂÀÌ µÇ¾î À־ ³»ºÎÀûÀ¸·Î´Â ¸ðµÎ À̹ÌÁö¸¦ ±×¸®±â ¶§¹®¿¡ ÀÌ ¸í·ÉÀ¸·Î È­¸éÀ» Áö¿ï¼ö°¡ ÀÖ½À´Ï´Ù.

OnDraw ÇÔ¼ö¿Í InvalidateRect ÇÔ¼ö¸¦ »ç¿ëÇÏ´Â °ÍÀ¸·Îµµ °£´ÜÇÏ°Ô È­¸éÀ» Áö¿ï¼ö ÀÖ½À´Ï´Ù.

1 OnDraw ÇÔ¼ö¿¡ if¹®À» ³ª´©¾î ³õ¾Æ¼­ ¾Æ¹« °Íµµ Ç¥½ÃÇÏÁö ¾Ê´Â ±â´ÉÀ» ³Ö½À´Ï´Ù.

2 CWnd::GetclientRect ÇÔ¼ö¿¡¼­ Ŭ¶óÀ̾ðÆ® ¿µ¿ª Å©±â¸¦ ¾Ë¾Æ ³½´Ù.

3 ±× Å©±â¸¦ ÆĶó¹ÌÅÍ·Î ÇÏ¿© InvalidateRect ÇÔ¼ö¸¦ ½ÇÇàÇÏ¸é µË´Ï´Ù.

±×·³ Á»´õ ÀÚ¼¼È÷ ¾Ë¾Æ º¸±â·Î ÇÏ°Ú½À´Ï´Ù.

ÀÌ Ã³¸®´Â Ŭ¶óÀ̾ðÆ® ¿µ¿ª ÀüüÀÇ Å©±â¸¦ myRECT¿¡ ¼³Á¤ÇÏ¿© ±× myRECT¿¡¼­ ³ªÅ¸³»´Â ¹üÀ§¸¦ ´Ù½Ã ±×¸®°í ÀÖ½À´Ï´Ù. Ȥ½Ã ºÎºÐÀûÀ¸·Î ´Ù½Ã ±×¸®±â¸¦ ÇÑ´Ù¸é,

myRECT.SelRect(0,0,200,200);//Ŭ¶óÀ̾ðÆ® ¿µ¿ªÀÇ (0,0,)-(200,200)À» ÁöÁ¤
9InvalidateRect(&myRECT);//±× »ç°¢Çü ¿µ¿ªÀ» ´Ù½Ã ±×¸®±â ÁöÁ¤.

°ú °°ÀÌ ÇÏ¸é µÇ±¸¿ä, ´õ¿íÀÌ "Ŭ¶óÀ̾ðÆ® ¿µ¿ª¸¸"À» Áö¿ì·Á°í ÇÒ¶§¿¡´Â »çÀü¿¡ Å©±â¸¦ ¾Ë¾Æ ³õÁö ¾Ê´õ¶óµµ ´ÙÀ½°ú °°ÀÌ ¾ÆÁÖ °£´ÜÇÏ ¹æ¹ýÀ¸·Î Áö¿ï¼ö ÀÖ½À´Ï´Ù.

InvalidateRect(NULL);

 

2) ExtTextOut ÀÌ¿ë

Á¦°¡ ¾Ë°í ÀÖ±â·Ð È­¸é Áö¿ì´Â ¹æ¹ý Áß¿¡¼­ °¡Àå ºü¸¥ °É·Î ¾Ë°í ÀÖ½À´Ï´Ù.

 Ã³À½Àº ¶È°°½À´Ï´Ù.

ÀÌ ´ÙÀ½ InvalidateRect°¡ ¾Æ´Ñ.. ExtTextOutÀ» ¾¹´Ï´Ù.

  ÅؽºÆ®ÀÇ ¹é±×¶ó¿îµå »ö±òÀ» Ä¥ÇÏ°í ½ÍÀº È­¸é»ö±ò·Î Á¤ÇÏ°í, ºó¹®ÀÚ¿­À» ¾²¶ó´Â °Ì´Ï´Ù. Áï(ÆĶó¹ÌÅÍ·Î CDC *pDC¸¦ ¹Þ´Â´Ù´Â °¡Á¤ÇÏ¿¡)

ÀÌ·¸°Ô ºó¹®ÀÚ¿­À» Á×~ ¶óÀÌÆÃÇÏ¸é ¹®ÀÚ¿­ÀÇ ¹è°æ»öÀ¸·Î¸¸ Ä¥ÇØÁý´Ï´Ù.

¸»ÇÏÀÚ¸é È­¸éÀ» Áö¿ì´Â È¿°úÀÌÁÒ.

µðÆúÆ®¸¦ »ç¿ëÇϽðڴٸé SetBkColor´Â »ç¿ëÇÏÁö ¾Ê¾Æµµ µË´Ï´Ù. 

È­¸éÀ» ´ÜÀÏ»öÀ¸·Î Áö¿ì´Âµ¥´Â ±× ÀÌ»ó ºü¸¥ ¹æ¹ýÀÌ ¾øÁÒ.

MFCÀÇ CDC::FillSolidRectµµ ³»ºÎ ¼Ò½º¸¦ º¸¸é ExtTextOutÀ» »ç¿ëÇÕ´Ï´Ù.

 ´Ù¸¸ ExtTextOutÀ¸·Î »ç°¢ÇüÀ» Ä¥ÇßÀ» ¶§´Â DCÀÇ ¹è°æ»öÀÌ ¹Ù²ï´Ù´Â »ç½ÇÀ» ÀØÀ¸¸é ¾ÈµË´Ï´Ù.

 

3) PatBlt ÀÌ¿ë

WM_PAINT¿¡¼­

CPaintDC dc(this);
CRect rect;
GetClientRect(rect);

dc.PatBlt(0, 0, rect.Width(), rect.Height(), WHITENESS);

 

- the end of this article -