2-2-³ª. À©µµ¿ì Ŭ·¡½º

WinMain ÇÔ¼ö¿¡¼­ ÇÏ´Â °¡Àå Áß¿äÇÑ ÀÏÀº À©µµ¿ì¸¦ ¸¸µå´Â ÀÏÀÌ´Ù. À©µµ¿ì°¡ ÀÖ¾î¾ß »ç¿ëÀڷκÎÅÍ ÀÔ·ÂÀ» ¹ÞÀ» ¼ö ÀÖ°í Ãâ·ÂÀ» º¸¿©ÁÙ ¼öµµ Àֱ⠶§¹®ÀÌ´Ù. À©µµ¿ì¸¦ ¸¸µå·Á¸é À©µµ¿ì Ŭ·¡½º¸¦ ¸ÕÀú µî·ÏÇÑ ÈÄ CreateWindow ÇÔ¼ö¸¦ È£ÃâÇØ¾ß ÇÑ´Ù. ¸ðµç À©µµ¿ì´Â À©µµ¿ì Ŭ·¡½º¸¦ ±â¹ÝÀ¸·Î ÇÏ¿© ¸¸µé¾îÁö¸ç À©µµ¿ì Ŭ·¡½º´Â ¸¸µé¾îÁú À©µµ¿ìÀÇ ¿©·¯°¡Áö Ư¼ºÀ» Á¤ÀÇÇÑ´Ù. À©µµ¿ì Ŭ·¡½º´Â windows.h¿¡ ´ÙÀ½°ú °°ÀÌ Á¤ÀǵǾî ÀÖ´Â ±¸Á¶Ã¼ÀÌ´Ù.

typedef struct tagWNDCLASS
{
    UINT        style;
    WNDPROC     lpfnWndProc;
    int         cbClsExtra;
    int         cbWndExtra;
    HINSTANCE   hInstance;
    HICON       hIcon;
    HCURSOR     hCursor;
    HBRUSH      hbrBackground;
    LPCSTR      lpszMenuName;
    LPCSTR      lpszClassName;
} WNDCLASS;

10°³³ª µÇ´Â ¸â¹ö¸¦ °¡Áö°í Àִµ¥ WndClassÀÇ °¢ ¸â¹ö Àǹ̴ ´ÙÀ½°ú °°´Ù. ÇöÀç ´Ü°è¿¡¼­ ÀÌ ³»¿ëÀ» ÀϺη¯ ¾Ï±âÇÒ ÇÊ¿ä±îÁö´Â ¾øÁö¸¸ ´ëÃæ ¾î¶² ¿ªÇÒÀ» ÇÏ´Â ¸â¹öÀÎÁö ÀоîµÎµµ·Ï ÇÏÀÚ.

þstyle

À©µµ¿ìÀÇ ½ºÅ¸ÀÏÀ» Á¤ÀÇÇÑ´Ù. Áï À©µµ¿ì°¡ ¾î¶² ÇüŸ¦ °¡Áú °ÍÀΰ¡¸¦ ÁöÁ¤ÇÏ´Â ¸â¹öÀÌ´Ù. ÀÌ ¸â¹ö°¡ °¡Áú ¼ö ÀÖ´Â °ªÀº ¹«ÁöÇÏ°Ô ¸¹Áö¸¸ °¡Àå ¸¹ÀÌ »ç¿ëÇÏ´Â °ªÀÌ CS_HREDRAW¿Í CS_VREDRAWÀÌ´Ù. ÀÌ µÎ °ªÀ» OR ¿¬»êÀÚ(|)·Î ¿¬°áÇÏ¿© »ç¿ëÇÑ´Ù. ÀÌ °ªµéÀÇ Àǹ̴ À©µµ¿ìÀÇ ¼öÁ÷(¶Ç´Â ¼öÆò) Å©±â°¡ º¯ÇÒ °æ¿ì À©µµ¿ì¸¦ ´Ù½Ã ±×¸°´Ù´Â ¶æÀÌ´Ù. À̹ۿ¡µµ ¸¹Àº °ªÀÌ ¿Ã ¼ö ÀÖ´Ù.

þlpfnWndProc

