´Ù. Â÷ÀÏµå »ý¼º

ÀÌ ¿¹Á¦´Â Â÷Àϵå À©µµ¿ì¸¦ °ü¸®Çϱâ À§ÇØ µÎ °³ÀÇ Àü¿ªº¯¼ö¸¦ »ç¿ëÇÏ°í ÀÖ´Ù. g_NewNo´Â »õ·Î ¸¸µé¾îÁö´Â Â÷Àϵ忡°Ô ºÙ¿©ÁÙ µðÆúÆ® ÆÄÀϸíÀ» ¸¸µé±â À§ÇØ ÇÊ¿äÇÏ´Ù. ÃÖÃÊ 0À¸·Î ÃʱâÈ­µÇ¾ú´Ù°¡ ¹®¼­°¡ ¸¸µé¾îÁú ¶§¸¶´Ù 1¾¿ Áõ°¡ÇÏ¿© À̸§¾øÀ½1, À̸§¾øÀ½2, À̸§¾øÀ½3 ½ÄÀ¸·Î ¹®¼­ÀÇ À̸§À» ºÙÀÌ°Ô µÈ´Ù. ÆÄÀÏÀ» »ý¼ºÇØ ³»´Â MDI ÇÁ·Î±×·¥µéÀº »õ·Î Â÷Àϵ带 ¸¸µé ¶§¸¶´Ù À̸§¾øÀ½, noname, untitled, ¹®¼­, Á¦¸ñ ¾øÀ½ µîÀÇ µðÆúÆ® À̸§À» ºÙÀ̴µ¥ ÀÌ À̸§µéµµ ¼­·Î Áߺ¹µÇ¾î¼­´Â ¾ÈµÇ±â ¶§¹®¿¡ µÚ¿¡ 1¾¿ Áõ°¡ÇÏ´Â ÀϷùøÈ£¸¦ ºÙ¿©ÁÖ¸ç ÀÌ ÀϷùøÈ£¸¦ ¹Ù·Î g_NewNo º¯¼ö°¡ °ü¸®ÇÑ´Ù.

g_ChildNumÀº ¿­¸° Â÷ÀϵåÀÇ °³¼ö¸¦ ÀúÀåÇÏ´Â °ªÀÌ´Ù. ÃÖÃÊ 0À¸·Î ÃʱâÈ­µÇ¸ç Â÷Àϵ尡 ¸¸µé¾îÁú ¶§¸¶´Ù 1¾¿ Áõ°¡ÇÏ°í Â÷Àϵ尡 Æı«µÇ¸é 1 °¨¼ÒÇÑ´Ù. DGChildProcÀÇ WM_CREATE¿Í WM_DESTROY¿¡¼­ g_ChildNumÀ» Áõ°¨½ÃÅ°¹Ç·Î ÀÌ °ªÀ» ÀÐÀ¸¸é ÇöÀç ¸î °³ÀÇ Â÷Àϵ尡 ¿­·Á ÀÖ´ÂÁö ¹Ù·Î ¾Ë ¼ö ÀÖ´Ù. Â÷ÀÏµå °³¼ö´Â À©µµ¿ì ¿­°Å¸¦ Çغ¸¸é ½Ç½Ã°£À¸·Î ±¸ÇÒ ¼öµµ ÀÖÁö¸¸ ½Ã°£ÀÌ ¿À·¡ °É¸®±â ¶§¹®¿¡ Àü¿ªº¯¼ö·Î ±× °³¼ö¸¦ À¯ÁöÇϵµ·Ï Çß´Ù.

ÀÌ µÎ Àü¿ªº¯¼öÀÇ ¿ëµµ°¡ ºñ½ÁÇÑ °Í °°Áö¸¸ Á¶±Ý ´Ù¸£´Ù. g_ChildNumÀº Áõ°¨ÇÏÁö¸¸ g_NewNo´Â ¹«Á¶°Ç Áõ°¡¸¸ ÇÏ°í °¨¼Ò´Â ÇÏÁö ¾Ê´Â´Ù. Â÷Àϵ带 ¸¸µé°í ´Ý±â¸¦ ¹Ýº¹ÇÒ ¶§ ÀÌ µÎ °ªÀÌ ¾î¶»°Ô º¯ÇÏ´ÂÁö º¸ÀÚ.

 

 

