ÀÚ½Ä Ã¢ ¸¸µé±â

MDI ÀÚ½Ä Ã¢À» ¸¸µå´Â ÀÀ¿ë ÇÁ·Î±×·¥ CreateMDIWindow ÇÔ¼ö È£Ãâ ¶Ç´Â MDI Ŭ¶óÀÌ¾ðÆ® Ã¢¿¡ WM_MDICREATE ¸Þ½ÃÁö¸¦ º¸³¾ ¼ö ÀÖ½À´Ï´Ù. (ÀÀ¿ë ÇÁ·Î±×·¥ »ç¿ëÇÒ ¼ö CreateWindowEx ÇÔ¼ö WS_EX_MDICHILD ½ºÅ¸Àϰú MDI ÀÚ½Ä Ã¢À» ¸¸µé ÇÕ´Ï´Ù.) ´ÜÀÏ ½º·¹µå MDI ÀÀ¿ë ÇÁ·Î±×·¥ ¸Þ¼­µå Áß Çϳª¸¦ »ç¿ë ÇÏ ¿© ÀÚ½Ä Ã¢À» ¸¸µé ¼ö ÀÖ½À´Ï´Ù. ´ÙÁß ½º·¹µå MDI ÀÀ¿ë ÇÁ·Î±×·¥ÀÇ ½º·¹µå°¡ ´Ù¸¥ ½º·¹µå¿¡¼­ ÀÚ½Ä Ã¢À» ¸¸µé ¼ö CreateMDIWindow ¶Ç´Â CreateWindowEx ÇÔ¼ö¸¦ »ç¿ë ÇØ¾ß ÇÕ´Ï´Ù.

WM_MDICREATE ¸Þ½ÃÁöÀÇ lParam ¸Å°³ º¯¼ö´Â MDICREATESTRUCT ±¸Á¶¸¦ ¸Ö¸® Æ÷ÀÎÅÍÀÔ´Ï´Ù. 4 Â÷¿ø ±¸¼º¿øÀ» Æ÷ÇÔ ÇÏ´Â ±¸Á¶: â °í cx ¹× cy, âÀÇ °¡·Î ¹× ¼¼·Î ÀͽºÅÙÆ®¸¦ Ç¥½Ã ÇÏ´Â °¡·Î ¹× ¼¼·Î À§Ä¡¸¦ ³ªÅ¸³»´Â x ¿Í y¸¦. ÀÌ·¯ÇÑ ¸â¹ö Áß Çϳª´Â ÀÀ¿ë ÇÁ·Î±×·¥¿¡ ÀÇÇØ ¸í½ÃÀûÀ¸·Î ÇÒ´ç µÉ ¼ö ÀÖ½À´Ï´Ù ¶Ç´Â CW_USEDEFAULT, À§Ä¡, Å©±â ¶Ç´Â °è´Ü½Ä ¾Ë°í¸®Áò¿¡ µû¶ó µÑ °æ¿ì ½Ã½ºÅÛ ¼±ÅÃÀ¸·Î ¼³Á¤ µÇ¾î ÀÖ½À´Ï´Ù. ¾î¶² °æ¿ì¿¡, ¸ðµç 4 ¸íÀÇ ¸â¹ö¸¦ ÃʱâÈ­ ÇØ¾ß ÇÕ´Ï´Ù. Multipad CW_USEDEFAULT¸¦ »ç¿ë ÇÏ ¿© ¸ðµç Â÷¿ø¿¡ ´ë ÇÑ.

MDICREATESTRUCT ±¸Á¶Ã¼ÀÇ ¸¶Áö¸· ¸â¹ö â ½ºÅ¸ÀÏ ºñÆ®¸¦ Æ÷ÇÔÇÒ ¼ö ÀÖ½À´Ï´Ù ½ºÅ¸ÀÏ ¸â¹ö°¡ÀÔ´Ï´Ù. â ½ºÅ¸ÀÏÀÇ Á¶ÇÕÀ» °¡Áú ¼ö ÀÖ´Â MDI ÀÚ½Ä Ã¢À» ¸¸µéÁö MDIS_ALLCHILDSTYLES â ½ºÅ¸ÀÏÀ» ÁöÁ¤ ÇÕ´Ï´Ù. MDI ÀÚ½Ä Ã¢À» ±âº» ¼³Á¤À¸·Î WS_MINIMIZE, WS_MAXIMIZE, WS_HSCROLL, ¹× WS_VSCROLL ½ºÅ¸ÀÏÀºÀÌ ½ºÅ¸ÀÏÀÌ ÁöÁ¤ µÇÁö ¾ÊÀº °æ¿ì.

