⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 drawview.cpp

📁 功能进化对于设计人员来说有着及其重要的作用
💻 CPP
📖 第 1 页 / 共 3 页
字号:
K=10;
//Line0(pDC,x1,y1,x2,y2,1,RGB(0,255,0));
x3=x1+(x2-x1)*K/R;
y3=y1+(y2-y1)*K/R;
x4=(x1+x3)/2+0.866*(y3-y1);
y4=(y1+y3)/2-0.866*(x3-x1);
//以下为画圆弧程序:
	           for(double A=0;A<360;A=A+T)
			   {    double XX=X0+R*cos(3.14*A/180);
                    double YY=Y0+R*sin(3.14*A/180);
					if((XX-x)*(XX-x)+(YY-y)*(YY-y)<0.268*R*R)
					{pDC->SetPixel(XX,YY,RGB(255,0,0));
			         m_dcMetaFile.SetPixel(XX,YY,RGB(255,0,0));}   }
Line0(pDC,x1,y1,x3,y3,1,RGB(255,0,0));
Line0(pDC,x1,y1,x4,y4,1,RGB(255,0,0));


pDC->TextOut(x-20,y,wenzhi);
m_dcMetaFile.TextOut(x-20,y,wenzhi);
}

void CdrawView::JIANTOU1(CDC* pDC,int x1,int y1,int wid,COLORREF sicol)
//画箭头1,颜色,线宽,矩形的左上点坐标;
{ int x2,y2;
  x2=x1+104;
  y2=y1+15;
  Line0(pDC,x2,y2,x2+100,y2,wid,sicol);
  myyuan(pDC,x2+50,y2,7,0);
  Line0(pDC,x2+100,y2,x2+90,y2-3,wid,sicol);
  Line0(pDC,x2+100,y2,x2+90,y2+3,wid,sicol);
}

void CdrawView::JIANTOU2(CDC* pDC,int x1,int y1,int wid,COLORREF sicol)
//画箭头2,颜色,线宽,矩形的左上点坐标;
{ int x2,y2,x3,y3,y4;
  x2=x1+104;
  y2=y1+15;
  x3=x2+50;
  y3=y2+100;

  y4=y2-100;
  Line0(pDC,x2,y2,x2+50,y2,wid,sicol);

  Line0(pDC,x2+50,y2,x2+50,y4,wid,sicol);
  Line0(pDC,x2+50,y4,x2+100,y4,wid,sicol);
  Line0(pDC,x2+100,y4,x2+90,y4-3,wid,sicol);
  Line0(pDC,x2+100,y4,x2+90,y4+3,wid,sicol);


  Line0(pDC,x2+50,y2,x3,y3,wid,sicol);
  Line0(pDC,x3,y3,x3+50,y3,wid,sicol);
  Line0(pDC,x3+50,y3,x3+40,y3-3,wid,sicol);
  Line0(pDC,x3+50,y3,x3+40,y3+3,wid,sicol);

  myyuan(pDC,x2+50,y2,7,0);
}


void CdrawView::JIANTOU3(CDC* pDC,int x1,int y1,int wid,COLORREF sicol)
{ int x2,y2,x3,y3,x4,y4;
  x2=x1+104;
  y2=y1+15;
  x3=x2+50;
  y3=y2+100;
  x4=x2+50;
  y4=y2-100;

  Line0(pDC,x2,y2,x2+100,y2,wid,sicol);
  Line0(pDC,x2+100,y2,x2+90,y2-3,wid,sicol);
  Line0(pDC,x2+100,y2,x2+90,y2+3,wid,sicol);

  Line0(pDC,x2+50,y2,x3,y3,wid,sicol);
  Line0(pDC,x3,y3,x3+50,y3,wid,sicol);
  Line0(pDC,x3+50,y3,x3+40,y3-3,wid,sicol);
  Line0(pDC,x3+50,y3,x3+40,y3+3,wid,sicol);

  Line0(pDC,x2+50,y2,x4,y4,wid,sicol);
  Line0(pDC,x4,y4,x4+50,y4,wid,sicol);
  Line0(pDC,x4+50,y4,x4+40,y4-3,wid,sicol);
  Line0(pDC,x4+50,y4,x4+40,y4+3,wid,sicol);

  myyuan(pDC,x2+50,y2,7,0);
}

