| Àμö |
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
|