WM_CREATE

Àμö

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;
	}

¿¹Á¦ 1

´ÙÀ½ ¿¹Á¦´Â 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