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

📄 drawview.cpp

📁 功能进化对于设计人员来说有着及其重要的作用
💻 CPP
📖 第 1 页 / 共 3 页
字号:
	                point1[I-3].y=point1[M].y-33;
					point1[I-2].x=point1[M].x+210;
	                point1[I-2].y=point1[M].y+99;
					point1[I-1].x=point1[M].x+210;
	                point1[I-1].y=point1[M].y-99;
					point1[I].x=point1[M].x+210;
	                point1[I].y=point1[M].y+33;
                    //以下为存储方框数据
	                point2[I-3].x=point1[M].x+210;
	                point2[I-3].y=point1[M].y-33;
					point2[I-2].x=point1[M].x+210;
	                point2[I-2].y=point1[M].y+99;
					point2[I-1].x=point1[M].x+210;
	                point2[I-1].y=point1[M].y-99;
					point2[I].x=point1[M].x+210;
	                point2[I].y=point1[M].y+33;

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

			else{MessageBox("input again!");
				  J=8;
				  HUATU(pDC);
			}
                   J=0;
	}


//以下Q==9时为合并的程序
    if(Q==9){ 	BIAOZHI2=2;	
             if(point1[M].x>point1[N].x){ 
				 
				 pDC->TextOut(point1[M].x+130,(point1[M].y+point1[N].y)/2-5,"Aggregation");
	         m_dcMetaFile.TextOut(point1[M].x+130,(point1[M].y+point1[N].y)/2-5,"Aggregation");
				 FANGKUANG(pDC,point1[M].x+210,(point1[M].y+point1[N].y)/2,1,RGB(0,0,0));
             Line0(pDC,point1[N].x+103,point1[N].y+15,point1[M].x+120,point1[N].y+15,1,RGB(0,255,0));
             Line0(pDC,point1[M].x+120,point1[N].y+15,point1[M].x+120,point1[M].y+15,1,RGB(0,255,0));
             Line0(pDC,point1[M].x+120,point1[M].y+15,point1[M].x+103,point1[M].y+15,1,RGB(0,255,0));
 Line0(pDC,point1[M].x+207,(point1[M].y+point1[N].y)/2+15,point1[M].x+120,(point1[M].y+point1[N].y)/2+15,1,RGB(0,255,0));
 Line0(pDC,point1[M].x+207,(point1[M].y+point1[N].y)/2+15,point1[M].x+197,(point1[M].y+point1[N].y)/2+18,1,RGB(0,255,0));
 Line0(pDC,point1[M].x+207,(point1[M].y+point1[N].y)/2+15,point1[M].x+197,(point1[M].y+point1[N].y)/2+12,1,RGB(0,255,0));			 		
	I=I+1;
	                    point1[I].x=point1[M].x+210;
	                    point1[I].y=(point1[M].y+point1[N].y)/2;
						//以下为存储方框数据
					    point2[I].x=point1[M].x+210;
	                    point2[I].y=(point1[M].y+point1[N].y)/2;
						//以上为存储方框数据
                         point1[M].x=0;
                         point1[M].y=0;
                         point1[N].x=0;
                         point1[N].y=0;
	}
	            
			 else  { pDC->TextOut(point1[N].x+130,(point1[M].y+point1[N].y)/2-5,"Aggregation");
			 m_dcMetaFile.TextOut(point1[N].x+130,(point1[M].y+point1[N].y)/2-5,"Aggregation");
				 FANGKUANG(pDC,point1[N].x+210,(point1[M].y+point1[N].y)/2,1,RGB(0,0,0));
 Line0(pDC,point1[M].x+103,point1[M].y+15,point1[N].x+120,point1[M].y+15,1,RGB(0,255,0));
 Line0(pDC,point1[N].x+120,point1[M].y+15,point1[N].x+120,point1[N].y+15,1,RGB(0,255,0));
 Line0(pDC,point1[N].x+120,point1[N].y+15,point1[N].x+103,point1[N].y+15,1,RGB(0,255,0));
 Line0(pDC,point1[N].x+207,(point1[N].y+point1[M].y)/2+15,point1[N].x+120,(point1[M].y+point1[N].y)/2+15,1,RGB(0,255,0));
 Line0(pDC,point1[N].x+207,(point1[N].y+point1[M].y)/2+15,point1[N].x+197,(point1[M].y+point1[N].y)/2+18,1,RGB(0,255,0));
 Line0(pDC,point1[N].x+207,(point1[N].y+point1[M].y)/2+15,point1[N].x+197,(point1[M].y+point1[N].y)/2+12,1,RGB(0,255,0));
				 			I=I+1;
	                        point1[I].x=point1[N].x+210;
	                        point1[I].y=(point1[M].y+point1[N].y)/2;
							//以下为存储方框数据
							point2[I].x=point1[N].x+210;
	                        point2[I].y=(point1[M].y+point1[N].y)/2;
							//以上为存储方框数据
							point1[M].x=0;
                            point1[M].y=0;
                            point1[N].x=0;
                            point1[N].y=0;
				 }

	}

	// 以下Q=10为关系设定
	if(Q==10){ 
		 if(point2[M].y>point2[N].y&&point2[M].x<point2[N].x){ YUANHU(pDC,point2[M].x+50,point2[M].y,point2[N].x,point2[N].y+15);	}
		 if(point2[M].y>point2[N].y&&point2[M].x==point2[N].x){ YUANHU(pDC,point2[M].x+50,point2[M].y,point2[N].x+50,point2[N].y+30);	}
		 if(point2[M].y>point2[N].y&&point2[M].x>point2[N].x){ YUANHU(pDC,point2[M].x,point2[M].y+15,point2[N].x+50,point2[N].y+30);	}
		 if(point2[M].y==point2[N].y&&point2[M].x<point2[N].x){ YUANHU(pDC,point2[M].x+50,point2[M].y,point2[N].x+50,point2[N].y);	}
		 if(point2[M].y==point2[N].y&&point2[M].x>point2[N].x){ YUANHU(pDC,point2[M].x+50,point2[M].y+30,point2[N].x+50,point2[N].y+30);	} 
		 if(point2[M].y<point2[N].y&&point2[M].x<point2[N].x){ YUANHU(pDC,point2[M].x+100,point2[M].y+15,point2[N].x+50,point2[N].y);}
		 if(point2[M].y<point2[N].y&&point2[M].x==point2[N].x){ YUANHU(pDC,point2[M].x+50,point2[M].y+30,point2[N].x+50,point2[N].y);}
         if(point2[M].y<point2[N].y&&point2[M].x>point2[N].x){ YUANHU(pDC,point2[M].x+50,point2[M].y+30,point2[N].x+50,point2[N].y);}
		 //GUANXI=1;		 
			 	BIAOZHI=2;
	}
