WM_ACTIVATEAPP

Àμö

wParam : ÀÌ Àμö°¡ TRUEÀ̸é À©µµ¿ì°¡ È°¼ºÈ­µÈ °ÍÀÌ°í FALSEÀÌ¸é ºñÈ°¼ºÈ­µÈ °ÍÀÌ´Ù.

lParam : ÀÌ À©µµ¿ì°¡ È°¼º/ºñÈ°¼ºÈ­µÊ¿¡ µû¶ó È°¼ºÈ­ ¿©ºÎ°¡ ¹Ý´ë·Î ¹Ù²î´Â ´Ù¸¥ À©µµ¿ìÀÇ ½º·¹µå ID°¡ Àü´ÞµÈ´Ù. ¿¹¸¦ µé¾î AÀ©µµ¿ì¿¡¼­ BÀ©µµ¿ì·Î È°¼º À©µµ¿ì°¡ ¹Ù²î¾úÀ» ¶§ AÀ©µµ¿ì´Â ÀÌ ¸Þ½ÃÁöÀÇ lParamÀ¸·Î BÀ©µµ¿ìÀÇ ½º·¹µå ID¸¦ ¹Þ°í ¹Ý´ë·Î BÀ©µµ¿ìÀÇ ÀÌ ¸Þ½ÃÁö´Â AÀ©µµ¿ìÀÇ ½º·¹µå ID¸¦ ¹Þ´Â´Ù. È°¼ºÈ­ »óÅ°¡ ¹Ù²ï »ó´ëÆí À©µµ¿ì¿¡ ´ëÇØ ¾î¶² 󸮸¦ ÇÏ°í ½ÍÀ¸¸é ÀÌ Àμö¸¦ ÂüÁ¶ÇÑ´Ù.

¼³¸í

´Ù¸¥ ÇÁ·Î¼¼½º¿¡ ¼Ò¼ÓµÈ À©µµ¿ì·Î È°¼º »óÅ°¡ À̵¿µÉ ¶§ ÀÌ ¸Þ½ÃÁö°¡ ¹ß»ýÇÑ´Ù. ÀÌ ¸Þ½ÃÁö´Â »õ·Î È°¼ºÈ­µÇ´Â À©µµ¿ì¿Í ºñÈ°¼ºÈ­µÇ´Â À©µµ¿ì¿¡ µ¿½Ã¿¡ Àü´ÞµÈ´Ù. ±×·¯³ª °°Àº ÇÁ·Î¼¼½º³»ÀÇ À©µµ¿ì·Î Æ÷Ä¿½º°¡ À̵¿ÇÒ ¶§´Â ÀÌ ¸Þ½ÃÁö°¡ ¹ß»ýÇÏÁö ¾ÊÀ¸¸ç WM_ACTIVATE ¸Þ½ÃÁö°¡ ´ë½Å ¹ß»ýÇÑ´Ù. ÀÀ¿ë ÇÁ·Î±×·¥ ÀüüÀÇ È°¼º »óŸ¦ ÇÁ·Î±×·¡¹ÖÇÒ ¶§¸¸ ÀÌ ¸Þ½ÃÁö¸¦ »ç¿ëÇϸç À©µµ¿ì ´ÜÀ§ÀÇ È°¼ºÈ­´Â WM_ACTIVATE ¸Þ½ÃÁö¸¦ ´ë½Å »ç¿ëÇÑ´Ù.

¸®ÅÏ

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

¿¹Á¦

´ÙÀ½ ¿¹Á¦´Â È°¼ºÈ­µÇ¾î ÀÖ´Â µ¿¾È ¾Ö´Ï¸ÞÀ̼ÇÀ» ÁøÇàÇÏ¸ç ºñÈ°¼ºÈ­ µÇ¸é ¾Ö´Ï¸ÞÀ̼ÇÀ» ÁßÁöÇÑ´Ù.

¿¹Á¦ 1

LRESULT CALLBACK WndProc(HWND hWnd,UINT iMessage,WPARAM wParam,LPARAM lParam)
{
	HDC hdc;
	char *arStr[]={"animation    ","¾Ö´Ï¸ÞÀÌ¼Ç  "};
	static int count;

	switch(iMessage) {
	case WM_CREATE:
		return 0;
	case WM_ACTIVATEAPP:
		if (wParam == TRUE) {
			SetTimer(hWnd,1,500,NULL);
		} else {
			KillTimer(hWnd,1);
			hdc=GetDC(hWnd);
			TextOut(hdc,10,10,"Àá½ÃÁßÁö      ",14);
			ReleaseDC(hWnd,hdc);
		}
		return 0;
	case WM_TIMER:
		count++;
		hdc=GetDC(hWnd);
		TextOut(hdc,10,10,arStr[count%2],lstrlen(arStr[count%2]));
		ReleaseDC(hWnd,hdc);
		return 0;
	case WM_DESTROY:
		PostQuitMessage(0);
		return 0;
	}
	return(DefWindowProc(hWnd,iMessage,wParam,lParam));
}

ÀÀ¿ë ÇÁ·Î±×·¥ÀÌ È°¼ºÈ­ µÉ ¶§ ŸÀ̸Ӹ¦ ¼³Ä¡ÇÏ¿© ¾Ö´Ï¸ÞÀ̼ÇÀ» Çϵµ·Ï ÇÏ¸ç ºñÈ°¼ºÈ­µÉ ¶§´Â ŸÀ̸Ӹ¦ Æı«ÇÔ°ú µ¿½Ã¿¡ ¾Ö´Ï¸ÞÀ̼ÇÀÌ ÁßÁöµÇ¾úÀ½À» Ãâ·ÂÇÑ´Ù. ½ÇÇàÁßÀÇ ¸ð½ÀÀº ´ÙÀ½°ú °°´Ù.

