我凭想象这样写的,可是不行bool MouseDown;case WM_LBUTTONDOWN:
MouseDown=true;
break;case WM_LBUTTONUP:
MouseDown=false;
break;case WM_MOUSEMOVE:
if(MouseDown)
{
SetPixel(hdc,LOWORD(lParam),HIWORD(lParam),RGB(0,0,0));
}
break;可是结果却不是我想要的,我希望实现画笔中那样的画线功能,改如何写消息处理呢?
MouseDown=true;
break;case WM_LBUTTONUP:
MouseDown=false;
break;case WM_MOUSEMOVE:
if(MouseDown)
{
SetPixel(hdc,LOWORD(lParam),HIWORD(lParam),RGB(0,0,0));
}
break;可是结果却不是我想要的,我希望实现画笔中那样的画线功能,改如何写消息处理呢?
然后LineTo
而要用LineTo来画线2、判断鼠标是否按下有一个更好的办法: SetCapture(),这样当鼠标移出窗口再移回来你一样可以知道鼠标是按下的或者松开的
MouseDown=true;
//记录鼠标位置A
break;case WM_LBUTTONUP:
MouseDown=false;
break;case WM_MOUSEMOVE:
if(MouseDown)
{
//取得鼠标位置B
//保存B为C
//用背景色画线LineTo(A,C)
//用前景色画线lineto(A,B)
SetPixel(hdc,LOWORD(lParam),HIWORD(lParam),RGB(0,0,0));
}
break;