void CdrawView::JIANTOU4(CDC* pDC,int x1,int y1,int wid,COLORREF sicol)
{ int x2,y2,x3,y3,x4,y4,x5,y5,y6;
  x2=x1+104;
  y2=y1+15;
  x3=x2+50;
  y3=y2+99;
  x4=x2+50;
  y4=y2-99;
  x5=x2+50;
  y5=y2+33;
  
  y6=y2-33;
  Line0(pDC,x2,y2,x2+50,y2,wid,sicol);

  Line0(pDC,x2+50,y6,x2+100,y6,wid,sicol);
  Line0(pDC,x2+100,y6,x2+90,y6-3,wid,sicol);
  Line0(pDC,x2+100,y6,x2+90,y6+3,wid,sicol);

  Line0(pDC,x2+50,y2,x3,y3,wid,sicol);
  Line0(pDC,x3,y3,x3+50,y3,wid,sicol);
  Line0(pDC,x3+50,y3,x3+40,y3-3,wid,sicol);
  Line0(pDC,x3+50,y3,x3+40,y3+3,wid,sicol);

  Line0(pDC,x2+50,y2,x4,y4,wid,sicol);
  Line0(pDC,x4,y4,x4+50,y4,wid,sicol);
  Line0(pDC,x4+50,y4,x4+40,y4-3,wid,sicol);
  Line0(pDC,x4+50,y4,x4+40,y4+3,wid,sicol);

  Line0(pDC,x2+50,y2,x5,y5,wid,sicol);
  Line0(pDC,x5,y5,x5+50,y5,wid,sicol);
  Line0(pDC,x5+50,y5,x5+40,y5-3,wid,sicol);
  Line0(pDC,x5+50,y5,x5+40,y5+3,wid,sicol);

  myyuan(pDC,x2+50,y2,7,0);
}
//画矩形填充
void CdrawView::FillRect0(CDC* pDC,COLORREF col,CPoint point,int chd,int kd)
//刷子颜色,矩形长宽
{CBrush newBrush(col);
CBrush *poldBrush;
poldBrush=pDC->SelectObject(&newBrush);
pDC->FillRect(CRect(point.x,point.y,point.x+chd,point.y+kd),&newBrush);//画一没边线的矩形
m_dcMetaFile.FillRect(CRect(point.x,point.y,point.x+chd,point.y+kd),&newBrush);
pDC->SelectObject(poldBrush);
m_dcMetaFile.SelectObject(poldBrush);
newBrush.DeleteObject();//释放并清除内存中的新刷子
}

//以下为添加的响应函数:


void CdrawView::OnButton001() 
{  CDC* pDC;
   pDC=GetDC();
     pDC->SetMapMode(MM_TEXT);
   pDC->SetWindowOrg(hi,vi);
   if(K==1){FANGKUANG(pDC,point1[M].x,point1[M].y,1,RGB(0,0,0));
   BIAOZHI2=2;
   J=1;
   K=0;
  HUATU(pDC);}
   else{}
	}

void CdrawView::OnButton002() 
{  CDC* pDC;
   pDC=GetDC();
     pDC->SetMapMode(MM_TEXT);
   pDC->SetWindowOrg(hi,vi);
   if(K==1){FANGKUANG(pDC,point1[M].x,point1[M].y,1,RGB(0,160,0));
    BIAOZHI2=2;
   J=2;
   K=0;
   N=M;
 
   MessageBox("Please select another function!");

   }
   else{}
	
}

void CdrawView::OnButton003() 
{
	// TODO: Add your command handler code here
 CDC* pDC;
   pDC=GetDC();
     pDC->SetMapMode(MM_TEXT);
   pDC->SetWindowOrg(hi,vi);
   if(K==1){FANGKUANG(pDC,point1[M].x,point1[M].y,1,RGB(0,0,0));
    BIAOZHI2=2;
   J=3;
   K=0;
  HUATU(pDC);}
   else{}	
}

void CdrawView::OnButton004() 
{
	// TODO: Add your command handler code here
 CDC* pDC;
   pDC=GetDC();
     pDC->SetMapMode(MM_TEXT);
   pDC->SetWindowOrg(hi,vi);
   if(K==1){FANGKUANG(pDC,point1[M].x,point1[M].y,1,RGB(0,0,0));
    BIAOZHI2=2;
   J=4;
   K=0;
  HUATU(pDC);}
   else{}	
}

void CdrawView::OnButton005() 
{
	// TODO: Add your command handler code here
 CDC* pDC;
   pDC=GetDC();
     pDC->SetMapMode(MM_TEXT);
   pDC->SetWindowOrg(hi,vi);
   if(K==1){FANGKUANG(pDC,point1[M].x,point1[M].y,1,RGB(0,0,0));
    BIAOZHI2=2;
   J=5;
   K=0;
  HUATU(pDC);}
   else{}	
}