¿¹Á¦ 2

´ÙÀ½ ¿¹Á¦´Â ¼¼ °³ÀÇ Æ˾÷ À©µµ¿ì¸¦ °Å´À¸®°í Àִµ¥ ºÎ¸ð À©µµ¿ì°¡ È°¼ºÈ­ »óÅÂÀÏ ¶§¸¸ Æ˾÷ À©µµ¿ì°¡ ³ªÅ¸³ª¸ç ºñÈ°¼ºÈ­µÇ¸é Æ˾÷ À©µµ¿ì¸¦ ¼û±ä´Ù.

#include <windows.h>

LRESULT CALLBACK WndProc(HWND,UINT,WPARAM,LPARAM);
LRESULT CALLBACK ChildProc(HWND hWnd,UINT iMessage,WPARAM wParam,LPARAM lParam);
HINSTANCE g_hInst;
HWND hWndMain;
LPCTSTR lpszClass=TEXT("WM_ACTIVATEAPP2");

int APIENTRY WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance
	  ,LPSTR lpszCmdParam,int nCmdShow)
{
	HWND hWnd;
	MSG Message;
	WNDCLASS WndClass;
	g_hInst=hInstance;
	
	WndClass.cbClsExtra=0;
	WndClass.cbWndExtra=0;
	WndClass.hbrBackground=(HBRUSH)(COLOR_WINDOW+1);
	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);

	WndClass.hCursor=LoadCursor(NULL,IDC_ARROW);
	WndClass.hbrBackground=NULL;
	WndClass.lpfnWndProc=(WNDPROC)ChildProc;
	WndClass.lpszClassName="ChildCls";
	WndClass.hbrBackground=(HBRUSH)GetStockObject(WHITE_BRUSH);
	RegisterClass(&WndClass);

	hWnd=CreateWindow(lpszClass,lpszClass,WS_OVERLAPPEDWINDOW,
		10,210,590,100,
		NULL,(HMENU)NULL,hInstance,NULL);
	ShowWindow(hWnd,nCmdShow);
	hWndMain=hWnd;
	
	while(GetMessage(&Message,0,0,0)) {
		TranslateMessage(&Message);
		DispatchMessage(&Message);
	}
	return (int)Message.wParam;
}

LRESULT CALLBACK WndProc(HWND hWnd,UINT iMessage,WPARAM wParam,LPARAM lParam)
{
	HDC hdc;
	PAINTSTRUCT ps;
	TCHAR Mes[]="È°¼º »óÅÂÀÏ ¶§¸¸ Æ˾÷ À©µµ¿ì¸¦ º¸¿©ÁØ´Ù.";
	static HWND hP1,hP2,hP3;

	switch(iMessage) {
	case WM_CREATE:
		hP1=CreateWindow("ChildCls","Æ˾÷1",WS_POPUP | WS_VISIBLE | WS_CAPTION,
			10,10,190,190,hWnd,(HMENU)NULL,g_hInst,NULL);
		hP2=CreateWindow("ChildCls","Æ˾÷2",WS_POPUP | WS_VISIBLE | WS_CAPTION,
			210,10,190,190,hWnd,(HMENU)NULL,g_hInst,NULL);
		hP3=CreateWindow("ChildCls","Æ˾÷3",WS_POPUP | WS_VISIBLE | WS_CAPTION,
			410,10,190,190,hWnd,(HMENU)NULL,g_hInst,NULL);
		return 0;
	case WM_ACTIVATEAPP:
		ShowWindow(hP1,wParam==TRUE ? SW_SHOW : SW_HIDE);
		ShowWindow(hP2,wParam==TRUE ? SW_SHOW : SW_HIDE);
		ShowWindow(hP3,wParam==TRUE ? SW_SHOW : SW_HIDE);
		return 0;
	case WM_PAINT:
		hdc=BeginPaint(hWnd, &ps);
		TextOut(hdc,10,10,Mes,lstrlen(Mes));
		EndPaint(hWnd, &ps);
		return 0;
	case WM_DESTROY:
		PostQuitMessage(0);
		return 0;
	}
	return(DefWindowProc(hWnd,iMessage,wParam,lParam));
}

LRESULT CALLBACK ChildProc(HWND hWnd,UINT iMessage,WPARAM wParam,LPARAM lParam)
{
	return(DefWindowProc(hWnd,iMessage,wParam,lParam));
}

ºÎ¸ð À©µµ¿ìÀÇ È°¼ºÈ­ »óÅ°¡ º¯°æµÉ ¶§¸¶´Ù WM_ACTIVATEAPP ¸Þ½ÃÁö°¡ Àü´ÞµÇ¹Ç·Î ÀÌ ¸Þ½ÃÁö¿¡¼­ Æ˾÷ À©µµ¿ì¸¦ ¼û±â°Å³ª º¸À̵µ·Ï ÇÏ¿´´Ù. ¸¹Àº Æ˾÷ À©µµ¿ì¸¦ °Å´À¸®°í ÀÖ´Â ÀÀ¿ë ÇÁ·Î±×·¥Àº ÀÚ½ÅÀÌ »ç¿ëµÇÁö ¾ÊÀ» ¶§ Æ˾÷ À©µµ¿ì¸¦ ¼û±â°Å³ª ÃÖ¼ÒÈ­ÇÏ¿© ´Ù¸¥ ÀÀ¿ë ÇÁ·Î±×·¥ÀÌ È­¸é ¿µ¿ªÀ» ¸¹ÀÌ »ç¿ëÇÒ ¼ö ÀÖµµ·Ï ¾çº¸ÇØ ÁÖ¾î¾ß ÇÑ´Ù.

Ç÷§Æû

95ÀÌ»ó

ÂüÁ¶

WM_ACTIVATE


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