ÀÌ ¸â¹ö´Â À©µµ¿ìÀÇ ¸Þ½ÃÁö ó¸® ÇÔ¼ö¸¦ ÁöÁ¤ÇÑ´Ù. ¸Þ½ÃÁö°¡ ¹ß»ýÇÒ ¶§¸¶´Ù ¿©±â¼­ ÁöÁ¤ÇÑ ÇÔ¼ö°¡ È£ÃâµÇ¸ç ÀÌ ÇÔ¼ö°¡ ¸ðµç ¸Þ½ÃÁö¸¦ ó¸®ÇÑ´Ù. ¸Þ½ÃÁö ó¸® ÇÔ¼öÀÇ À̸§Àº ¹°·Ð ¸¶À½´ë·Î Á¤ÇÒ ¼ö ÀÖÁö¸¸ °ÅÀÇ WndProcÀ¸·Î Á¤ÇØÁ® ÀÖ´Â ÆíÀÌ´Ù.

Âü°í

WinMain ÇÔ¼ö´Â ÇÁ·Î±×·¥ÀÇ ½ÃÀÛÁ¡À̹ǷΠµµ½º¿¡¼­ ½ÃÀÛÁ¡ÀÌ ¹Ýµå½Ã mainÀ̾î¾ß ÇÏ´Â °Í°ú ¸¶Âù°¡Áö·Î À̸§ÀÌ °íÁ¤µÇ¾î ÀÖ´Ù. ÇÏÁö¸¸ ¸Þ½ÃÁö ó¸® ÇÔ¼öÀÎ WndProc´Â »ç¿ëÀÚ°¡ ÀÓÀÇ·Î À̸§À» Á¤ÇÒ ¼ö ÀÖ´Â ÇÔ¼öÀÌ´Ù. ±×·¯³ª °ü½À¿¡ ÀÇÇØ ÀÌ ÇÔ¼öÀÇ À̸§Àº WndProcÀ¸·Î °íÁ¤µÇ¾î ÀÖÀ¸¹Ç·Î ÀÌ À̸§À» ±×´ë·Î »ç¿ëÇÏ´Â °ÍÀÌ ÁÁ´Ù. °ü½ÀÀ̶õ ¿À·£ ¼¼¿ùµ¿¾È ¸¹Àº ¶È¶ÈÇÑ »ç¶÷¿¡ ÀÇÇØ °¡Àå ¸»½é¾ø´Â ÇüÅ·Π±»¾îÁø °ÍÀ̹ǷΠ¾î°ÜºÁ¾ß µæº¸´Ù ½ÇÀÌ ´õ ¸¹´Ù.

þcbClsExtra, cbWndExtra

ÀÏÁ¾ÀÇ ¿¹¾à ¿µ¿ªÀÌ´Ù. À©µµ¿ìÁî°¡ ³»ºÎÀûÀ¸·Î »ç¿ëÇÏ¸ç ¾ÆÁÖ Æ¯¼öÇÑ ¸ñÀû¿¡ »ç¿ëµÇ´Â ¿©ºÐÀÇ °ø°£ÀÌ´Ù. ¿¹¾à ¿µ¿ªÀ» »ç¿ëÇÏÁö ¾ÊÀ» °æ¿ì´Â 0À¸·Î ÁöÁ¤ÇÑ´Ù.

þhInstance

ÀÌ À©µµ¿ì Ŭ·¡½º¸¦ »ç¿ëÇÏ´Â ÇÁ·Î±×·¥ÀÇ ¹øÈ£À̸ç ÀÌ °ªÀº WinMainÀÇ Àμö·Î Àü´ÞµÈ hInstance°ªÀ» ±×´ë·Î ´ëÀÔÇØÁÖ¸é µÈ´Ù.

þhIcon, hCursor

ÀÌ À©µµ¿ì°¡ »ç¿ëÇÒ ¸¶¿ì½º Ä¿¼­¿Í ÃÖ¼ÒÈ­µÇ¾úÀ» °æ¿ì Ãâ·ÂµÉ ¾ÆÀÌÄÜÀ» ÁöÁ¤ÇÑ´Ù. LoadCursor ÇÔ¼ö¿Í LoadIcon ÇÔ¼ö¸¦ »ç¿ëÇÏ¿© ÁöÁ¤ÇÑ´Ù. »ç¿ëÀÚ°¡ Á÷Á¢ ¾ÆÀÌÄÜ°ú Ä¿¼­¸¦ ¸¸µé¾î »ç¿ëÇÒ ¼öµµ ÀÖÁö¸¸ ¿©±â¼­´Â À©µµ¿ìÁî°¡ µðÆúÆ®·Î Á¦°øÇÏ´Â ¾ÆÀÌÄÜ°ú Ä¿¼­¸¦ »ç¿ëÇÏ°í ÀÖ´Ù. Ä¿¼­´Â ÁÂÃøÀ¸·Î ±â¿ï¾îÁø È­»ìÇ¥ ¸ð¾çÀÌ¸ç ¾ÆÀÌÄÜÀº ¿Í °°Àº ¸ð¾çÀ» °¡Áø´Ù.