N=0;
J=0;
Q=0;





}

void CdrawView::OnEvolution() 
{
 CDC* pDC;
  pDC=GetDC();
  pDC->SetMapMode(MM_TEXT);
  pDC->SetWindowOrg(hi,vi);
	// TODO: Add your message handler code here and/or call default
    T=2;
		/*	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;}
	HUATU(pDC);
	*/
	
	GUANXI=1;	//使用point1[]数组
	 BIAOZHI2=2;//使鼠标左键能选中
	//以下为图形显示函数:

   /* CBitmap Bitmap, *poldbitmap;
	CDC MemDC;
	Bitmap.LoadBitmap(IDB_BITMAP5);
	MemDC.CreateCompatibleDC(pDC);
	poldbitmap=MemDC.SelectObject(&Bitmap);
	pDC->BitBlt(50,400,250,250,&MemDC,0,0,SRCCOPY);
    MemDC.SelectObject(poldbitmap);	
*/


int e=0;

int L=150;


if(sunD[0]=="")
{
	FANGKUANG2(20,500,100,30);
	textout(20,500,5,5,fatherD);
	point33[e].x=20;
	point33[e].y=500;
	e++;
    MessageBox("please save the tree first!");
}
else{
    FANGKUANG2(20,500,100,30);
	textout(20,500,5,5,fatherD);
	point33[e].x=20;
	point33[e].y=500;
	e++;
    Line01(120,515,145,515);
	Line01(145,215,145,515+(int)(L*num_child-300));
	for(int m=0;m<num_child;m++)
	{
	
		Line01(145,215+(int)(L*num_child/(num_child-1))*m,170,215+(int)(L*num_child/(num_child-1))*m);
        FANGKUANG2(170,215+(int)(L*num_child/(num_child-1))*m-15,100,30);
        textout(170,215+(int)(L*num_child/(num_child-1))*m-15,5,5,sunD[m]);
		point33[e].x=170;
	    point33[e].y=215+(int)(L*num_child/(num_child-1))*m-15;
	    e++;
		if(grandD[m][0]!="")
		{
          
			Line01(270,215+(int)(L*num_child/(num_child-1))*m,295,215+(int)(L*num_child/(num_child-1))*m);
			Line01(295,215+(int)(L*num_child/(num_child-1))*m-60,295,215+(int)(L*num_child/(num_child-1))*m+60);
            for(int n=0;n<num_grand[m];n++)
			{
           	Line01(295,215+(int)(L*num_child/(num_child-1))*m-60+(int)(120/(num_grand[m]-1))*n,315,215+(int)(L*num_child/(num_child-1))*m-60+(int)(120/(num_grand[m]-1))*n);
			FANGKUANG2(315,215+(int)(L*num_child/(num_child-1))*m-60+(int)(120/(num_grand[m]-1))*n-15,100,30);
			textout(315,215+(int)(L*num_child/(num_child-1))*m-60+(int)(120/(num_grand[m]-1))*n-10,15,0,grandD[m][n]);
	
		point33[e].x=315;
		point33[e].y=(215+(int)(L*num_child/(num_child-1))*m-60+(int)(120/(num_grand[m]-1))*n-15);
	    e++;
	
			}

		}
	}
}
   //以下动画显示:
     swf dlg;
   dlg.DoModal();

   
			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;}
	HUATU(pDC);
}