g_NewNo

g_ChildNum

ÃʱⰪ

0

0

À̸§¾øÀ½ 1 »ý¼º

1

1

À̸§¾øÀ½ 2 »ý¼º

2

2

À̸§¾øÀ½ 3 »ý¼º

3

3

À̸§¾øÀ½ 2 ´ÝÀ½

3

2

À̸§¾øÀ½ 4 »ý¼º

4

3

 

¾ð¶æ º¸±â¿¡ g_ChildNumÀÌ g_NewNoÀÇ ¿ªÇÒÀ» ´ë½ÅÇÒ ¼ö ÀÖ´Â °Í °°¾Æ º¸ÀδÙ. ÇÏÁö¸¸ Áß°£¿¡ Â÷Àϵ带 ´ÝÀ» ¼öµµ Àֱ⠶§¹®¿¡ ±×·¸Áö°¡ ¸øÇÏ´Ù. 1,2,3±îÁö ¸¸µç ÈÄ 2¸¦ ´Ý°í ´Ù½Ã Â÷Àϵ带 Çϳª ´õ ¸¸µé¾úÀ» ¶§ ÀÌ °ªÀº 4°¡ µÇ¾î¾ßÁö 3ÀÌ µÇ¾î¼­´Â ¾ÈµÇ±â ¶§¹®ÀÌ´Ù. ±×·¡¼­ µÎ º¯¼ö°¡ ¸ðµÎ ÇÊ¿äÇÏ´Ù.

»õ·Î¿î Â÷Àϵå À©µµ¿ì¸¦ ¸¸µå´Â ÀÛ¾÷Àº New ÇÔ¼ö°¡ ÇÑ´Ù. ÀÌ ÇÔ¼ö°¡ MDI Â÷Àϵ带 ¸¸µå´Â ¹æ¹ýÀº ¿ø·ÐÀûÀÌ´Ù. MDICREATESTRUCT ±¸Á¶Ã¼¿¡ »ý¼ºÇÏ°íÀÚ ÇÏ´Â Â÷Àϵ忡 ´ëÇÑ Á¤º¸¸¦ ä¿ì°í MDI Ŭ¶óÀ̾ðÆ® À©µµ¿ì·Î WM_MDICREATE ¸Þ½ÃÁö¸¦ º¸³»´Â °ÍÀÌ´Ù. ÀÌ ¸Þ½ÃÁö ´ë½Å CreateMDIWindow ÇÔ¼ö¸¦ »ç¿ëÇÒ ¼öµµ ÀÖ´Ù.

Â÷Àϵ带 »ý¼ºÇϴµ¥ º° Ưº°ÇÑ ÄÚµå´Â ¾øÁö¸¸ »ý¼ºµÇ´Â Â÷ÀϵåÀÇ Å©±â¸¦ Á¤ÇÏ´Â ¹æ¹ýÀÌ Á¶±Ý ƯÀÌÇÏ´Ù. Â÷Àϵ带 ¸¸µé±â Àü¿¡ WM_MDIGETACTIVE ¸Þ½ÃÁö¸¦ º¸³» ÇöÀç È°¼ºÈ­µÈ Â÷Àϵ尡 ÀÖ´ÂÁö, ±×¸®°í ±× âÀÌ ÃÖ´ëÈ­µÈ »óÅÂÀÎÁö¸¦ Á¶»çÇÑ´Ù. ¸¸¾à È°¼º Â÷Àϵ尡 ¾ø°Å³ª ÀÖ´õ¶óµµ ÃÖ´ëÈ­µÇ¾î ÀÖÀ¸¸é »õ·Î ¸¸µé¾îÁö´Â Â÷Àϵ嵵 °°ÀÌ ÃÖ´ëÈ­µÈ´Ù. È°¼º Â÷Àϵ尡 ¾ø´Ù´Â ¸»Àº ¾Æ¹« °Íµµ ÆíÁýÇÏ°í ÀÖÁö ¾ÊÀº ºó »óŶó´Â ¶æÀε¥ À̶§ »ý¼ºµÇ´Â Â÷Àϵå´Â È¥ÀÚÀ̹ǷΠÃÖ´ëÈ­ÇÏ¿© ÀÛ¾÷¿µ¿ª Àüü¸¦ ´Ù ¾µ ¼ö ÀÖµµ·Ï Çß´Ù.

