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 ¸Þ½ÃÁö ó¸® Ãß°¡ µ¥ÀÌÅÍ¿¡ ¹®¼ º¯¼ö¸¦ ÃʱâÈ ÇÏ °í ÆíÁý ÄÁÆ®·ÑÀÇ ÀÚ½Ä Ã¢À» ¸¸µå´Â Áß.