void CdrawView::OnRButtonDown(UINT nFlags, CPoint point) 
{

	int i;
	CDC* pDC;
	fhf dlg;
    pDC=GetDC();
	  pDC->SetMapMode(MM_TEXT);
   pDC->SetWindowOrg(hi,vi);
	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)
	{FANGKUANG(pDC,point2[i].x,point2[i].y,1,RGB(0,0,255));
		ZHI=i;  
	    jj=1;
        dlg.DoModal();
	 HUATU(pDC);
      FillRect0(pDC,RGB(255,255,255),point2[ZHI],100,30);	
      FANGKUANG(pDC,point2[ZHI].x,point2[ZHI].y,1,RGB(0,0,0));
	  pDC->TextOut(point2[ZHI].x+7,point2[ZHI].y+7,dlg.m_text);
	  m_dcMetaFile.TextOut(point2[ZHI].x+7,point2[ZHI].y+7,dlg.m_text);
      ZHI=0;
	}
	   else {}
	}
	if(jj!=1){
	//	MessageBox("请选择一个功能需求!");
	}
	CScrollView::OnRButtonDown(nFlags, point);
}

void CdrawView::OnPaint() 
{
	CPaintDC dc(this); // device context for painting
	
	OnPrepareDC(&dc);
	OnDraw(&dc);	
	// Do not call CScrollView::OnPaint() for painting messages
}

void CdrawView::OnSadfa() 
{
CClientDC dc(this);
	CDC* pDC=GetDC();
	CBrush *pBrush=CBrush::FromHandle((HBRUSH)GetStockObject(NULL_BRUSH));
	pDC->SelectObject(pBrush);
//	pDC->SelectObject(pBrush);
	

			pDC->MoveTo(10,10);
		pDC->LineTo(500,500);
		
		m_dcMetaFile.MoveTo(10,10);
		m_dcMetaFile.LineTo(500,500);

	
}

void CdrawView::OnAsfasf() 
{
	CClientDC dc(this);
	CBrush *pBrush=CBrush::FromHandle((HBRUSH)GetStockObject(NULL_BRUSH));
	dc.SelectObject(pBrush);
//	m_dcMetaFile.SelectObject(pBrush);
	
			dc.MoveTo(1500,10);
		dc.LineTo(500,50);
		
		m_dcMetaFile.MoveTo(1500,10);
		m_dcMetaFile.LineTo(500,50);
	
}