New ÇÔ¼ö´Â ÆÄÀÏ/»õ ÆÄÀÏ(IDM_FILE_NEW) Ç׸ñÀ» ¼±ÅÃÇÒ ¶§ È£ÃâµÈ´Ù. »õ ÆÄÀÏÀ» ¸¸µé¶ó´Â ¸í·ÉÀ̹ǷΠÀÌ ÇÔ¼ö°¡ È£ÃâµÇ´Â °ÍÀÌ ´ç¿¬ÇÏ´Ù. ±× ¿Ü¿¡ New ÇÔ¼ö°¡ È£ÃâµÇ´Â °÷ÀÌ ÇÑ ±ºµ¥ ´õ Àִµ¥ ¸ÞÀÎ À©µµ¿ì°¡ óÀ½ ¸¸µé¾îÁú ¶§ÀÌ´Ù. ÆíÁý±â¸¦ ½ÇÇàÇß´Ù´Â °ÍÀº ÆÄÀÏÀ» ¸¸µé°Ú´Ù´Â ¶æÀ̹ǷΠ½ÃÀÛÇÒ ¶§ ¾Æ¿¹ »õ ¹®¼­¸¦ Çϳª ¸¸µå´Â °ÍÀÌ´Ù. ¸¸¾à ±×³É ºó »óÅ·Π½ÇÇàµÇµµ·Ï ÇÑ´Ù¸é ½ÇÇà Á÷ÈÄ¿¡ Ç×»ó ÆÄÀÏ/»õ ÆÄÀÏÀ» ¼±ÅÃÇØ¾ß ÇϹǷΠ¾²±â ºÒÆíÇÒ °ÍÀÌ°í ¶Ç °³¹ßÁß¿¡µµ Å×½ºÆ®ÇϱⰡ ¿©°£ ÇÇ°ïÇÑ °ÍÀÌ ¾Æ´Ï´Ù. ±×·¡¼­ ½ÇÇàÇÏÀÚ¸¶ÀÚ New ÇÔ¼ö¸¦ È£ÃâÇÏ¿© Â÷Àϵå Çϳª¸¦ ¸¸µéµµ·Ï ÇÏ¿´´Ù.