þhbrBackground

À©µµ¿ìÀÇ ¹è°æ »ö»óÀ» ÁöÁ¤ÇÑ´Ù. Á» ´õ Á¤È®ÇÏ°Ô Ç¥ÇöÇϸé À©µµ¿ìÀÇ ¹è°æ »ö»óÀ» ä»öÇÒ ºê·¯½Ã¸¦ ÁöÁ¤ÇÏ´Â ¸â¹öÀÌ´Ù. GetStockObject¶ó´Â ÇÔ¼ö¸¦ »ç¿ëÇÏ¿© À©µµ¿ì¿¡¼­ ±âº»ÀûÀ¸·Î Á¦°øÇÏ´Â ºê·¯½Ã¸¦ ÁöÁ¤ÇÑ´Ù. ÁöÁ¤ÇÒ ¼ö ÀÖ´Â ºê·¯½Ã¿¡´Â ¿©·¯ °¡Áö Á¾·ù°¡ ÀÖÁö¸¸ °¡Àå ÀϹÝÀûÀÎ Èò»ö ¹è°æ(WHITE_BRUSH)ÀÌ ¸¹ÀÌ »ç¿ëµÈ´Ù.

þ lpszMenuName

ÀÌ ÇÁ·Î±×·¥ÀÌ »ç¿ëÇÒ ¸Þ´º¸¦ ÁöÁ¤ÇÑ´Ù. ¸Þ´º´Â ÇÁ·Î±×·¥ Äڵ忡¼­ ¸¸µå´Â °ÍÀÌ ¾Æ´Ï¶ó ¸®¼Ò½º ¿¡µðÅÍ¿¡ ÀÇÇØ º°µµ·Î ¸¸µé¾îÁø ÈÄ ¸µÅ©½Ã¿¡ °°ÀÌ ÇÕÃÄÁø´Ù. ¸Þ´º¸¦ »ç¿ëÇÏÁö ¾ÊÀ» °æ¿ì ÀÌ ¸â¹ö¿¡ NULLÀ» ´ëÀÔÇØ ÁÖ¸é µÈ´Ù.

þ lpszClassName

À©µµ¿ì Ŭ·¡½ºÀÇ À̸§À» Á¤ÀÇÇÑ´Ù. ¿©±â¼­ ÁöÁ¤ÇÑ À̸§Àº CreateWindow ÇÔ¼ö¿¡ Àü´ÞµÇ¾îÁö¸ç CreateWindow ÇÔ¼ö´Â À©µµ¿ì Ŭ·¡½º¿¡¼­ Á¤ÀÇÇÑ Æ¯¼º°ªÀ» ÂüÁ¶ÇÏ¿© À©µµ¿ì¸¦ ¸¸µç´Ù. À©µµ¿ì Ŭ·¡½ºÀÇ À̸§Àº º¸Åë ½ÇÇà ÆÄÀÏÀÇ À̸§°ú ÀÏÄ¡½ÃÄÑ ÀÛ¼ºÇϸç ÀÌ ¿¹Á¦ÀÇ °æ¿ì lpszClass ¹®ÀÚ¿­¿¡ "First"¸¦ ´ëÀÔÇÑ ÈÄ ÀÌ ¹®ÀÚ¿­À» À©µµ¿ì Ŭ·¡½º À̸§À¸·Î »ç¿ëÇÏ¿´´Ù.

¸â¹öÀÇ ¼ö°¡ ³Ê¹« ¸¹¾Æ Çѹø¿¡ ´Ù ÀÍÈ÷±â Èûµé°ÚÁö¸¸ ÀÌ Áß¿¡ Á¦ÀÏ Áß¿äÇÑ ¸â¹ö´Â À©µµ¿ì Ŭ·¡½ºÀÇ À̸§À» Á¤ÀÇÇÏ´Â lpszClassName°ú ¸Þ½ÃÁö ó¸® ÇÔ¼ö¸¦ ÁöÁ¤ÇÏ´Â lpfnWndProcÀÌ´Ù. À©µµ¿ì Ŭ·¡½º¸¦ Á¤ÀÇÇÑ ÈÄ RegisterClass ÇÔ¼ö¸¦ È£ÃâÇÏ¿© À©µµ¿ì Ŭ·¡½º¸¦ µî·ÏÇÑ´Ù.

