Àμö |
wParam : »ç¿ëµÇÁö ¾ÊÀ½ lParam : À©µµ¿ì »ý¼º Á¤º¸ÀÎ CREATESTRUCT ±¸Á¶Ã¼ÀÇ Æ÷ÀÎÅÍÀÌ´Ù. ÀÌ ±¸Á¶Ã¼´Â CreateWindow(Ex) ÇÔ¼öÀÇ Àμö¿¡ ´ëÇÑ Á¤º¸¸¦ °¡Áø´Ù. |
¼³¸í |
CreateWindow(Ex) ÇÔ¼ö¿¡ ÀÇÇØ À©µµ¿ì°¡ »ý¼ºµÉ ¶§ º¸³»Áø´Ù. ¸Þ¸ð¸®¿¡ À©µµ¿ì¸¦ »ý¼ºÇÑ ÈÄ È¸é¿¡ º¸À̱â Àü¿¡ º¸³»Áö¸ç ÁÖ·Î À©µµ¿ì¿¡ °ü·ÃµÈ ÃʱâÈ ÀÛ¾÷À» ÇÒ ¶§ »ç¿ëµÈ´Ù. À©µµ¿ì µ¿ÀÛÀ» À§ÇÑ ¸Þ¸ð¸® ÇÒ´ç, ¸®¼Ò½º »ý¼º, Â÷Àϵå ÄÁÆ®·Ñ »ý¼º, À©µµ¿ì ¼Ó¼º ÃʱâÈ ÀÛ¾÷¿¡ ÀÌ ¸Þ½ÃÁö°¡ »ç¿ëµÈ´Ù. CreateWindow(Ex) ÇÔ¼ö´Â ÀÌ ¸Þ½ÃÁö¸¦ ¿ÏÀüÈ÷ ó¸®ÇÑ ÈÄ¿¡ ¸®ÅÏÇÑ´Ù. ¸¸¾à ÀÌ ¸Þ½ÃÁö ó¸®Áß¿¡ Â÷Àϵå À©µµ¿ì¸¦ »ý¼ºÇß´Ù¸é °¢ Â÷Àϵå À©µµ¿ì·Îµµ WM_CREATE ¸Þ½ÃÁö°¡ Àü´ÞµÇ¾î °³º°ÀûÀÎ Ãʱâȸ¦ ÇÑ´Ù. Àμö·Î Àü´ÞµÇ´Â LPCREATESTRUCT ±¸Á¶Ã¼´Â º¸Åë »ç¿ëÇÏÁö ¾ÊÀ¸¸ç ¹«½ÃÇϳª ÀÌ ±¸Á¶Ã¼ÀÇ lParam ¸â¹ö´Â CreateWindow ÇÔ¼öÀÇ Á¦ÀÏ ¸¶Áö¸· Àμö¸¦ Àü´ÞÇϸç À©µµ¿ì·Î »ç¿ëÀÚ Á¤ÀǰªÀ» Àü´ÞÇϰíÀÚ ÇÒ ¶§ »ç¿ëÇÒ ¼ö ÀÖ´Ù. Âü°í:´ëÈ»óÀÚ´Â ÀÌ ¸Þ½ÃÁö ´ë½Å WM_INITDIALOG ¸Þ½ÃÁö¸¦ ¹Þ´Â´Ù. |
¸®ÅÏ |
À©µµ¿ì¸¦ ¼º°øÀûÀ¸·Î »ý¼ºÇßÀ¸¸é 0À» ¸®ÅÏÇØ¾ß ÇÑ´Ù. ¸¸¾à ÃʱâÈ °úÁ¤¿¡¼ ¸Þ¸ð¸® ºÎÁ·, ºÎ¼Ó ÆÄÀÏ ´©¶ô µîÀÇ ¿¡·¯°¡ ¹ß»ýÇßÀ¸¸é -1À» ¸®ÅÏÇÏ¿© À©µµ¿ì »ý¼ºÀ» Áï°¢ ÁßÁöÇÒ ¼ö ÀÖ´Ù. ÀÌ ¸Þ½ÃÁö¿¡¼ -1À» ¸®ÅÏÇϸé ÀÌ¹Ì »ý¼ºµÇ¾î ÀÖ´Â À©µµ¿ì´Â ÆÄ±«µÇ¸ç CreateWindow(Ex) ÇÔ¼ö´Â NULL ÇÚµéÀ» ¸®ÅÏÇÑ´Ù. |
¿¹Á¦ |
´ÙÀ½ ÄÚµå´Â À©µµ¿ì »ý¼º½Ã¿¡ Â÷Àϵå ÄÁÆ®·ÑÀ» »ý¼ºÇϰí Àü¿ª º¯¼ö¸¦ ÃʱâÈÇÑ´Ù. ¸ÞÀÎ À©µµ¿ì°¡ »ý¼ºµÉ ¶§ WM_CREATE ¸Þ½ÃÁö°¡ Àü´ÞµÇ¸ç ÀÌ ¸Þ½ÃÁö¸¦ ¹Þ¾ÒÀ» ¶§ g_iMode Àü¿ª º¯¼ö¸¦ ¿øÇÏ´Â °ªÀ¸·Î ÃʱâÈÇÏ¿´À¸¸ç ¿¡µðÆ® ÄÁÆ®·ÑÀ» »ý¼ºÇÏ°í ¿¡µðÆ®¿¡ ÅØ½ºÆ®¸¦ ´ëÀÔÇÏ¿´´Ù. ÃʱâȰ¡ ¹«»çÈ÷ ¿Ï·áµÇ¾úÀ¸¸é 0À» ¸®ÅÏÇÏ¿© ¸ðµç ÃʱâȰ¡ Á¤»óÀûÀ¸·Î ¿Ï·áµÇ¾úÀ½À» ¾Ë·Á ÁÖ¾î¾ß ÇÑ´Ù. case WM_CREATE: g_iMode=0; hEdit=CreateWindow("edit",NULL,WS_CHILD | WS_VISIBLE | WS_BORDER | ES_AUTOHSCROLL,10,10,200,25,hWnd,(HMENU)ID_EDIT,g_hInst,NULL); SetWindowText(hEdit,"Â÷ÀÏµå ¿¡µðÆ®ÀÌ´Ù."); return 0; ´ÙÀ½ ÄÚµå´Â À©µµ¿ìÀÇ Ãʱâ À§Ä¡¿Í Å©±â¸¦ °Á¦·Î º¯°æÇÑ´Ù. WM_CREATE ¸Þ½ÃÁö´Â À©µµ¿ì°¡ »ý¼ºµÈ ÈÄ ±×¸®°í À©µµ¿ì°¡ ȸéÀ¸·Î º¸À̱â Àü¿¡ Àü´ÞµÇ¹Ç·Î ÀÌ ¸Þ½ÃÁö¿¡¼ À©µµ¿ìÀÇ À§Ä¡, »óÅÂ, ½ºÅ¸ÀÏ µîÀ» º¯°æÇÒ ¼ö ÀÖ´Ù. ¿©±â¼ ÁöÁ¤ÇÏ´Â À©µµ¿ìÀÇ À§Ä¡, Å©±â´Â CreateWindow ÇÔ¼ö¿¡¼ ÁöÁ¤ÇÑ À§Ä¡, Å©±â¸¦ º¯°æÇÑ´Ù. À©µµ¿ìÀÇ ½ÃÀÛ À§Ä¡°¡ ·¹Áö½ºÆ®¸®¿¡ ÀúÀåµÇ¾î ÀÖ´Â °æ¿ì WM_CREATE¿¡¼ ·¹Áö½ºÆ®¸®ÀÇ °ªÀ» Àоî ÃʱâÈÇÒ ¼öµµ ÀÖ´Ù. case WM_CREATE: MoveWindow(hWnd,100,100,300,200,FALSE); return 0; ´ÙÀ½ ÄÚµå´Â À©µµ¿ì ÃʱâÈÁß¿¡ ÆÄÀÏÀ» ¹Ì¸® ¿ÀÇÂÇØ ³õ´Â´Ù. ¸¸¾à ÆÄÀÏÀ» Á¤»óÀûÀ¸·Î ¿ÀÇÂÇÒ ¼ö ¾øÀ» °æ¿ì -1À» ¸®ÅÏÇÏ¿© ¸ÞÀÎ À©µµ¿ì¸¦ ÆÄ±«Çϵµ·Ï ÇÑ´Ù. ÀÌ ¸Þ½ÃÁö¿¡¼ -1À» ¸®ÅÏÇϸé ÀÌ À©µµ¿ì°¡ ÆÄ±«µÇ¸ç ÀÌ À©µµ¿ì°¡ ¸ÞÀÎ À©µµ¿ìÀÏ °æ¿ì WM_DESTROYÀÇ PostQuitMessage È£Ãâ¿¡ ÀÇÇØ ÇÁ·Î±×·¥ÀÌ Á¾·áµÈ´Ù. ÆÄÀÏ ¿ÀÇÂ, ¸Þ¸ð¸® ÇÒ´ç, ·¹Áö½ºÆ®¸® Á¡°Ë, ³×Æ®¿÷ ¿¬°á, DB ÃʱâÈ µîÀÇ ½ÇÆÐÇÒ °¡´É¼ºÀÌ ÀÖ´Â Ãʱâȸ¦ ÇÒ °æ¿ì ÀÌ ÇÔ¼ö¿¡¼ À©µµ¿ì »ý¼ºÀ» Áï½Ã ÁßÁöÇÒ ¼ö ÀÖ´Ù. case WM_CREATE: hFile=CreateFile("c:\\NoExist.Api",GENERIC_READ,0,NULL, OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL,NULL); if (hFile==INVALID_HANDLE_VALUE) { return -1; } else { return 0; } ´ÙÀ½ ¿¹Á¦´Â WM_CREATEÀÇ lParamÀ¸·Î À©µµ¿ìÀÇ ÃʱâÀ§Ä¡¸¦ Àü´ÞÇÏ´Â ¹æ¹ýÀ» º¸¿©ÁØ´Ù. CreateWindow¸¦ È£ÃâÇϱâ Àü¿¡ RECT ±¸Á¶Ã¼¸¦ ¼±¾ðÇÑ ÈÄ ÀÌ ±¸Á¶Ã¼ÀÇ Æ÷ÀÎÅ͸¦ CreateWindow ÇÔ¼öÀÇ ¸¶Áö¸· Àμö·Î Àü´ÞÇÏ¿´´Ù. ÀÌ Àμö´Â WM_CREATEÀÇ lParamÀ¸·Î Àü´ÞµÇ´Â CREATESTRUCT ±¸Á¶Ã¼ÀÇ lpCreateParams ¸â¹ö·Î Àü´ÞµÈ´Ù. RECT rt={123,123,456,456}; hWnd=CreateWindow(lpszClass,lpszClass,WS_OVERLAPPEDWINDOW, CW_USEDEFAULT,CW_USEDEFAULT,CW_USEDEFAULT,CW_USEDEFAULT, NULL,(HMENU)NULL,hInstance,&rt); ShowWindow(hWnd,nCmdShow); hWndMain=hWnd; while(GetMessage(&Message,0,0,0)) { TranslateMessage(&Message); DispatchMessage(&Message); } return Message.wParam; } LRESULT CALLBACK WndProc(HWND hWnd,UINT iMessage,WPARAM wParam,LPARAM lParam) { HDC hdc; PAINTSTRUCT ps; RECT *prt; switch(iMessage) { case WM_CREATE: prt=(RECT *)((LPCREATESTRUCT)lParam)->lpCreateParams; MoveWindow(hWnd,prt->left,prt->top, prt->right-prt->left,prt->bottom-prt->top,FALSE); return 0; WM_CREATE¿¡¼´Â lParamÀ¸·Î Àü´ÞµÇ´Â RECT ±¸Á¶Ã¼¸¦ ÂüÁ¶ÇÏ¿© ÀÚ½ÅÀÇ Ãʱâ À§Ä¡¸¦ ¼³Á¤ÇÏ¿´´Ù. ¹°·Ð ÃʱⰪÀº CreateWindow ÇÔ¼ö¿¡¼µµ ÁöÁ¤ÇÒ ¼ö ÀÖÀ¸¹Ç·Î ±»ÀÌ ÀÌ·± ¹æ¹ýÀ» ¾²Áö ¾Ê¾Æµµ µÇÁö¸¸ À©µµ¿ì »ý¼º Á¤º¸¸¦ ÀÌ·± ½ÄÀ¸·Î Àü´ÞÇÒ ¼ö ÀÖ´Ù´Â °ÍÀ» º¸¿©ÁØ´Ù. lpCreateParams´Â Æ÷ÀÎÅÍÀ̱⠶§¹®¿¡ ¾ó¸¶µçÁö º¹ÀâÇÑ ÇüÅÂÀÇ ±¸Á¶Ã¼¸¦ Á¤ÀÇÇÑ ÈÄ ÀÌ ±¸Á¶Ã¼ÀÇ Æ÷ÀÎÅ͸¦ Àü´ÞÇÔÀ¸·Î½á À©µµ¿ì »ý¼º¿¡ ÇÊ¿äÇÑ µ¥ÀÌÅ͸¦ ³Ñ±æ ¼ö ÀÖ´Ù. ½ÇÀü¿¡¼ ÀÌ·± ¹æ¹ýÀº °ÅÀÇ »ç¿ëµÇÁö ¾Ê´Â´Ù. |
Ç÷§Æû |
95ÀÌ»ó |
ÂüÁ¶ |
10-7-°¡ |
written by http://www.winapi.co.kr
|