Àμö |
wParam : ÀÌ Àμö°¡ TRUEÀ̸é À©µµ¿ì°¡ È°¼ºÈµÈ °ÍÀÌ°í FALSEÀÌ¸é ºñÈ°¼ºÈµÈ °ÍÀÌ´Ù. lParam : ÀÌ À©µµ¿ì°¡ È°¼º/ºñÈ°¼ºÈµÊ¿¡ µû¶ó È°¼ºÈ ¿©ºÎ°¡ ¹Ý´ë·Î ¹Ù²î´Â ´Ù¸¥ À©µµ¿ìÀÇ ½º·¹µå ID°¡ Àü´ÞµÈ´Ù. ¿¹¸¦ µé¾î AÀ©µµ¿ì¿¡¼ BÀ©µµ¿ì·Î È°¼º À©µµ¿ì°¡ ¹Ù²î¾úÀ» ¶§ AÀ©µµ¿ì´Â ÀÌ ¸Þ½ÃÁöÀÇ lParamÀ¸·Î BÀ©µµ¿ìÀÇ ½º·¹µå ID¸¦ ¹Þ°í ¹Ý´ë·Î BÀ©µµ¿ìÀÇ ÀÌ ¸Þ½ÃÁö´Â AÀ©µµ¿ìÀÇ ½º·¹µå ID¸¦ ¹Þ´Â´Ù. È°¼ºÈ »óÅ°¡ ¹Ù²ï »ó´ëÆí À©µµ¿ì¿¡ ´ëÇØ ¾î¶² 󸮸¦ ÇÏ°í ½ÍÀ¸¸é ÀÌ Àμö¸¦ ÂüÁ¶ÇÑ´Ù. |
¼³¸í |
´Ù¸¥ ÇÁ·Î¼¼½º¿¡ ¼Ò¼ÓµÈ À©µµ¿ì·Î È°¼º »óÅ°¡ À̵¿µÉ ¶§ ÀÌ ¸Þ½ÃÁö°¡ ¹ß»ýÇÑ´Ù. ÀÌ ¸Þ½ÃÁö´Â »õ·Î È°¼ºÈµÇ´Â À©µµ¿ì¿Í ºñÈ°¼ºÈµÇ´Â À©µµ¿ì¿¡ µ¿½Ã¿¡ Àü´ÞµÈ´Ù. ±×·¯³ª °°Àº ÇÁ·Î¼¼½º³»ÀÇ À©µµ¿ì·Î Æ÷Ä¿½º°¡ À̵¿ÇÒ ¶§´Â ÀÌ ¸Þ½ÃÁö°¡ ¹ß»ýÇÏÁö ¾ÊÀ¸¸ç WM_ACTIVATE ¸Þ½ÃÁö°¡ ´ë½Å ¹ß»ýÇÑ´Ù. ÀÀ¿ë ÇÁ·Î±×·¥ ÀüüÀÇ È°¼º »óŸ¦ ÇÁ·Î±×·¡¹ÖÇÒ ¶§¸¸ ÀÌ ¸Þ½ÃÁö¸¦ »ç¿ëÇϸç À©µµ¿ì ´ÜÀ§ÀÇ È°¼ºÈ´Â WM_ACTIVATE ¸Þ½ÃÁö¸¦ ´ë½Å »ç¿ëÇÑ´Ù. |
¸®ÅÏ |
ÀÌ ¸Þ½ÃÁö¸¦ ó¸®ÇßÀ¸¸é 0À» ¸®ÅÏÇÑ´Ù. |
¿¹Á¦ |
´ÙÀ½ ¿¹Á¦´Â È°¼ºÈµÇ¾î ÀÖ´Â µ¿¾È ¾Ö´Ï¸ÞÀ̼ÇÀ» ÁøÇàÇÏ¸ç ºñÈ°¼ºÈ µÇ¸é ¾Ö´Ï¸ÞÀ̼ÇÀ» ÁßÁöÇÑ´Ù. 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)); } ÀÀ¿ë ÇÁ·Î±×·¥ÀÌ È°¼ºÈ µÉ ¶§ ŸÀ̸Ӹ¦ ¼³Ä¡ÇÏ¿© ¾Ö´Ï¸ÞÀ̼ÇÀ» Çϵµ·Ï ÇÏ¸ç ºñÈ°¼ºÈµÉ ¶§´Â ŸÀ̸Ӹ¦ Æı«ÇÔ°ú µ¿½Ã¿¡ ¾Ö´Ï¸ÞÀ̼ÇÀÌ ÁßÁöµÇ¾úÀ½À» Ãâ·ÂÇÑ´Ù. ½ÇÇàÁßÀÇ ¸ð½ÀÀº ´ÙÀ½°ú °°´Ù. ´ÙÀ½ ¿¹Á¦´Â ¼¼ °³ÀÇ Æ˾÷ À©µµ¿ì¸¦ °Å´À¸®°í Àִµ¥ ºÎ¸ð À©µµ¿ì°¡ È°¼ºÈ »óÅÂÀÏ ¶§¸¸ Æ˾÷ À©µµ¿ì°¡ ³ªÅ¸³ª¸ç ºñÈ°¼ºÈµÇ¸é Æ˾÷ À©µµ¿ì¸¦ ¼û±ä´Ù. #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
|