在前一个练习中,我们绘制的是线段,即鼠标按下时的位置坐标为线段的起点,鼠标左键弹起的位置坐标为线段的终点,线段的位置与这两个操作中间的操作无关。
如果绘制连续的线条,我们必须考虑这一中间操作,即鼠标左键按下与鼠标左键弹起这两个行为中间的操作,鼠标移动。因此我们必须添加鼠标消息移动的响应函数。这样做还不够,你会发现只要鼠标移动,就会绘图。为了满足:只有鼠标左键按下,才可以绘图,因此我们还需要一个BOOL型的变量m_bDragging,判断鼠标左键是否按下。将此变量在视图类的构造函数中初始化:m_bDragging=FALSE;具体代码如下:
在鼠标移动的消息响应函数中注意这一条语句:m_ptOrigin=point;即将鼠标移动过程中的坐标作为下一次移动式的起点。这一语句与鼠标左键按下这一消息响应函数中的语句m_ptOrigin=point;