#include<windows.h>
long _stdcall myfunc(HWND,UINT,UINT,long);
WNDCLASSA a;
int flag=0,x1,y1,x2,y2;
int _stdcall WinMain(HINSTANCE i,HINSTANCE j, char *k,int l)
{
HWND h;
MSG m;
a.hInstance=i;
a.lpszClassName="my";
a.lpfnWndProc=myfunc;
a.hbrBackground=(HBRUSH)GetStockObject(WHITE_BRUSH);
RegisterClassA(&a);
h=CreateWindowA("my","Free Hand Drawing",WS_OVERLAPPEDWINDOW,10,10,150,100,0,0,i,0);
//h=CreateWindowExA(WS_OVERLAPPEDWINDOW,"Free Hand Drawing","my",WS_OVERLAPPEDWINDOW,10,10,150,100,0,0,i,0);
ShowWindow(h,3);
while(GetMessage(&m,0,0,0))
DispatchMessage(&m);
return 0;
}
long _stdcall myfunc(HWND w,UINT x,UINT y,long z)
{
HDC d;
switch(x)
{
case WM_LBUTTONDOWN:
if(flag==0)
{
x1=LOWORD(z);
y1=HIWORD(z);
flag=1;
}
else
{
d=GetDC(w);
MoveToEx(d,x,y,0);
LineTo(d,LOWORD(z),1+WORD(z));
ReleaseDC(w,d);
flag=0;
}
break;
case WM_MOUSEMOVE:
if(flag==1)
{
x2=LOWORD(z);
y2=HIWORD(z);
d=GetDC(w);
MoveToEx(d,x1,y1,0);
LineTo(d,x2,y2);
ReleaseDC(w,d);
x1=x2;
y1=y2;
}
break;
case WM_LBUTTONUP:
flag=0;
break;
case WM_DESTROY:
PostQuitMessage(0);
break;
default:
return DefWindowProcA(w,x,y,z);
}
return 0L;
}
No comments:
Post a Comment