void CdrawView::OnButton006() 
{
	// TODO: Add your command handler code here
 CDC* pDC;
   pDC=GetDC();
     pDC->SetMapMode(MM_TEXT);
   pDC->SetWindowOrg(hi,vi);
   if(K==1){FANGKUANG(pDC,point1[M].x,point1[M].y,1,RGB(0,0,0));
    BIAOZHI2=2;
   J=6;
   K=0;
  HUATU(pDC);}
   else{}	
}

void CdrawView::OnButton007() 
{
	// TODO: Add your command handler code here
 CDC* pDC;
   pDC=GetDC();
     pDC->SetMapMode(MM_TEXT);
   pDC->SetWindowOrg(hi,vi);
   if(K==1){FANGKUANG(pDC,point1[M].x,point1[M].y,1,RGB(0,0,0));
    BIAOZHI2=2;
   J=7;
   K=0;
  HUATU(pDC);}
   else{}	
}

void CdrawView::OnButton008() 
{  CDC* pDC;
   pDC=GetDC();
     pDC->SetMapMode(MM_TEXT);
   pDC->SetWindowOrg(hi,vi);
   if(K==1){FANGKUANG(pDC,point1[M].x,point1[M].y,1,RGB(0,0,0));
    BIAOZHI2=2;
   J=8;
   K=0;
HUATU(pDC);
   }
   else {}
	
}


void CdrawView::OnLButtonDown(UINT nFlags, CPoint point) 
{
	// TODO: Add your message handler code here and/or call default
	int i;
	CDC* pDC;
    pDC=GetDC();
	  pDC->SetMapMode(MM_TEXT);
   pDC->SetWindowOrg(hi,vi);
	//T=0;
if(GUANXI==1&&BIAOZHI2==2){
	for(i=0;i<100;i++)
	{if((point.x+hi)>point1[i].x&&(point.x+hi)<point1[i].x+100&&(point.y+vi)>point1[i].y&&(point.y+vi)<point1[i].y+30){
        FANGKUANG(pDC,point1[i].x,point1[i].y,1,RGB(255,0,0));
		BIAOZHI2=1;
		M=i;  
	    K=1;
	    T=1;
	   	if(J==2){Q=9;
		FANGKUANG(pDC,point1[i].x,point1[i].y,1,RGB(0,160,0));}
		else{}
		 HUATU(pDC);}
	}}
else if(GUANXI==2&&BIAOZHI==2){	
	for(i=0;i<100;i++)
	{if(point.x+hi>point2[i].x&&point.x+hi<point2[i].x+100&&point.y+vi>point2[i].y&&point.y+vi<point2[i].y+30)
	{if(J==9){Q=10;}
		FANGKUANG(pDC,point2[i].x,point2[i].y,1,RGB(0,0,160));
			BIAOZHI=1;
		if(KAKA==2){MessageBox("Please select a relationship!");}
		KAKA=2;
        //FANGKUANG(pDC,point2[i].x,point2[i].y,1,RGB(255,0,0));
		M=i;  
	    K=1;
	    T=1;
		HUATU(pDC);}
		else {}
	}
	}

	


else if(T!=1){
		MessageBox("Please select a function!");
	}
else{}

	
	CScrollView::OnLButtonDown(nFlags, point);
}



void CdrawView::OnMouseMove(UINT nFlags, CPoint point) 
{
    
	CScrollView::OnMouseMove(nFlags, point);
}