void CdrawView::OnFileOpen() 
{	
	HMETAFILE hmetaFile;
	hmetaFile=GetMetaFile("meta.wmf");
	m_dcMetaFile.PlayMetaFile(hmetaFile);
	DeleteMetaFile(hmetaFile);
	Invalidate();
	
}

void CdrawView::OnFileSave() 
{
	HMETAFILE hmetaFile;
	hmetaFile=m_dcMetaFile.Close();
	CopyMetaFile(hmetaFile,"meta.wmf");
	m_dcMetaFile.Create();
	DeleteMetaFile(hmetaFile);	
	
}

void CdrawView::OnBUTTONrelation() 
{
	// TODO: Add your command handler code here
   CDC* pDC;
   pDC=GetDC();
    pDC->SetMapMode(MM_TEXT);
   pDC->SetWindowOrg(hi,vi);
   if(K==1){//FANGKUANG(pDC,point2[M].x,point2[M].y,1,RGB(0,0,160));
   J=9;
   K=0;
   N=M;
    BIAOZHI=2;
	wenzhi="Provide";
	KAKA=1;
   MessageBox("Please select another function!");

   }
   else{}
}

void CdrawView::OnBUTTONbegain() 
{
	// TODO: Add your command handler code here
	CDC* pDC=GetDC();
	 pDC->SetMapMode(MM_TEXT);
   pDC->SetWindowOrg(hi,vi);
	GUANXI=2;
	BIAOZHI=2;
	KAKA=2;
	MessageBox("Please select the first function!");
	
}

void CdrawView::OnBUTTONrelation2() 
{
	// TODO: Add your command handler code here
   CDC* pDC;
   pDC=GetDC();
    pDC->SetMapMode(MM_TEXT);
   pDC->SetWindowOrg(hi,vi);
   if(K==1){//FANGKUANG(pDC,point2[M].x,point2[M].y,1,RGB(0,0,160));
   J=9;
   K=0;
   N=M;
    BIAOZHI=2;
	wenzhi="Enable";
	KAKA=1;
   MessageBox("Please select another function!");

   }
   else{}	
}

void CdrawView::OnBUTTONrelation3() 
{
	// TODO: Add your command handler code here
   CDC* pDC;
   pDC=GetDC();
   if(K==1){//FANGKUANG(pDC,point2[M].x,point2[M].y,1,RGB(0,0,160));
   J=9;
   K=0;
   N=M;
    BIAOZHI=2;
	wenzhi="Prevent";
	KAKA=1;
   MessageBox("Please select another function!");

   }
   else{}	
}

void CdrawView::OnBUTTONrelation4() 
{
	// TODO: Add your command handler code here
   CDC* pDC;
   pDC=GetDC();
   if(K==1){//FANGKUANG(pDC,point2[M].x,point2[M].y,1,RGB(0,0,160));
   J=9;
   K=0;
   N=M;
    BIAOZHI=2;
	wenzhi="Improve";
	KAKA=1;
   MessageBox("Please select another function!");

   }
   else{}	
}

void CdrawView::OnBUTTONrelation5() 
{
	// TODO: Add your command handler code here
   CDC* pDC;
   pDC=GetDC();
   if(K==1){//FANGKUANG(pDC,point2[M].x,point2[M].y,1,RGB(0,0,160));
   J=9;
   K=0;
   N=M;
    BIAOZHI=2;
	wenzhi="Control";
	KAKA=1;
   MessageBox("Please select another function!");

   }
   else{}	
}

void CdrawView::OnVScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar) 
{
	// TODO: Add your message handler code here and/or call default
	hi=GetScrollPos(SB_HORZ);
   vi=GetScrollPos(SB_VERT);
	CScrollView::OnVScroll(nSBCode, nPos, pScrollBar);
}

void CdrawView::OnHScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar) 
{
	// TODO: Add your message handler code here and/or call default
	hi=GetScrollPos(SB_HORZ);
vi=GetScrollPos(SB_VERT);
	CScrollView::OnHScroll(nSBCode, nPos, pScrollBar);
}

void CdrawView::OnCancelMode() 
{
	CScrollView::OnCancelMode();
	
	// TODO: Add your message handler code here
	
}

⌨️ 快捷键说明

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