Multipad´Â MDI ÀÚ½Ä Ã¢À» ¸¸µì´Ï´Ù (¼Ò½º ÆÄÀÏ MPFILE¿¡¿¡¼­ À§Ä¡´Â ·ÎÄ÷ΠÁ¤ÀÇ µÈ AddFile ÇÔ¼ö¸¦ »ç¿ë ÇÏ ¿© ÇÕ´Ï´Ù.C). The AddFile ÇÔ¼ö "Untitled"¸¦ Çϰųª ÆíÁý ÁßÀÎ ÆÄÀÏÀÇ À̸§ Áß Çϳª¸¦ À©µµ¿ìÀÇ MDICREATESTRUCT ±¸Á¶ÀÇ szTitle ¸â¹ö¸¦ ÇÒ´ç ÇÏ ¿© ÀÚ½Ä Ã¢ Á¦¸ñÀ» ¼³Á¤ ÇÕ´Ï´Ù. SzClass ¸â¹ö´Â MultipadÀÇ InitializeApplication ÇÔ¼ö¿¡ µî·Ï µÈ MDI ÀÚ½Ä Ã¢ Ŭ·¡½ºÀÇ À̸§À¸·Î ¼³Á¤ µË´Ï´Ù. HOwner ¸â¹ö´Â ÀÀ¿ë ÇÁ·Î±×·¥ÀÇ ÀνºÅϽº ÇÚµéÀ» ¼³Á¤.

´ÙÀ½ ¿¹Á¦¿¡¼­´Â Multipad¿¡ AddFile ÇÔ¼ö¸¦ º¸¿© ÁÝ´Ï´Ù.

HWND &APIENTRY AddFile(pName) CHAR * pName; 
{HWND hwnd; 
    CHAR sz [160]; 
    MDICREATESTRUCT mcs; 
 
    °æ¿ì (! pName) {/ / pName ¸Å°³ º¯¼ö°¡ NULL ÀÌ¸é ·Îµå "Untitled" / / STRINGTABLE ¸®¼Ò½º¿¡¼­ ¹®ÀÚ¿­À» ¼³Á¤ ÇÕ´Ï´Ù szTitle / / MDICREATESTRUCTÀÇ ±¸¼º¿ø. 
 
        LoadString (hInst, IDS_UNTITLED, sz, sizeof(sz)); 
        mcs.szTitle (LPCTSTR) sz; = 
    } ´Ù¸¥ / / Àüü °æ·Î ÆÄÀÏ À̸§À» »ç¿ë ÇÏ ¿© â Á¦¸ñÀ» / OpenFile ÇÔ¼ö¸¦ È£Ãâ ÇÏ ¿© °¡Á®¿Â /´Â / / OF_PARSE Ç÷¡±×¸¦ AddFile() Àü¿¡ È£Ã⠵˴ϴÙ. 
 
        mcs.szTitle = of.szPathName; 
 
    mcs.szClass = szChild; 
    mcs.hOwner = hInst; 
 
    / / ÀÚ½Ä Ã¢¿¡ ´ë ÇÑ ±âº» Å©±â¸¦ »ç¿ë ÇÕ´Ï´Ù. 
 
    mcs.x = mcs.cx = CW_USEDEFAULT; 
    mcs.y = mcs.cy = CW_USEDEFAULT; 
 
    / / ÁÙ ÀÚ½Ä Ã¢ÀÇ ±âº» ½ºÅ¸ÀÏ. StyleDefault / / º¯¼ö MULTIPAD¿¡ Á¤ÀÇ µË´Ï´Ù.C. mcs.style = styleDefault; 
 
    / / ¸»ÇØ MDI Ŭ¶óÀÌ¾ðÆ® Ã¢ÀÌ ÀÚ½Ä Ã¢À» ¸¸µé ¼ö ÀÖ½À´Ï´Ù. 
 
    hwnd = (HWND) SendMessage (hwndMDIClient, WM_MDICREATE, 0, (LONG) (LPMDICREATESTRUCT) amp; mcs); 
 
    / / ÆÄÀÏÀ» ¹ß°ß ÇÏ´Â °æ¿ì ÀÚ½ÄÀ¸·Î ±× ³»¿ëÀ» Àбâ / / âÀÇ Å¬¶óÀÌ¾ðÆ® ¿µ¿ª. 
 
    °æ¿ì (pName) {if (!LoadFile (hwnd, pName)) {/ / ¼ö ¾ø½À´Ï´Ù ÆÄÀÏÀ» ·ÎµåÇÒ; âÀ» ´Ý½À´Ï´Ù. 
 
            SendMessage (hwndMDIClient, WM_MDIDESTROY, 0 L (DWORD) hwnd); 
        }} hwnd; ¹Ýȯ 
} 
 

WM_MDICREATE ¸Þ½ÃÁöÀÇ lParam ¸Å°³ º¯¼ö¿¡¼­ Àü´Þ µÈ Æ÷ÀÎÅͰ¡ CreateWindow ÇÔ¼ö¿¡ Àü´Þ µÇ °í WM_CREATE ¸Þ½ÃÁö Àü´Þ CREATESTRUCT ±¸Á¶¿¡¼­ ù ¹øÂ° ±¸¼º¿øÀ¸·Î ³ªÅ¸³³´Ï´Ù. Multipad¿¡¼­ ÀÚ½Ä Ã¢À» ÃʱâÈ­ ÀÚü WM_CREATE ¸Þ½ÃÁö ó¸® Ãß°¡ µ¥ÀÌÅÍ¿¡ ¹®¼­ º¯¼ö¸¦ ÃʱâÈ­ ÇÏ °í ÆíÁý ÄÁÆ®·ÑÀÇ ÀÚ½Ä Ã¢À» ¸¸µå´Â Áß.

 

Index