OS 메시지
1 - 400
윈도우 사용자정의 메시지
401 - 8000
외부 메시지 - 프로그램간 통신
8000 - C000
메시지 번호
C000 - 10000
예비용
10000 - 41억
#define WM_SORI WM_USER+1
LRESULT CALLBACK WndProc(HWND hWnd,UINT iMessage,WPARAM wParam,LPARAM lParam)
{
HDC hdc;
PAINTSTRUCT ps;
TCHAR *Mes=TEXT("마우스 왼쪽 버튼을 누르면 WM_SORI메시지를 전달합니다.");
int i;
RECT rt;
switch (iMessage) {
case WM_LBUTTONDOWN:
SendMessage(hWnd,WM_SORI,0,0);
return 0;
case WM_SORI:
hdc=GetDC(hWnd);
MessageBeep(0);
SelectObject(hdc,GetStockObject(NULL_BRUSH));
for (i=0;i<100;i+=5) {
Ellipse(hdc,200-i,200-i/2,200+i,200+i/2);
Sleep(10);
}
Sleep(100);
SetRect(&rt,100,100,300,300);
FillRect(hdc,&rt,(HBRUSH)GetStockObject(WHITE_BRUSH));
ReleaseDC(hWnd,hdc);
return 0;
case WM_PAINT:
hdc=BeginPaint(hWnd, &ps);
TextOut(hdc,50,50,Mes,lstrlen(Mes));
EndPaint(hWnd, &ps);
return 0;
case WM_DESTROY:
PostQuitMessage(0);
return 0;
}
return(DefWindowProc(hWnd,iMessage,wParam,lParam));
}
사용자 정의 메시지를 사용해 다른 프로그램에 메시지를 보내는 방법
TCHAR *Mes=TEXT("UserMes 프로그램에게 메시지를 보냅니다");
// skip
case WM_LBUTTONDOWN:
// 캡션으로 구분
hWndSori=FindWindow(NULL,TEXT("UserMes"));
if (hWndSori==NULL) {
MessageBox(hWnd,TEXT("UserMes 프로그램이 실행되어 있지 않습니다"),
TEXT("이럴수가"),MB_OK);
} else {
SendMessage(hWndSori,WM_SORI,0,0);
}
return 0;