¡¡

ATOM RegisterClass( CONST WNDCLASS *lpWndClass);


RegisterClass ÇÔ¼öÀÇ Àμö·Î WndClass ±¸Á¶Ã¼ÀÇ ¹øÁö¸¦ ³Ñ°ÜÁÖ¸é µÈ´Ù. ÀÌ·± ÀÌ·± Ư¼ºÀ» °¡Áø À©µµ¿ì¸¦ ¾ÕÀ¸·Î »ç¿ëÇÏ°Ú´Ù´Â µî·Ï °úÁ¤ÀÌ´Ù. ¼Ò½ºÀÇ ¾ÕºÎºÐÀ» º¸¸é WNDCLASS ±¸Á¶Ã¼ÀÇ °¢ ¸â¹ö¿¡ °ªÀ» ´ëÀÔÇÏ°í À©µµ¿ì Ŭ·¡½º¸¦ µî·ÏÇÏ´Â Äڵ尡 ÀÖ´Ù. ´Ü¼øÇÑ ´ëÀÔ¹®ÀÇ ¿¬¼ÓÀε¥ ¾î¶² °ªµéÀÌ ´ëÀԵǾú´ÂÁö Àß »ìÆ캸ÀÚ.

	WNDCLASS WndClass;
	
	WndClass.cbClsExtra=0;
	WndClass.cbWndExtra=0;
	WndClass.hbrBackground=(HBRUSH)GetStockObject(WHITE_BRUSH);
	WndClass.hCursor=LoadCursor(NULL,IDC_ARROW);
	WndClass.hIcon=LoadIcon(NULL,IDI_APPLICATION);
	WndClass.hInstance=hInstance;
	WndClass.lpfnWndProc=(WNDPROC)WndProc;
	WndClass.lpszClassName=lpszClass;
	WndClass.lpszMenuName=NULL;
	WndClass.style=CS_HREDRAW | CS_VREDRAW;
	RegisterClass(&WndClass);

À©µµ¿ì Ŭ·¡½º¸¦ µî·ÏÇÑ ÈÄ¿¡´Â µî·ÏÇÑ À©µµ¿ì Ŭ·¡½º¸¦ ±âº»À¸·Î À©µµ¿ì¸¦ ½ÇÁ¦ »ý¼ºÇØ¾ß ÇÑ´Ù. À©µµ¿ì¸¦ »ý¼ºÇÒ ¶§´Â CreateWindow ÇÔ¼ö¸¦ »ç¿ëÇÑ´Ù.

HWND CreateWindow(lpszClassName, lpszWindowName, dwStyle, x, y, nWidth, nHeight, hwndParent, hmenu, hinst, lpvParam)

º¸´Ù½ÃÇÇ Àμö°¡ ¹«Ã´ ¸¹Àº ÆíÀÌ´Ù. À©µµ¿ìÁî API ÇÔ¼öµéÀº ´ëü·Î Àμö°¡ ¸¹´Ù. °¢ ÀμöÀÇ Àǹ̸¦ ¾Ë¾Æº¸ÀÚ.

þ lpszClassName

»ý¼ºÇÏ°íÀÚ ÇÏ´Â À©µµ¿ìÀÇ Å¬·¡½º¸¦ ÁöÁ¤ÇÏ´Â ¹®ÀÚ¿­ÀÌ´Ù. ¾Õ¿¡¼­ Á¤ÀÇÇÑ WndClass±¸Á¶Ã¼ÀÇ lpszClassName ¸â¹öÀÇ À̸§À» ¿©±â¿¡ ±âÀÔÇØ ÁØ´Ù. ¿ì¸®ÀÇ ¿¹Á¦¿¡¼­´Â lpszClass ¹®ÀÚ¿­¿¡ À©µµ¿ì Ŭ·¡½º À̸§À» ±â¾ï½ÃÄÑ µÎ¾úÀ¸¹Ç·Î ÀÌ ¹®ÀÚ¿­À» ±×´ë·Î ³Ñ°ÜÁÖ¸é µÈ´Ù.

þ lpszWindowName

