MFC中LButtonDown下拖动鼠标绘制直线
最近做一个项目,需要一个在绘制位图的视图上画直线,具体要求是按住鼠标左键拖动,然后放开左键绘制出一条直线。(下一次绘制时,不能清除上一次绘制的直线)。
具体思路如下:
(1).当鼠标左键按下时,记录下鼠标的位置,并设置一个标记记录下鼠标左键DOWN(当鼠标左键UP时,设置为UP);
(2).要实时绘制直线,则需要在鼠标移动时,刷新绘制;
(3).由于下一次绘制不能清除上一次绘制的直线,那么在刷新绘制时则需要用一个数组保存下前面绘制的直线,在每次刷新前将以前绘制的直线绘制出来;
(4).将最后一次绘制的直线保存到数组中;
(5).由于绘制较多直线,屏幕会闪射,则需要创建内存缓存DC来绘图;
具体代码实现:
(1).
A在鼠标左键按下消息中:
voidCDrawLineView::OnLButtonDown(UINT nFlags, CPoint point)
{
m_Start.x = point.x; //保存鼠标左键按下时坐标,为直线的起点坐标
m_Start.y = point.y;
m_LbuttonFlag = 1; //设置鼠标左键按下标志,为1表示鼠标左键按下
}