SetTimer

¿øÇü WORD SetTimer(HWND hWnd, int nIDEvent,WORD wElapse,FARPROC lpTimerFunc);
Àμö ¢ºhWnd:ŸÀ̸Ӱ¡ º¸³»´Â WM_TIMER ¸Þ½ÃÁö¸¦ ¹ÞÀ» À©µµ¿ìÀÇ ÇÚµé. NULLÀÏ °æ¿ì WM_TIMER ¸Þ½ÃÁö´Â º¸³»ÁöÁö ¾ÊÀ¸¸ç ÀÌ °æ¿ì Äݹé ÇÔ¼ö¸¦ µî·ÏÇØ¾ß ÇÑ´Ù.

¢ºnIDEvent:ŸÀ̸ÓÀÇ ¹øÈ£, À©µµ¿ìÁî¿¡´Â ÇѲ¨¹ø¿¡ ¿©·¯°³ÀÇ Å¸À̸Ӱ¡ ¼³Ä¡µÉ ¼ö ÀÖÀ¸¹Ç·Î ŸÀ̸ӳ¢¸®ÀÇ ±¸ºÐÀ» À§ÇØ Å¸ÀÌ¸Ó ¹øÈ£°¡ ÇÊ¿äÇÏ´Ù. ¿©±â¼­ ÁöÁ¤ÇÑ Å¸ÀÌ¸Ó ¹øÈ£´Â ŸÀ̸Ӱ¡ WM_TIMER ¸Þ½ÃÁö¸¦ º¸³¾¶§ wParamÀ¸·Î Àü´ÞµÈ´Ù. ÀÌ ID´Â ¶ÇÇÑ KillTimer¿¡ ÀÇÇØ Å¸À̸Ӹ¦ ÇØÁ¦ÇÒ ¶§µµ »ç¿ëµÈ´Ù.

¢ºwElapse:WM_TIMER ¸Þ½ÃÁö°¡ »ý¼ºµÉ ½Ã°£ °£°ÝÀ» 1/1000ÃÊ ´ÜÀ§·Î ÁöÁ¤ÇÑ´Ù. ÃÖ¼Ò °£°ÝÀº 98ÀÇ °æ¿ì55/1000ÃÊÀ̸ç NT/2000ÀÇ °æ¿ì 1/100ÃÊÀÌ´Ù.

¢ºlpTimerFunc:º¸Åë ÀÌ °ªÀº NULL·Î ÁöÁ¤ÇÏ¿© WM_TIMER¸Þ½ÃÁö°¡ WndProcÀ¸·Î Àü´ÞµÇµµ·Ï ÇÑ´Ù. ÀÌ Àμö¿¡ º°µµÀÇ °ªÀ» ÁöÁ¤ÇÒ °æ¿ì WM_TIMER¸Þ½ÃÁö´Â ÀÌ Àμö°¡ ÁöÁ¤ÇÏ´Â ºÐ¸®µÈ Äݹé ÇÔ¼ö·Î Àü´ÞµÈ´Ù. Äݹé ÇÔ¼ö´Â ŸÀÌ¸Ó ¸Þ½ÃÁöº¸´Ù Á» ´õ Á¤È®ÇÑ ½Ã°£¿¡ È£ÃâµÈ´Ù.

¸®ÅÏ

hWnd°¡ NULLÀÏ °æ¿ì ŸÀÌ¸Ó ID¸¦ ¸®ÅÏÇϸç ÀÌ ID´Â KillTimer¿¡ ÀÇÇØ Å¸ÀÌ¸Ó ÇØÁ¦½Ã¿¡ »ç¿ëµÈ´Ù. hWnd°¡ NULLÀÌ ¾Æ´Ï°í ŸÀÌ¸Ó »ý¼º¿¡ ¼º°øÇÑ °æ¿ì nonzero°¡ ¸®ÅϵǸç ŸÀÌ¸Ó »ý¼º¿¡ ½ÇÆÐÇϸé 0À» ¸®ÅÏÇÑ´Ù. SetTimer ÇÔ¼öÀÇ ¸®ÅÏ°ªÀº ÀϹÝÀûÀ¸·Î »ç¿ëÇÏÁö ¾Ê´Â´Ù.

¼³¸í