ÀÌ·± ¸ñÀûÀ̶ó¸é ¸ÞÀÎ À©µµ¿ì°¡ »ý¼ºµÇ´Â ½ÃÁ¡ÀÎ OnCreate¿¡¼­ New ÇÔ¼ö¸¦ È£ÃâÇÏ¸é µÉ °Í °°´Ù. ±×·¯³ª ÀÌ ¿¹Á¦´Â ±×·¸°Ô ÇÏÁö ¾Ê¾Ò°í OnCreate¿¡¼­´Â ŸÀ̸Ӹ¸ ¼³Ä¡ÇÏ°í OnTimer¿¡¼­ New ÇÔ¼ö¸¦ È£ÃâÇÏ¿´´Ù. ÀÌ Å¸À̸Ӵ ¹ß»ý Á÷ÈÄ¿¡ °ð¹Ù·Î Æı«µÇ´Â ÀÏȸ¿ë ŸÀ̸ÓÀÌ´Ù. ¿Ö ±»ÀÌ Å¸À̸Ӹ¦ »ç¿ëÇϴ°¡ Çϸé ÃʱâÈ­°¡ ¿ÏÀüÈ÷ ¿Ï·áµÈ ÈÄ¿¡ Â÷Àϵ带 ¸¸µé±â À§Çؼ­ÀÌ´Ù. OnCreate´Â ºÎ¸ð À©µµ¿ì°¡ ¸¸µé¾îÁö°í ÀÖ´Â ÁßÀÎ »óÅÂÀ̹ǷΠNew ÇÔ¼ö¸¦ È£ÃâÇϱâ´Â ºÎÀû´çÇÏ¸ç ¸¸¾à OnCreate¿¡¼­ New ÇÔ¼ö¸¦ È£ÃâÇϸé MDI Ŭ¶óÀ̾ðÆ®ÀÇ Å©±â°¡ °áÁ¤µÇÁö ¾Ê¾Ò±â ¶§¹®¿¡ Å©±â 0ÀÇ Â÷Àϵ尡 ¸¸µé¾îÁø´Ù. New ÇÔ¼ö¿¡ ÀÇÇØ Â÷Àϵå´Â ÃÖ´ëÈ­ »óÅ·Π¸¸µé¾îÁöÁö¸¸ ÃÖ´ëÈ­°¡ Ç®¸®¸é ¾ÆÁÖ ÀÛÀº Å©±â°¡ µÇ¾î ¹ö¸°´Ù.

µü ÇÑ ¹ø¸¸ ÇÏ¸é µÉ ÀÏÀ» À§ÇØ Å¸À̸Ӹ¦ »ç¿ëÇÏ´Â ¹æ½ÄÀÌ ¹«Ã´ ¸¶À½¿¡ ¾È µé¾î º¸ÀÏ °ÍÀÌ¸ç »ç½Ç ³ªµµ º°·Î ¸¶À½¿¡ ¾È µç´Ù. ¹®Á¦´Â WM_CREATE°¡ ÃʱâÈ­ ¿Ï·á ¸Þ½ÃÁö°¡ ¾Æ´Ï¶ó ÃʱâÈ­ÁßÀ̶ó´Â ¸Þ½ÃÁöÀ̱⠶§¹®Àε¥ ±×·¸´Ù¸é ÃʱâÈ­°¡ ¿ÏÀüÈ÷ ¿Ï·áµÈ ÈÄ¿¡ ¹Þ´Â ¸Þ½ÃÁö¿¡¼­ New ÇÔ¼ö¸¦ È£ÃâÇÏ¸é µÉ °Í ¾Æ´Ñ°¡ÇÏ´Â »ý°¢ÀÌ µé °ÍÀÌ´Ù. ±×·¯³ª ºÒÇàÇÏ°Ôµµ ±×·± ¸Þ½ÃÁö´Â ¾øÀ¸¸ç ÀÖÀ» ¼öµµ ¾ø´Ù. ¿Ö³ÄÇÏ¸é ¸Þ½ÃÁö¸¦ ó¸®ÇÏ°í ÀÖ´Â ÁßÀ̶ó´Â ÀÚü°¡ ÀÌ¹Ì ÃʱâÈ­°¡ ¾ÆÁ÷ ´ú µÇ¾ú´Ù´Â ¶æÀ̱⠶§¹®ÀÌ´Ù.

