Windows/Windows API
화면 가장자리에 밀착
aucd29
2013. 10. 1. 18:49
LRESULT CALLBACK WndProc(HWND hWnd,UINT iMessage,WPARAM wParam,LPARAM lParam)
{
HDC hdc;
PAINTSTRUCT ps;
static int sx,sy;
int t;
char str[]="화면 가장자리에 밀착합니다.";
switch(iMessage) {
case WM_CREATE:
sx=GetSystemMetrics(SM_CXSCREEN); // it
sy=GetSystemMetrics(SM_CYSCREEN); // it
return 0;
case WM_WINDOWPOSCHANGING:
t=((LPWINDOWPOS)lParam)->x;
if (t < 30) t=0;
if (t+((LPWINDOWPOS)lParam)->cx > sx-30)
t=sx-((LPWINDOWPOS)lParam)->cx;
((LPWINDOWPOS)lParam)->x=t;
t=((LPWINDOWPOS)lParam)->y;
if (t < 30) t=0;
if (t+((LPWINDOWPOS)lParam)->cy > sy-30)
t=sy-((LPWINDOWPOS)lParam)->cy;
((LPWINDOWPOS)lParam)->y=t;
return 0;
case WM_PAINT:
hdc=BeginPaint(hWnd, &ps);
TextOut(hdc,100,100,str,strlen(str));
EndPaint(hWnd, &ps);
return 0;
case WM_DESTROY:
PostQuitMessage(0);
return 0;
}
return(DefWindowProc(hWnd,iMessage,wParam,lParam));
}
{
HDC hdc;
PAINTSTRUCT ps;
static int sx,sy;
int t;
char str[]="화면 가장자리에 밀착합니다.";
switch(iMessage) {
case WM_CREATE:
sx=GetSystemMetrics(SM_CXSCREEN); // it
sy=GetSystemMetrics(SM_CYSCREEN); // it
return 0;
case WM_WINDOWPOSCHANGING:
t=((LPWINDOWPOS)lParam)->x;
if (t < 30) t=0;
if (t+((LPWINDOWPOS)lParam)->cx > sx-30)
t=sx-((LPWINDOWPOS)lParam)->cx;
((LPWINDOWPOS)lParam)->x=t;
t=((LPWINDOWPOS)lParam)->y;
if (t < 30) t=0;
if (t+((LPWINDOWPOS)lParam)->cy > sy-30)
t=sy-((LPWINDOWPOS)lParam)->cy;
((LPWINDOWPOS)lParam)->y=t;
return 0;
case WM_PAINT:
hdc=BeginPaint(hWnd, &ps);
TextOut(hdc,100,100,str,strlen(str));
EndPaint(hWnd, &ps);
return 0;
case WM_DESTROY:
PostQuitMessage(0);
return 0;
}
return(DefWindowProc(hWnd,iMessage,wParam,lParam));
}