ŸÀ̸Ӹ¦ »ý¼ºÇÏ°í wElapse°¡ ÁöÁ¤ÇÏ´Â °£°ÝÀ¸·Î WM_TIMER¸Þ½ÃÁö¸¦ º¸³½´Ù. WM_TIMER ¸Þ½ÃÁö¸¦ ¹Þ´Â °÷Àº lpTimerFuncÀÇ ¼³Á¤¿¡ µû¶ó ´Þ¶óÁø´Ù. lpTimerFunc°¡ NULLÀÏ °æ¿ì´Â ŸÀ̸Ӹ¦ ¼³Ä¡ÇÑ À©µµ¿ìÀÇ WndProcÀ¸·Î º¸³»Áö¸ç ±×·¸Áö ¾ÊÀ» °æ¿ì´Â lpTimerFunc°¡ ÁöÁ¤ÇÏ´Â ÄݹéÇÔ¼ö·Î º¸³»Áø´Ù. ŸÀÌ¸Ó ¸Þ½ÃÁö´Â ÀÀ¿ë ÇÁ·Î±×·¥ÀÇ ¸Þ½ÃÁö Å¥¿¡ ÀúÀåµÇ¸ç À©µµ¿ìÁîÀÇ ´Ù¸¥ ÇÁ·Î±×·¥¿¡ ÀÇÇØ ½Ã°£ÀÌ Áö¿¬µÉ ¼öµµ ÀÖÀ¸¹Ç·Î ¹Ýµå½Ã Á¤È®ÇÑ °£°ÝÀ¸·Î Àü´ÞµÈ´Ù´Â º¸ÀåÀº ¾ø´Ù. ½Ã°è, °£´ÜÇÑ ¿¡´Ï¸ÞÀÌ¼Ç µî ÀÏÁ¤ÇÑ ÁÖ±â·Î È£ÃâµÇ¾îÁ®¾ß ÇÒ ÇÔ¼ö°¡ ÀÖÀ» ¶§ º¸Åë ŸÀÌ¸Ó ¸Þ½ÃÁö¸¦ »ç¿ëÇÑ´Ù. ¶Ç´Â ½Ã½ºÅÛÀÇ ¼Óµµ¿Í´Â ¹«°üÇÏ°Ô ÀÏÁ¤ÇÑ ¼Óµµ¸¦ À¯ÁöÇؾßÇÏ´Â °ÔÀӵµµ ŸÀÌ¸Ó ¸Þ½ÃÁö°¡ »ç¿ëµÈ´Ù.

¸¸¾à hWndÀÇ nIDEvent ŸÀ̸Ӱ¡ ÀÌ¹Ì ¼³Ä¡µÇ¾î ÀÖ´Ù¸é ÀÌ ÇÔ¼ö´Â »õ·Î¿î ÁÖ±â·Î ŸÀ̸Ӹ¦ ´Ù½Ã ¼³Ä¡Çϸç ÀÌ °æ¿ì ŸÀ̸Ӵ ¸®¼ÂµÈ´Ù. ŸÀ̸ÓÀÇ Áֱ⸦ ¹Ù²Ù°íÀÚ ÇÒ °æ¿ì °°Àº ID·Î ÀÌ ÇÔ¼ö¸¦ È£ÃâÇØ ÁØ´Ù.

¿¹Á¦ 1

´ÙÀ½ ¿¹Á¦´Â µÎ °³ÀÇ Å¸À̸Ӹ¦ ¼³Ä¡ÇÑ´Ù.

LRESULT CALLBACK WndProc(HWND hWnd,UINT iMessage,WPARAM wParam,LPARAM lParam)
{
	HDC hdc;
	PAINTSTRUCT ps;
	RECT rt;
	char Mes[]="ŸÀÌ¸Ó ¿¹Á¦ÀÔ´Ï´Ù.";

	switch(iMessage) {
	case WM_CREATE:
		SetTimer(hWnd,1,500,NULL);
		SetTimer(hWnd,2,3000,NULL);
		return 0;
	case WM_TIMER:
		switch(wParam)
		{
		case 1:
			GetWindowRect(hWnd,&rt);
			rt.left+=5;
			rt.right+=5;
			MoveWindow(hWnd,rt.left,rt.top,rt.right-rt.left,rt.bottom-rt.top,TRUE);
			break;
		case 2:
			MessageBeep(0);
			break;
		}
		return 0;
	case WM_PAINT:
		hdc=BeginPaint(hWnd, &ps);
		TextOut(hdc,10,10,Mes,lstrlen(Mes));
		EndPaint(hWnd, &ps);
		return 0;
	case WM_DESTROY:
		KillTimer(hWnd,1);
		KillTimer(hWnd,2);
		PostQuitMessage(0);
		return 0;
	}
	return(DefWindowProc(hWnd,iMessage,wParam,lParam));
}

ID 1¹øÀÇ Å¸À̸Ӵ 0.5ÃÊ °£°ÝÀ¸·Î È£ÃâµÇ¸ç ¸Å¹ø À©µµ¿ì¸¦ ¿À¸¥ÂÊÀ¸·Î 5Çȼ¿¾¿ ¿Å±ä´Ù. ID 2¹øÀÇ Å¸À̸Ӵ 3ÃÊ °£°ÝÀ¸·Î È£ÃâµÇ¸ç ºñÇÁÀ½À» Ãâ·ÂÇÑ´Ù. WM_TIMER¿¡¼­´Â wParam¸¦ Àоî ŸÀ̸Ӹ¦ ±¸ºÐÇϸç WM_DESTROY¿¡¼­´Â KillTimer ÇÔ¼ö·Î ŸÀ̸Ӹ¦ ÇØÁ¦ÇÑ´Ù.

Âü°íÇÔ¼ö KillTimer : ŸÀ̸Ӹ¦ ÇØÁ¦ÇÑ´Ù.
Ç÷¿Æû 95ÀÌ»ó
º»¹®ÂüÁ¶

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