void CdrawView::HUATU(CDC* pDC)
{	//CDC* pDC;
    //pDC=GetDC();
  pDC->SetMapMode(MM_TEXT);
   pDC->SetWindowOrg(hi,vi);
	if(jj==1) {jj=0;}
	if(T!=1){ //FillRect0(pDC,RGB(255,255,255),(0,0),2000,2000);
//以下为清空内存
	/*	point1[0].x=40;
	point1[0].y=40;//此数组为存储可用来进化的方框数据
	point2[0].x=40;//此数组为存储所有方框数据
	point2[0].y=40;
	for(int i=0;i<50;i++)
	{point1[i].x=point33[i].x;
     point1[i].y=point33[i].y;
     point2[i].x=point33[i].x;
     point2[i].y=point33[i].y;}*/
//以上为清空内存
		//FANGKUANG(pDC,40,40,1,RGB(0,0,0));
	}

	
	if(J==1||J==3||J==4||J==5||J==6||J==7){
  BIAOZHI2=2;
		            JIANTOU1(pDC,point1[M].x,point1[M].y,1,RGB(0,0,0));
			if(J==1){ pDC->TextOut(point1[M].x+110,point2[M].y-10,"Generalization");
			m_dcMetaFile.TextOut(point1[M].x+110,point2[M].y-10,"Generalization");}
			if(J==3){ pDC->TextOut(point1[M].x+120,point2[M].y-10,"Specification");
			m_dcMetaFile.TextOut(point1[M].x+120,point2[M].y-10,"Specification");}
	        if(J==4){ pDC->TextOut(point1[M].x+120,point2[M].y-10,"Abstraction");
			m_dcMetaFile.TextOut(point1[M].x+120,point2[M].y-10,"Abstraction");}
	    	if(J==5){ pDC->TextOut(point1[M].x+120,point2[M].y-10,"Detailing");
			m_dcMetaFile.TextOut(point1[M].x+120,point2[M].y-10,"Detailing");}
			if(J==6){ pDC->TextOut(point1[M].x+120,point2[M].y-10,"Variation");
			m_dcMetaFile.TextOut(point1[M].x+120,point2[M].y-10,"Variation");}
			if(J==7){ pDC->TextOut(point1[M].x+130,point2[M].y-10,"Limiting");
			m_dcMetaFile.TextOut(point1[M].x+130,point2[M].y-10,"Limiting");}
		            FANGKUANG(pDC,point1[M].x+210,point1[M].y,1,RGB(0,0,0));
			        I=I+1;
	                point1[I].x=point1[M].x+210;
	                point1[I].y=point1[M].y;
					//以下为存储方框数据
					point2[I].x=point1[M].x+210;
	                point2[I].y=point1[M].y;
					//以上为存储方框数据
                    point1[M].x=0;
                    point1[M].y=0;
                   J=0;
	}


      if(J==8){
			  amountdlg dlg;
		  dlg.DoModal();
		  if(dlg.m_number==2){
		JIANTOU2(pDC,point1[M].x,point1[M].y,1,RGB(0,0,0));
		pDC->TextOut(point1[M].x+110,point2[M].y-10,"Decomposition");
		FANGKUANG(pDC,point1[M].x+210,point1[M].y-100,1,RGB(0,0,0));
		FANGKUANG(pDC,point1[M].x+210,point1[M].y+100,1,RGB(0,0,0));
				I=I+2;
	                point1[I-1].x=point1[M].x+210;
	                point1[I-1].y=point1[M].y-100;
					point1[I].x=point1[M].x+210;
	                point1[I].y=point1[M].y+100;
                    //以下为存储方框数据
				    point2[I-1].x=point1[M].x+210;
	                point2[I-1].y=point1[M].y-100;
					point2[I].x=point1[M].x+210;
	                point2[I].y=point1[M].y+100;
	               	//以上为存储方框数据
                    point1[M].x=0;
                    point1[M].y=0;}

		else  if(dlg.m_number==3){
		JIANTOU3(pDC,point1[M].x,point1[M].y,1,RGB(0,0,0));
		pDC->TextOut(point1[M].x+110,point2[M].y-10,"Decomposition");
		FANGKUANG(pDC,point1[M].x+210,point1[M].y,1,RGB(0,0,0));
		FANGKUANG(pDC,point1[M].x+210,point1[M].y+100,1,RGB(0,0,0));
		FANGKUANG(pDC,point1[M].x+210,point1[M].y-100,1,RGB(0,0,0));
				I=I+3;
	                point1[I-2].x=point1[M].x+210;
	                point1[I-2].y=point1[M].y;
					point1[I-1].x=point1[M].x+210;
	                point1[I-1].y=point1[M].y+100;
					point1[I].x=point1[M].x+210;
	                point1[I].y=point1[M].y-100;
                    //以下为存储方框数据
	                point2[I-2].x=point1[M].x+210;
	                point2[I-2].y=point1[M].y;
					point2[I-1].x=point1[M].x+210;
	                point2[I-1].y=point1[M].y+100;
					point2[I].x=point1[M].x+210;
	                point2[I].y=point1[M].y-100;

	               	//以上为存储方框数据
                    point1[M].x=0;
                    point1[M].y=0;}

		  	else	  if(dlg.m_number==4){
		JIANTOU4(pDC,point1[M].x,point1[M].y,1,RGB(0,0,0));
		pDC->TextOut(point1[M].x+110,point2[M].y-10,"Decomposition");
		FANGKUANG(pDC,point1[M].x+210,point1[M].y-33,1,RGB(0,0,0));
		FANGKUANG(pDC,point1[M].x+210,point1[M].y+99,1,RGB(0,0,0));
		FANGKUANG(pDC,point1[M].x+210,point1[M].y-99,1,RGB(0,0,0));
		FANGKUANG(pDC,point1[M].x+210,point1[M].y+33,1,RGB(0,0,0));
				I=I+4;
	                point1[I-3].x=point1[M].x+210;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -