毕业论文论文范文课程设计实践报告法律论文英语论文教学论文医学论文农学论文艺术论文行政论文管理论文计算机安全
您现在的位置: 毕业论文 >> 课程设计 >> 正文

VC++数字逻辑电子仿真器设计 第6页

更新时间:2010-5-19:  来源:毕业论文
VC++数字逻辑电子仿真器设计 第6页
startpoint.y=pNodeNow->Orgpoint .y +circlepoint.y;
   //全局变量startput记录当前触点类别:Input_1,Input_2,Output_1;
   startput=put;
   //lastpoint用于鼠标移动时擦除线效果
   lastpoint=startpoint;

  }
 进行连接初始化:首先开启开始连接状态
     IsLink=TRUE;
     然后用全局变量pNodeStart指向当前元件
     pNodeStart=pNodeNow
全局变量startpoint记录当前触点中心坐标(这时要进行坐标的转换)
     startpoint.x=pNodeNow->Orgpoint .x +circlepoint.x;
     startpoint.y=pNodeNow->Orgpoint .y +circlepoint.y;
     全局变量startput记录当前触点类别
     startput=put;
     最后lastpoint用于鼠标移动时擦除线效果
     lastpoint=startpoint;
 鼠标抬起模块
其算法如图9
 
图9
代码如下:
void CMyView::OnLButtonUp(UINT nFlags, CPoint point)
{
 // TODO: Add your message handler code here and/or call default
 
 if(IsLink)
 {
  //首先擦除从startpoint到point
   CClientDC clientDC(this);
   CClientDC* pDC=&clientDC;
    
   CPen whitepen(PS_SOLID,1,RGB(255,255,255));
   CPen* pOldPen;
   pOldPen=clientDC.SelectObject (&whitepen);
   clientDC.MoveTo (startpoint);
   clientDC.LineTo (point);
   clientDC.SelectObject (pOldPen);
   //重绘所有输入结点前的序号
   redrawnum();
   //重绘连接线
   LinkLineRedraw(startpoint,point);
   //重绘物件
   lineRedraw(startpoint,point);
  if(IsDrawCircle)
   //用全局变量pNodeCurrent记录终点连接的物体
   pNodeCurrent=pNodeNow;
   //用全局变量currentput记录终点连接的触点
   currentput=put;
   //用全局变量currentpoint记录终点触点的中心坐标
   currentpoint.x=pNodeNow->Orgpoint .x +circlepoint.x;
   currentpoint.y=pNodeNow->Orgpoint .y +circlepoint.y;

   //IsTwoObjectsCanLink()函数判断两个物件是否能连接
   if(IsTwoObjectsCanLink())
   {
    //先擦除圆圈
//EraserMyCircle();没有必要,只要鼠标移开时重绘连接线就可
    //开始两个物件的画图连接
    LineLink();
    //开始真正连接:指针连接
    RealLink();
   //关闭连接状态:
   IsLink=FALSE;

 }
 CView::OnLButtonUp(nFlags, point);
}
 判断两个元件是否可以连接
BOOL CMyView::IsTwoObjectsCanLink()

上一页  [1] [2] [3] [4] [5] [6] [7] [8] 下一页

VC++数字逻辑电子仿真器设计 第6页下载如图片无法显示或论文不完整,请联系qq752018766
设为首页 | 联系站长 | 友情链接 | 网站地图 |

copyright©youerw.com 优文论文网 严禁转载
如果本毕业论文网损害了您的利益或者侵犯了您的权利,请及时联系,我们一定会及时改正。