±×·¡¼­ ŸÀ̸Ӹ¦ ¼³Ä¡ÇÏ°í ÀÌ ¸Þ½ÃÁö°¡ ÃÖÃÊ·Î ¹ß»ýµÇ´Â ½ÃÁ¡À» ÃʱâÈ­ ¿Ï·á ½ÃÁ¡À¸·Î Á¤ÀÇÇÏ¿´´Ù. Áï ÀÏȸ¿ë ŸÀÌ¸Ó ¸Þ½ÃÁö¸¦ ÃʱâÈ­ ¿Ï·á ¸Þ½ÃÁö·Î ¸¸µé¾î ¾²´Â °ÍÀÌ´Ù. SetTimer¹®ÀÇ 1À̶ó´Â ŸÀÌ¸Ó ÁÖ±â´Â »ç½Ç»ó Àǹ̰¡ ¾ø´Â °ªÀ̸ç 0.001ÃÊ Èĸ¦ ¶æÇÏ´Â °ÍÀÌ ¾Æ´Ï¶ó ±×³É ´Ü¼øÈ÷ ¡®ÃÖ´ëÇÑ »¡¸®¡¯¶ó´Â ¶æÀÌ´Ù. WM_TIMER´Â WM_PAINT ´ÙÀ½À¸·Î ¿ì¼± ¼øÀ§°¡ ´ÊÀº ¸Þ½ÃÁöÀÌ¸ç ¸Þ½ÃÁö Å¥°¡ ºñ´Â ÃÖÃÊÀÇ ¼ø°£¿¡ ÀÌ ¸Þ½ÃÁö°¡ Àü´ÞµÇ¹Ç·Î ÃʱâÈ­ ¿Ï·á ¸Þ½ÃÁö·Î ¾²±â¿¡ ÀûÀýÇÏ´Ù.

±×·¡µµ ŸÀ̸Ӹ¦ ¾²´Â ¹æ½ÄÀÌ Á¤ ¸¶À½¿¡ µéÁö ¾Ê´Â´Ù¸é ¿øÄ¢À» Á» µûÁ® º¸µµ·Ï ÇÏÀÚ. ¿ø·¡ ¿øÄ¢´ë·Î ÇÏÀÚ¸é ÃʱâÈ­°¡ ¿Ï·áµÇ´Â ½ÃÁ¡Àº WinMainÀÇ CreateWindow°¡ ¸®ÅÏÇÏ´Â ½ÃÁ¡ÀÌ´Ù. ±×·¡¼­ New ÇÔ¼ö¸¦ ´ÙÀ½°ú °°ÀÌ È£ÃâÇÏ¸é µ¿ÀÏÇÑ ±â´ÉÀ» ¿Ïº®ÇÏ°Ô ±¸ÇöÇÒ ¼ö ÀÖ´Ù.

 

int APIENTRY WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance

            ,LPSTR lpszCmdParam,int nCmdShow)

{

     ....

     hWnd=CreateWindow(lpszClass,"´ç±Ù",WS_OVERLAPPEDWINDOW | WS_VISIBLE | WS_CLIPCHILDREN,

          CW_USEDEFAULT,CW_USEDEFAULT,CW_USEDEFAULT,CW_USEDEFAULT,

          NULL,(HMENU)NULL,hInstance,NULL);

    New();

 

ÇÏÁö¸¸ WinMain¿¡ ¸ÞÀÎ À©µµ¿ì ÃʱâÈ­ °ü·Ã Äڵ带 ÀÛ¼ºÇÑ´Ù´Â °Íµµ ŸÀ̸Ӹ¦ ¾²´Â °Í¿¡ ºñÇØ ±×´ÙÁö ÁÁÀº ¹æ¹ýÀ̶ó°í´Â ÇÒ ¼ö ¾ø´Ù. Á» º¸±â¿¡ ¾È ÁÁ¾Æ º¸¿©µµ ±× À©µµ¿ì¿Í °ü·ÃµÈ ÄÚµå´Â ¸Þ½ÃÁö ÇÁ·Î½ÃÀú ³»¿¡¼­ ó¸®ÇÏ´Â °ÍÀÌ ´õ ÁÁ´Ù. ÇÁ·ÎÁ§Æ®°¡ ÁøÇàµÇ¸é ÃʱâÈ­ ¿Ï·á ½ÃÁ¡¿¡¼­ ÇØ¾ß ÇÒ ÀÏÀÌ ¸¹¾ÆÁö´Âµ¥ ÀÌ·± ´ë·®ÀÇ Äڵ带 WinMain¿¡ µÎ´Â °ÍÀº ±×´ÙÁö ÁÁÀº »ý°¢ÀÌ ¾Æ´Ï´Ù.