📄 drawview.cpp
字号:
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 + -