WM_DESTROY

Àμö

Àμö ¾øÀ½

¼³¸í

À©µµ¿ì°¡ Æı«µÉ ¶§ ÀÌ ¸Þ½ÃÁö°¡ Àü´ÞµÈ´Ù. »ç¿ëÀÚ°¡ Alt+F4 ¶Ç´Â ´Ý±â ¹öÆ°À» ´©¸¦ °æ¿ì WM_CLOSE ¸Þ½ÃÁö°¡ Àü´ÞµÇ¸ç ÀÌ ¸Þ½ÃÁö¸¦ º°µµ·Î ó¸®ÇÏÁö ¾ÊÀ¸¸é DefWindowProcÀº DestroyWindow ÇÔ¼ö¸¦ È£ÃâÇÏ¿© À©µµ¿ì¸¦ Æı«ÇÑ´Ù. ¶Ç´Â ÇÁ·Î±×·¥ ÄÚµå ³»ºÎ¿¡¼­ ¸í½ÃÀûÀ¸·Î DestroyWindow ÇÔ¼ö¸¦ È£ÃâÇÒ ¶§µµ À©µµ¿ì°¡ Æı«µÇ´Âµ¥ ÀÌ ÇÔ¼ö È£Ãâ °á°ú·Î WM_DESTROY ¸Þ½ÃÁö°¡ Àü´ÞµÈ´Ù.

ÀÌ ¸Þ½ÃÁö¸¦ ¹ÞÀº À©µµ¿ì´Â À©µµ¿ìÀÇ Á¾·á¸¦ À§ÇÑ Ã³¸®¸¦ ÇØ¾ß Çϴµ¥ ¿¹¸¦ µé¾î ¿­¾î ³õÀº ÆÄÀÏÀ» ´Ý°í ÇÒ´çÇÑ ¸Þ¸ð¸®¸¦ ÇØÁ¦ÇÏ´Â µîÀÇ Á¤¸® ÀÛ¾÷À» ÇÑ´Ù. WM_CREATE¿¡¼­ÀÇ ÃʱâÈ­ ó¸®ÀÇ ¹Ý´ë µ¿ÀÛÀÌ ÀÌ ¸Þ½ÃÁö¿¡ ÀÛ¼ºµÇ´Â °ÍÀÌ ÀϹÝÀûÀÌ¸ç ±×¿Ü ·¹Áö½ºÆ®¸®¿¡ ¹Ìº¸°ü Á¤º¸¸¦ ÀúÀåÇÏ´Â µîÀÇ ÀÛ¾÷À» ÇÒ ¼ö ÀÖ´Ù. ¸¸¾à Æı«µÇ´Â À©µµ¿ì°¡ Ŭ¸³º¸µå üÀο¡ ¼ÓÇØ ÀÖÀ¸¸é ÀÚ½ÅÀ» Ŭ¸³º¸µå üÀο¡¼­ Á¦°ÅÇØ¾ß ÇÑ´Ù.

DestroyWindow ÇÔ¼ö´Â Æı«ÇÒ À©µµ¿ì¸¦ È­¸é¿¡¼­ ¼û±ä ÈÄ ÀÌ ¸Þ½ÃÁö¸¦ º¸³»¹Ç·Î ÀÌ ¸Þ½ÃÁö¸¦ ¹ÞÀº ½ÃÁ¡¿¡¼­´Â À©µµ¿ì ÀÚü°¡ Æı«µÇÁö ¾ÊÀº »óÅÂÀÌ´Ù. ¶ÇÇÑ DestroyWindow ÇÔ¼ö´Â ÀÚ½Ä À©µµ¿ì¿¡°Ôµµ ÀÌ ¸Þ½ÃÁö¸¦ Â÷·Ê´ë·Î º¸³»Áִµ¥ ºÎ¸ð À©µµ¿ì°¡ ¸ÕÀú ÀÌ ¸Þ½ÃÁö¸¦ ¹Þ°í ÀÚ½Ä À©µµ¿ì¿¡°Ô·Î ÀÌ ¸Þ½ÃÁö°¡ º¸³»Áø´Ù. µû¶ó¼­ ºÎ¸ð À©µµ¿ì°¡ ÀÌ ¸Þ½ÃÁö¸¦ ó¸®ÇÏ´Â µ¿¾ÈÀº ¸ðµç ÀÚ½Ä À©µµ¿ì°¡ ¾ÆÁ÷ Æı«µÇ±â ÀüÀ̹ǷΠÀÚ½Ä À©µµ¿ì¸¦ ÇÁ·Î±×·¡¹ÖÇÒ ¼ö ÀÖ´Ù.

Æı«µÇ´Â À©µµ¿ì°¡ ¸ÞÀÎ À©µµ¿ìÀÏ °æ¿ì PostQuitMessage ÇÔ¼ö¸¦ ¹Ýµå½Ã È£ÃâÇÏ¿© ÇÁ·Î¼¼½ºÀÇ ¸Þ½ÃÁö ·çÇÁ¸¦ Á¾·áÇϵµ·Ï ÇØ¾ß ÇÑ´Ù. ¸¸¾à ÀÌ Ã³¸®¸¦ »ý·«Çϸé À©µµ¿ì¸¸ Æı«µÇ°í ¸Þ½ÃÁö ·çÇÁ´Â °è¼Ó ½ÇÇàÁßÀÎ »óÅ°¡ µÇ¹Ç·Î ÇÁ·Î¼¼½º°¡ Á¾·áµÇÁö ¾Ê´Â´Ù.

¸®ÅÏ

ÀÌ ¸Þ½ÃÁö¸¦ ó¸®ÇßÀ¸¸é 0À» ¸®ÅÏÇØ¾ß ÇÑ´Ù.

¿¹Á¦

´ÙÀ½ ¿¹Á¦´Â À©µµ¿ì°¡ Æı«µÉ ¶§ ÀÚ½ÅÀÇ À§Ä¡¸¦ ·¹Áö½ºÆ®¸®¿¡ ÀúÀåÇÑ´Ù. ÀÌ À©µµ¿ì´Â ¸ÞÀÎ À©µµ¿ìÀ̹ǷΠÁ¾·á 󸮸¦ ÇÑ ÈÄ PostQuitMessage ÇÔ¼ö¸¦ È£ÃâÇÏ¿© ÇÁ·Î¼¼½º¸¦ Á¾·áÇÏ¿´´Ù.

	case WM_DESTROY:
		RegCreateKeyEx(HKEY_CURRENT_USER, 
			"Software\\KanamSoft\\RegiTest\\Position",0,NULL,
			REG_OPTION_NON_VOLATILE, KEY_ALL_ACCESS,NULL,&key,&dwDisp);
		GetWindowRect(hWnd, &rt);
		RegSetValueEx(key, "Left",0,REG_DWORD,(LPBYTE)&rt.left,sizeof(LONG));
		RegSetValueEx(key, "Top",0,REG_DWORD,(LPBYTE)&rt.top,sizeof(LONG));
		RegSetValueEx(key, "Right",0,REG_DWORD,(LPBYTE)&rt.right,sizeof(LONG));
		RegSetValueEx(key, "Bottom",0,REG_DWORD,(LPBYTE)&rt.bottom,sizeof(LONG));
		RegCloseKey(key);
		PostQuitMessage(0);
		return 0;
	}
	return(DefWindowProc(hWnd,iMessage,wParam,lParam));
}

 

Ç÷§Æû

95ÀÌ»ó

ÂüÁ¶

 


written by http://www.winapi.co.kr