À©µµ¿ìÀÇ Å¸ÀÌƲ ¹Ù¿¡ ³ªÅ¸³¯ ¹®ÀÚ¿­ÀÌ´Ù. ¿©±â¼­ ÁöÁ¤ÇÑ ¹®ÀÚ¿­ÀÌ À©µµ¿ìÀÇ Å¸ÀÌƲ ¹Ù¿¡ ³ªÅ¸³­´Ù. ÇÁ·Î±×·¡¸Ó°¡ ¸¶À½´ë·Î ÁöÁ¤ÇÒ ¼ö Àִµ¥ ÀÌ Ã¥¿¡¼­´Â ¿¹Á¦ÀÇ ÇÁ·ÎÁ§Æ®¸í(lpszClass Àü¿ª ¹®ÀÚ¿­)À» ŸÀÌƲ ¹Ù¿¡ ³ªÅ¸³»°í ÀÖ´Ù.

þdwStyle

¸¸µé°íÀÚ ÇÏ´Â À©µµ¿ìÀÇ ÇüŸ¦ ÁöÁ¤ÇÏ´Â ÀμöÀÌ´Ù. ÀÏÁ¾ÀÇ ºñÆ® Çʵ尪ÀÌ¸ç °ÅÀÇ ¼ö½Ê°³¸¦ Çì¾Æ¸®´Â ¸ÅÅ©·Î »ó¼öµéÀÌ Á¤ÀǵǾî ÀÖ°í ÀÌ »ó¼öµéÀ» OR¿¬»êÀÚ·Î ¿¬°áÇÏ¿© À©µµ¿ìÀÇ ´Ù¾çÇÑ ÇüŸ¦ ÁöÁ¤ÇÑ´Ù. À©µµ¿ì°¡ °æ°è¼±À» °¡Áú °ÍÀΰ¡, ŸÀÌƲ ¹Ù¸¦ °¡Áú °ÍÀΰ¡ ¶Ç´Â ½ºÅ©·Ñ ¹ÙÀÇ À¯¹« µîµîÀ» ¼¼¼¼ÇÏ°Ô ÁöÁ¤ÇØ ÁÙ ¼ö ÀÖ´Ù. °¡´ÉÇÑ ½ºÅ¸ÀÏ°ª¿¡ °üÇÑ ÀÚ¼¼ÇÑ ³»¿ëÀº ·¹ÆÛ·±½º¸¦ ÂüÁ¶Ç쵂 WS_OVERLAPPEDWINDOW¸¦ »ç¿ëÇÏ¸é °¡Àå ¹«³­ÇÑ À©µµ¿ì ¼³Á¤ »óÅ°¡ µÈ´Ù. Áï ½Ã½ºÅÛ ¸Þ´º, ÃÖ´ë ÃÖ¼Ò ¹öÆ°, ŸÀÌƲ ¹Ù, °æ°è¼±À» °¡Áø À©µµ¿ì¸¦ ¸¸µé¾î ÁØ´Ù.

þX, Y, nWidth, nHeight

ÀμöÀÇ À̸§ÀÌ ÀǹÌÇϵíÀÌ À©µµ¿ìÀÇ Å©±â¿Í À§Ä¡¸¦ ÁöÁ¤Çϸç Çȼ¿ ´ÜÀ§¸¦ »ç¿ëÇÑ´Ù. x, yÁÂÇ¥´Â ¸ÞÀÎ À©µµ¿ìÀÇ °æ¿ì´Â Àüü È­¸éÀ» ±âÁØÀ¸·Î Çϸç Â÷Àϵå À©µµ¿ì´Â ºÎ¸ð À©µµ¿ìÀÇ Á»ó´ÜÀ» ±âÁØÀ¸·Î ÇÑ´Ù. Á¤¼ö°ªÀ» ¹Ù·Î ÁöÁ¤Çصµ µÇ¸ç CW_USEDEFAULT¸¦ »ç¿ëÇϸé À©µµ¿ìÁî°¡ ¾Ë¾Æ¼­ Àû´çÇÑ Å©±â¿Í À§Ä¡¸¦ ¼³Á¤ÇØ ÁØ´Ù. ¿¹Á¦¿¡¼­´Â ¸ðµÎ CW_USEDEFAULT¸¦ »ç¿ëÇÏ¿´´Ù.

þhWndParent

