好像不是很简单呢。。全局变量bool x,假为画线,真为拉动。 mainpoint描述顶点。{new一个mainpoint,然后将坐标保存在一个全局2维数组比如2*100的,并以此点画个半径为r小圆作为拖动点}//称之为模块1。在WM_LBUTTONDOWN的处理函数中添加{遍历2维数组判断是否到为已存的mainpoint距离小于r,if(是){ if(x){transform(0);} if(x==false){startpoint=此已存点;} } if(不是){ if(x){;} if(x==false){模块1;startpoint=此点}} 。在WM_LBUTTONUP的处理中添加{遍历2维数组是否到已存mainpoint距离小于r. if(是){ if(x){transform(此已存点);} if(x==false){endpoint=此已存点;} } if(不是){ if(x){transform(此点);} if(x==false){endpoint=此点;pDC->LineTo(startpoint,endpoint);} }}