ºÎ¸ð À©µµ¿ì°¡ ÀÖÀ» °æ¿ì ºÎ¸ð À©µµ¿ìÀÇ ÇÚµéÀ» ÁöÁ¤ÇØ ÁØ´Ù. MDI ÇÁ·Î±×·¥À̳ª Æ˾÷ À©µµ¿ì´Â À©µµ¿ì³¢¸® ¼öÁ÷ÀûÀÎ »óÇÏ°ü°è¸¦ °¡Á® ºÎÀÚ(parent-child) °ü°è°¡ ¼º¸³µÇ´Âµ¥ ÀÌ °ü°è¸¦ ÁöÁ¤ÇØ ÁÖ´Â ÀμöÀÌ´Ù. ºÎ¸ð À©µµ¿ì°¡ ¾øÀ» °æ¿ì´Â ÀÌ °ªÀ» NULL·Î ÁöÁ¤ÇÏ¸é µÈ´Ù.

þhmenu

À©µµ¿ì¿¡¼­ »ç¿ëÇÒ ¸Þ´ºÀÇ ÇÚµéÀ» ÁöÁ¤ÇÑ´Ù. WndClass¿¡µµ ¸Þ´º¸¦ ÁöÁ¤ÇÏ´Â ¸â¹ö°¡ Àִµ¥ À©µµ¿ì Ŭ·¡½ºÀÇ ¸Þ´º´Â ±× À©µµ¿ì Ŭ·¡½º¸¦ ±â¹ÝÀ¸·Î ÇÏ´Â ¸ðµç À©µµ¿ì¿¡¼­ »ç¿ëµÇ´Â ¹Ý¸é ÀÌ Àμö·Î ÁöÁ¤µÈ ¸Þ´º´Â ÇöÀç CreateWindow ÇÔ¼ö·Î ¸¸µé¾îÁö´Â À©µµ¿ì¿¡¼­¸¸ »ç¿ëµÈ´Ù. ¸¸¾à WndClass¿¡¼­ ÁöÁ¤ÇÑ ¸Þ´º¸¦ ±×´ë·Î »ç¿ëÇÏ·Á¸é ÀÌ Àμö¸¦ NULL·Î ÁöÁ¤ÇÏ¸é µÇ¸ç WndClass¿¡¼­ ÁöÁ¤ÇÑ ¸Þ´º ´ë½Å ´Ù¸¥ ¸Þ´º¸¦ »ç¿ëÇÏ·Á¸é ÀÌ Àμö¿¡ ¿øÇÏ´Â ¸Þ´º ÇÚµéÀ» ÁÖ¸é µÈ´Ù. First ¿¹Á¦ÀÇ °æ¿ì WndClass¿¡µµ ¸Þ´º°¡ ÁöÁ¤µÇ¾î ÀÖÁö ¾Ê°í CreateWindow ÇÔ¼ö¿¡¼­µµ ¸Þ´º¸¦ ÁöÁ¤ÇÏÁö ¾Ê¾ÒÀ¸¹Ç·Î ¸Þ´º¾ø´Â ÇÁ·Î±×·¥ÀÌ ¸¸µé¾îÁø´Ù.

þhinst

À©µµ¿ì¸¦ ¸¸µå´Â ÁÖü, Áï ÇÁ·Î±×·¥ÀÇ ÇÚµéÀ» ÁöÁ¤ÇÑ´Ù. WinMainÀÇ Àμö·Î Àü´ÞµÈ hInstance¸¦ ´ëÀÔÇØ ÁÖ¸é µÈ´Ù.

þlpvParam

CREATESTRUCT¶ó´Â ±¸Á¶Ã¼ÀÇ ¹øÁöÀ̸ç Ư¼öÇÑ ¸ñÀû¿¡ »ç¿ëµÈ´Ù. º¸ÅëÀº NULL°ªÀ» »ç¿ëÇÑ´Ù.

Áö±Ý ´çÀå ¿©±â¼­ CreateWindowÀÇ ¸ðµç Àμö¿¡ ´ëÇØ ´Ù ¿Ü¿ì·Á°í ÇÒ ÇÊ¿ä±îÁö´Â ¾ø°í ¿¹Á¦¿¡¼­ ¾î¶² °ªÀÌ »ç¿ëµÇ¾ú´Â°¡¿Í ±× Àǹ̰¡ ¹«¾ùÀΰ¡¸¸ ´ëÃæ º¸°í °¡µµ·Ï ÇÏÀÚ. ¿©±â¼­ Àá±ñ ÇÊÀÚ°¡ ÀܼҸ®¸¦ Á» ÇÏÀÚ¸é API °øºÎ¸¦ ÇÒ ¶§´Â ¹«½ÃÇÒ °Ç °ú°¨ÇÏ°Ô ¹«½ÃÇÏ°í Áö³ª°¡´Â ¿ä·ÉÀÌ ÇÊ¿äÇÏ´Ù. CreateWindow ÇÔ¼ö´Â API¸¦ óÀ½ ¹è¿ì´Â »ç¶÷¿¡°Ô ¹«Ã´ Áß¿äÇϱâ´Â ÇÏÁö¸¸ ±×·¸´Ù°í óÀ½ºÎÅÍ 11°³³ª µÇ´Â ÀμöµéÀÇ Á¤È®ÇÑ Àṉ̀îÁö ¼Ó¼ÓµéÀÌ ÀÌÇØÇÒ ÇÊ¿ä±îÁö´Â ¾ø´Ù. x,y,lpszWindowName µî ½±°Ô ÀÌÇصǴ Àμöµé¸¸ ´ëÃæ ºÁµÎ¸é µÇÁö lpvParam°°Àº Àü¹®ÀûÀÌ°í ¾î·Á¿î ÀμöÀÇ Àǹ̳ª dwStyleÀμöÀÇ ¸ðµç ½ºÅ¸ÀÏ°ª¿¡ ´ëÇØ ¹Ýµå½Ã ¾Ë¾Æ¾ß ÇÏ´Â °ÍÀº ¾Æ´Ï´Ù. ¹°·Ð ¿Ïº®ÇÏ°Ô ÀÌÇØÇÑ´Ù°í ³ª»Ü °ÍÀº ¾ø°ÚÁö¸¸ ±×·¸°Ô ÇÏ´Ù°¡´Â Á¦Ç®¿¡ ÁöÃÄ ±Ý»õ Èï¹Ì¸¦ ÀÒ°í ¸¸´Ù. Áß¿äÇÑ °ÍÀº ÀÌ·ÐÀûÀ¸·Î Àǹ̰¡ ÀÖ´Â Å« Áٱ⸦ ¸ÕÀú ÆľÇÇϴµ¥ Á¤¼ºÀ» ½ñÀ¸¶ó´Â °ÍÀÌ´Ù.

CreateWindow ÇÔ¼ö´Â À©µµ¿ì¿¡ °üÇÑ ¸ðµç Á¤º¸¸¦ ¸Þ¸ð¸®¿¡ ¸¸µç ÈÄ À©µµ¿ì ÇÚµéÀ» ¸®ÅÏ°ªÀ¸·Î ³Ñ°ÜÁØ´Ù. ³Ñ°ÜÁö´Â À©µµ¿ì ÇÚµéÀº hWnd¶ó´Â Áö¿ª º¯¼ö¿¡ ÀúÀåµÇ¾ú´Ù°¡ À©µµ¿ì¸¦ ÂüÁ¶ÇÏ´Â ¸ðµç ÇÔ¼öÀÇ Àμö·Î »ç¿ëµÈ´Ù.

CreateWindow ÇÔ¼ö·Î ¸¸µç À©µµ¿ì´Â ¾îµð±îÁö³ª ¸Þ¸ð¸®»ó¿¡¼­¸¸ ÀÖÀ» »ÓÀÌ¸ç ¾ÆÁ÷±îÁö È­¸é¿¡ Ãâ·ÂµÇÁö´Â ¾Ê¾Ò´Ù. ¸Þ¸ð¸®¿¡ ¸¸µé¾îÁø À©µµ¿ì¸¦ È­¸éÀ¸·Î º¸ÀÌ°Ô ÇÏ·Á¸é ´ÙÀ½ ÇÔ¼ö¸¦ »ç¿ëÇØ¾ß ÇÑ´Ù.

BOOL ShowWindow(hWnd, nCmdShow);

hWnd Àμö´Â È­¸éÀ¸·Î Ãâ·ÂÇÏ°íÀÚ ÇÏ´Â À©µµ¿ìÀÇ ÇÚµéÀ̸ç CreateWindow ÇÔ¼ö°¡ ¸®ÅÏÇÑ ÇÚµéÀ» ±×´ë·Î ³Ñ°ÜÁÖ¸é µÈ´Ù. nCmdShow´Â À©µµ¿ì¸¦ È­¸é¿¡ Ãâ·ÂÇÏ´Â ¹æ¹ýÀ» ÁöÁ¤ÇÏ¸ç ´ÙÀ½°ú °°Àº ¸ÅÅ©·Î »ó¼öµéÀÌ Á¤ÀǵǾî ÀÖ´Ù.

¸ÅÅ©·Î »ó¼ö ÀǹÌ
SW_HIDE À©µµ¿ì¸¦ ¼û±ä´Ù.
SW_MINIMIZE À©µµ¿ì¸¦ ÃÖ¼ÒÈ­½ÃÅ°°í È°¼ºÈ­½ÃÅ°Áö ¾Ê´Â´Ù.
SW_RESTORE À©µµ¿ì¸¦ È°¼ºÈ­½ÃŲ´Ù.
SW_SHOW À©µµ¿ì¸¦ È°¼ºÈ­½ÃÄÑ º¸¿©ÁØ´Ù.
SW_SHOWNORMAL À©µµ¿ì¸¦ È°¼ºÈ­½ÃÄÑ º¸¿©ÁØ´Ù.

nCmdShow Àμö¿¡ ¾î¶² °ªÀ» ³Ñ°ÜÁÙ °ÍÀΰ¡´Â ÀüÇô °í¹ÎÇÒ ÇÊ¿ä°¡ ¾øÀ¸¸ç WinMain ÇÔ¼öÀÇ Àμö·Î Àü´ÞµÈ nCmdShow¸¦ ±×´ë·Î ³Ñ°ÜÁֱ⸸ ÇÏ¸é µÈ´Ù. ±×·¡¼­ ShowWindow(hWnd,nCmdShow);¿Í °°ÀÌ °ÅÀÇ È£Ãâ Çü½ÄÀÌ Á¤ÇØÁ® ÀÖ´Â ¼ÀÀÌ´Ù. ¼³¸íÀÌ Á» ±æ¾îÁö±â´Â ÇßÁö¸¸ À©µµ¿ì¸¦ ¸¸µé°í È­¸é¿¡ ³ªÅ¸³»´Â ÄÚµå´Â ´ÙÀ½ µÎ ÁÙÀÌ´Ù.

	hWnd=CreateWindow(lpszClass,lpszClass,WS_OVERLAPPEDWINDOW,
		  CW_USEDEFAULT,CW_USEDEFAULT,CW_USEDEFAULT,CW_USEDEFAULT,
		  NULL,(HMENU)NULL,hInstance,NULL);
	ShowWindow(hWnd,nCmdShow);

¿©±â±îÁö ½ÇÇàÇϸé È­¸é¿¡ À©µµ¿ì°¡ Ãâ·ÂµÈ´Ù. ÀÌ ÈĺÎÅÍ´Â ¸Þ½ÃÁö ·çÇÁ°¡ ½ÃÀ۵Ǹç ÇÁ·Î±×·¥ÀÌ »ç¿ëÀÚ¿Í À©µµ¿ìÁî, ±×¸®°í ´Ù¸¥ ÇÁ·Î±×·¥°ú »óÈ£ Á¤º¸¸¦ ±³È¯ÇÏ¸ç ½ÇÇàµÈ´Ù. ¿©±â±îÁö À©µµ¿ì¸¦ ¸¸µå´Â °úÁ¤À» °£´ÜÇÏ°Ô Á¤¸®ÇØ º¸µµ·Ï ÇÏÀÚ.

ÀÌ °úÁ¤Àº °ÅÀÇ Á¤ÇüÈ­µÈ °úÁ¤À̹ǷΠ°è¼Ó À©µµ¿ìÁî ÇÁ·Î±×·¡¹ÖÀ» °øºÎÇÒ »ý°¢ÀÌ ÀÖ´Ù¸é ¾Ï±âÇÒ ¸¸µµ ÇÏ´Ù. ÀÌ °úÁ¤ÀÌ WinMain¿¡¼­ ¹Ýµå½Ã ÇØ ÁÖ¾î¾ß ÇÒ °úÁ¤ÀÌ¸ç ±× ÀÌ¿ÜÀÇ Ã³¸®´Â ÇØ ÁÖ¾î¾ß ÇÒ ÇÊ¿ä°¡ °ÅÀÇ ¾ø´Ù.


¸ñ·Ï º¸±â  ´ÙÀ½ °­Á            written by http://www.winapi.co.kr