node.cpp
来自「故障诊断工作涉及的领域相当广泛」· C++ 代码 · 共 1,504 行 · 第 1/3 页
CPP
1,504 行
{ temp=CPoint(center.x-lth*scale*3/2,center.y+(lth*2/(incnt+1)*(i+1)-lth)*scale);
incenter[i]=rspt+(temp-rspt)*g_scale;
temp=CPoint(incenter[i].x+lth/6*scale,incenter[i].y);
pDC->MoveTo((temp-rspt)*g_scale+rspt+offset);//左面
temp=CPoint(incenter[i].x+lth/2*scale,incenter[i].y);
pDC->LineTo((temp-rspt)*g_scale+rspt+offset);
dipan.left=((temp-rspt)*g_scale+rspt+offset).x;
temp=CPoint(incenter[i].x-lth/6,incenter[i].y-lth/6);
temp1=CPoint(incenter[i].x+lth/6,incenter[i].y+lth/6);
pDC->Ellipse(CRect((temp-rspt)*g_scale+rspt+offset,(temp1-rspt)*g_scale+rspt+offset));
area.left=((temp-rspt)*g_scale+rspt+offset).x-2;
}
delete pPen1;
pPen1=new CPen;
pPen1->CreatePen(0,2,RGB(50,255,50));
pDC->SelectObject(pPen1);
for(i=0;i<outcnt;i++)
{ temp=CPoint(center.x+3*lth*scale/2,center.y+(lth*2/(outcnt+1)*(i+1)-lth)*scale);
outcenter[i]=rspt+(temp-rspt)*g_scale;
temp=CPoint(outcenter[i].x-lth/6*scale,outcenter[i].y);
pDC->MoveTo(rspt+(temp-rspt)*g_scale+offset);//右面
temp=CPoint(outcenter[i].x-lth/2*scale,outcenter[i].y);
pDC->LineTo(rspt+(temp-rspt)*g_scale+offset);
dipan.right=(rspt+(temp-rspt)*g_scale+offset).x;
temp=CPoint(outcenter[i].x-lth/6,outcenter[i].y-lth/6);
temp1=CPoint(outcenter[i].x+lth/6,outcenter[i].y+lth/6);
pDC->Ellipse(CRect((temp-rspt)*g_scale+rspt+offset,(temp1-rspt)*g_scale+rspt+offset));
area.right=((temp1-rspt)*g_scale+rspt+offset).x+2;
}
pPen1=new CPen;
pPen1->CreatePen(0,2,RGB(255,50,50));
pDC->SelectObject(pPen1);
for(i=0;i<concnt;i++)
{ temp=CPoint(center.x-lth*scale+lth*2/(concnt+1)*(i+1)*scale,center.y-lth*scale*3/2);
concenter[i]=rspt+(temp-rspt)*g_scale;
temp=CPoint(concenter[i].x,concenter[i].y+lth/6*scale);
pDC->MoveTo(rspt+(temp-rspt)*g_scale+offset);//上面
temp=CPoint(concenter[i].x,concenter[i].y+lth/2*scale);
pDC->LineTo(rspt+(temp-rspt)*g_scale+offset);
dipan.top=(rspt+(temp-rspt)*g_scale+offset).y;
temp=CPoint(concenter[i].x-lth/6*scale,concenter[i].y-lth/6*scale);
temp1=CPoint(concenter[i].x+lth/6*scale,concenter[i].y+lth/6*scale);
pDC->Ellipse(CRect((temp-rspt)*g_scale+rspt+offset,(temp1-rspt)*g_scale+rspt+offset));
area.top=((temp-rspt)*g_scale+rspt+offset).y-2;
}
pPen1=new CPen;
pPen1->CreatePen(0,2,RGB(255,50,05));
pDC->SelectObject(pPen1);
for(i=0;i<concnt;i++)
{ temp=CPoint(center.x-lth*scale+lth*2/(concnt+1)*(i+1)*scale,center.y+lth*3*scale/2);
concenter[i+5]=rspt+(temp-rspt)*g_scale;
temp=CPoint(concenter[i+5].x,concenter[i+5].y-lth/6*scale);
pDC->MoveTo(rspt+(temp-rspt)*g_scale+offset);//下面
temp=CPoint(concenter[i+5].x,concenter[i+5].y-lth/2*scale);
pDC->LineTo(rspt+(temp-rspt)*g_scale+offset);
dipan.bottom=(rspt+(temp-rspt)*g_scale+offset).y;
temp=CPoint(concenter[i+5].x-lth/6*scale,concenter[i+5].y-lth/6*scale);
temp1=CPoint(concenter[i+5].x+lth/6*scale,concenter[i+5].y+lth/6*scale);
pDC->Ellipse(CRect((temp-rspt)*g_scale+rspt+offset,(temp1-rspt)*g_scale+rspt+offset));
area.bottom=((temp1-rspt)*g_scale+rspt+offset).y+2;
}
delete pPen1;
pDC->SelectObject(pNewPen);
pDC->Rectangle(&dipan);
pDC->MoveTo(area.left,area.top);
pDC->LineTo(area.right,area.top);
pDC->LineTo(area.right,area.bottom);
pDC->LineTo(area.left,area.bottom);
pDC->LineTo(area.left,area.top);
delete pNewPen;
center+=offset;
pNewPen=new CPen;;
pNewPen->CreatePen(0,1,RGB(255,255,255));
pDC->SelectObject(pNewPen);
//int nDrawMode=pDC->SetROP2(R2_NOT);//设置R2_NOT的绘图方式
pDC->MoveTo(dipan.left/2+dipan.right/2,dipan.top);
pDC->LineTo(dipan.left/2+dipan.right/2,dipan.bottom);
pDC->MoveTo(dipan.left,dipan.top/2+dipan.bottom/2);
pDC->LineTo(dipan.right,dipan.top/2+dipan.bottom/2);//覆盖先前的光标线
// pDC->SetROP2(nDrawMode);
delete pNewPen;
*/
}
void node::renew_node(CDC *pDC, dpt pt)
{
}
void node::renew_graph(CDC *pDC, dpt pt)
{
}
BOOL node::is_snap(dpt point,BOOL bway)
{
double r2=(area.right-area.left)*(area.right-area.left);
double l2=(center.x-point.x)*(center.x-point.x)+(center.y-point.y)*(center.y-point.y);
if(bway)
{
r2/=4;
}
if(l2<=r2)
return TRUE;
else
return FALSE;
}
void node::change()
{
//rspt.x=0;
//rspt.y=0;
CSize bag=CPoint(0,0);
//bag=CSize(0,0);
dpt temp,temp1;
center=(center-rspt)*g_scale+rspt;
if(incnt==0)
{
dipan.left=center.x-lth*scale*5/6*g_c_scale;
area.left=center.x-lth*scale*g_c_scale-2;
}
if(outcnt==0)
{dipan.right=center.x+lth*scale*5/6*g_c_scale;
area.right=center.x+lth*scale*g_c_scale+2;
}
if(concnt==0)
{dipan.bottom=center.y+lth*scale*5/6*g_c_scale;
dipan.top=center.y-lth*scale*5/6*g_c_scale;
area.top=center.y-lth*scale*g_c_scale-2;
area.bottom=center.y+lth*scale*g_c_scale+2;
}
double dbag=g_scale;
g_scale=1;
for(unsigned int i=0;i<incnt;i++)
{ temp=dpt(center.x-lth*scale*3/2*g_c_scale,\
center.y-lth*scale*g_c_scale+lth*2/(incnt+1)*(i+1)*scale*g_c_scale);
incenter[i]=(temp-rspt)*g_scale+rspt;
temp=dpt(incenter[i].x+lth/6*scale*g_c_scale,incenter[i].y);
inleft[i]=(temp-rspt)*g_scale+rspt;
temp=dpt(incenter[i].x+lth/2*scale*g_c_scale,incenter[i].y);
inright[i]=(temp-rspt)*g_scale+rspt;
dipan.left=((temp-rspt)*g_scale+rspt).x;
temp=dpt(incenter[i].x-lth/6*g_c_scale,incenter[i].y-lth/6*g_c_scale);
temp1=dpt(incenter[i].x+lth/6*g_c_scale,incenter[i].y+lth/6*g_c_scale);
inrect[i]=drec((temp-rspt)*g_scale+rspt,(temp1-rspt)*g_scale+rspt);
area.left=((temp-rspt)*g_scale+rspt).x-2;
if(binfrosen!=NULL)
{
if(binfrosen[i]==TRUE)
pptlist[i].scale(rspt,dbag);
}
}
for(i=0;i<outcnt;i++)
{ temp=dpt(center.x+3*lth*scale/2*g_c_scale,\
center.y-lth*scale*g_c_scale+lth*2/(outcnt+1)*(i+1)*scale*g_c_scale);
outcenter[i]=(temp-rspt)*g_scale+rspt;
temp=dpt(outcenter[i].x-lth/6*scale*g_c_scale,outcenter[i].y);
outleft[i]=(temp-rspt)*g_scale+rspt;
temp=dpt(outcenter[i].x-lth/2*scale*g_c_scale,outcenter[i].y);
outright[i]=(temp-rspt)*g_scale+rspt;
dipan.right=((temp-rspt)*g_scale+rspt).x;
temp=dpt(outcenter[i].x-lth/6*g_c_scale,outcenter[i].y-lth/6*g_c_scale);
temp1=dpt(outcenter[i].x+lth/6*g_c_scale,outcenter[i].y+lth/6*g_c_scale);
outrect[i]=drec((temp-rspt)*g_scale+rspt,(temp1-rspt)*g_scale+rspt);
area.right=((temp1-rspt)*g_scale+rspt).x+2;
}
for(i=0;i<concnt;i++)
{ temp=dpt(center.x-lth*scale*g_c_scale+lth*2/(concnt+1)*(i+1)*scale*g_c_scale,\
center.y-lth*scale*3/2*g_c_scale);
concenter[i]=(temp-rspt)*g_scale+rspt;
temp=dpt(concenter[i].x,concenter[i].y+lth/6*scale*g_c_scale);
contop[i]=(temp-rspt)*g_scale+rspt;//上面
temp=dpt(concenter[i].x,concenter[i].y+lth/2*scale*g_c_scale);
conbottom[i]=(temp-rspt)*g_scale+rspt;
dipan.top=((temp-rspt)*g_scale+rspt).y;
temp=dpt(concenter[i].x-lth/6*scale*g_c_scale,\
concenter[i].y-lth/6*scale*g_c_scale);
temp1=dpt(concenter[i].x+lth/6*scale*g_c_scale,\
concenter[i].y+lth/6*scale*g_c_scale);
conrect[i]=drec((temp-rspt)*g_scale+rspt,(temp1-rspt)*g_scale+rspt);
area.top=((temp-rspt)*g_scale+rspt).y-2;
}
for(i=0;i<concnt;i++)
{ temp=dpt(center.x-lth*scale*g_c_scale+lth*2/(concnt+1)*(i+1)*scale*g_c_scale,\
center.y+lth*3*scale/2*g_c_scale);
concenter[i+5]=(temp-rspt)*g_scale+rspt;
temp=dpt(concenter[i+5].x,concenter[i+5].y-lth/6*scale*g_c_scale);
contop[i+5]=(temp-rspt)*g_scale+rspt;//下面
temp=dpt(concenter[i+5].x,concenter[i+5].y-lth/2*scale*g_c_scale);
conbottom[i+5]=(temp-rspt)*g_scale+rspt;
dipan.bottom=((temp-rspt)*g_scale+rspt).y;
temp=dpt(concenter[i+5].x-lth/6*scale*g_c_scale,\
concenter[i+5].y-lth/6*scale*g_c_scale);
temp1=dpt(concenter[i+5].x+lth/6*scale*g_c_scale,
concenter[i+5].y+lth/6*scale*g_c_scale);
conrect[i+5]=drec((temp-rspt)*g_scale+rspt,(temp1-rspt)*g_scale+rspt);
area.bottom=((temp1-rspt)*g_scale+rspt).y+2;
}
g_scale=dbag;
/*
for(unsigned int i=0;i<incnt;i++)
{ //temp=CPoint(center.x-lth*scale*3/2,center.y+(lth*2/(incnt+1)*(i+1)-lth)*scale);
//incenter[i]=rspt+(temp-rspt)*g_c_scale+offset
incenter[i]=incenter[i]*g_c_scale;
temp=CPoint(incenter[i].x+lth/6*scale*g_c_scale,incenter[i].y);
inleft[i]=(temp-rspt)*g_c_scale+rspt+bag;
temp=CPoint(incenter[i].x+lth/2*scale*g_c_scale,incenter[i].y);
inright[i]=(temp-rspt)*g_c_scale+rspt+bag;
dipan.left=((temp-rspt)*g_c_scale+rspt+bag).x;
temp=CPoint(incenter[i].x-lth/6*scale*g_c_scale,incenter[i].y-lth/6*scale*g_c_scale);
temp1=CPoint(incenter[i].x+lth/6*scale*g_c_scale,incenter[i].y+lth/6*scale*g_c_scale);
inrect[i]=CRect((temp-rspt)*g_c_scale*scale+rspt,(temp1-rspt)*g_c_scale*scale+rspt);
area.left=((temp-rspt)*g_c_scale+rspt+bag).x-2;
}
for(i=0;i<outcnt;i++)
{ //temp=CPoint(center.x+3*lth*scale/2,center.y+(lth*2/(outcnt+1)*(i+1)-lth)*scale);
//outcenter[i]=rspt+(temp-rspt)*g_c_scale+offset;
outcenter[i]=outcenter[i]*g_c_scale;
temp=CPoint(outcenter[i].x-lth/6*scale*g_c_scale,outcenter[i].y);
outleft[i]=rspt+(temp-rspt)*g_c_scale+bag;
temp=CPoint(outcenter[i].x-lth/2*scale*g_c_scale,outcenter[i].y);
outright[i]=rspt+(temp-rspt)*g_c_scale+bag;
dipan.right=(rspt+(temp-rspt)*g_c_scale+bag).x;
temp=CPoint(outcenter[i].x-lth/6*g_c_scale*scale,outcenter[i].y-lth/6*g_c_scale*scale);
temp1=CPoint(outcenter[i].x+lth/6*g_c_scale*scale,outcenter[i].y+lth/6*g_c_scale*scale);
outrect[i]=CRect((temp-rspt)*g_c_scale+rspt+bag,(temp1-rspt)*g_c_scale+rspt+bag);
area.right=((temp1-rspt)*g_c_scale+rspt+bag).x+2;
}
for(i=0;i<concnt;i++)
{ //temp=CPoint(center.x-lth*scale*g_c__scale+lth*2/(concnt+1)*(i+1)*scale*g_c__scale,\
center.y-lth*scale*3/2*g_c__scale);
//concenter[i]=rspt+(temp-rspt)*g_c_scale+offset;
concenter[i]=concenter[i]*g_scale;
temp=CPoint(concenter[i].x,concenter[i].y+lth/6*scale);
contop[i]=rspt+(temp-rspt)*g_c_scale+bag;//上面
temp=CPoint(concenter[i].x,concenter[i].y+lth/2*scale);
conbottom[i]=rspt+(temp-rspt)*g_c_scale+bag;
dipan.top=(rspt+(temp-rspt)*g_c_scale+bag).y;
temp=CPoint(concenter[i].x-lth/6*scale,concenter[i].y-lth/6*scale);
temp1=CPoint(concenter[i].x+lth/6*scale,concenter[i].y+lth/6*scale);
conrect[i]=CRect((temp-rspt)*g_c_scale+rspt+bag,(temp1-rspt)*g_c_scale+rspt+bag);
area.top=((temp-rspt)*g_c_scale+rspt+bag).y-2;
}
for(i=0;i<concnt;i++)
{ temp=CPoint(center.x-lth*scale+lth*2/(concnt+1)*(i+1)*scale,center.y+lth*3*scale/2);
concenter[i+5]=rspt+(temp-rspt)*g_c_scale+offset;
//concenter[i+5]=concenter[i]*g_scale;
temp=CPoint(concenter[i+5].x,concenter[i+5].y-lth/6*scale);
contop[i+5]=rspt+(temp-rspt)*g_c_scale+bag;//下面
temp=CPoint(concenter[i+5].x,concenter[i+5].y-lth/2*scale);
conbottom[i+5]=rspt+(temp-rspt)*g_c_scale+bag;
dipan.bottom=(rspt+(temp-rspt)*g_c_scale+bag).y;
temp=CPoint(concenter[i+5].x-lth/6*scale,concenter[i+5].y-lth/6*scale);
temp1=CPoint(concenter[i+5].x+lth/6*scale,concenter[i+5].y+lth/6*scale);
conrect[i+5]=CRect((temp-rspt)*g_c_scale+rspt+bag,(temp1-rspt)*g_c_scale+rspt+bag);
area.bottom=((temp1-rspt)*g_c_scale+rspt+bag).y+2;
}
*/
}
void node::move()
{
CPoint temp,temp1;
center+=offset;
dipan.left+=offset.x;
area.left+=offset.x;
dipan.right+=offset.x;
area.right+=offset.x;
dipan.top+=offset.y;
area.top+=offset.y;
dipan.bottom+=offset.y;
area.bottom+=offset.y;
for(unsigned int i=0;i<incnt;i++)
{
incenter[i]+=offset;
inleft[i]+=offset;
inright[i]+=offset;
inrect[i].left+=offset.x;
inrect[i].right+=offset.x;
inrect[i].top+=offset.y;
inrect[i].bottom+=offset.y;
if(binfrosen!=NULL)
{
if(binfrosen[i]==TRUE)
pptlist[i].move(offset);
}
}
for(i=0;i<outcnt;i++)
{ outcenter[i]+=offset;
outleft[i]+=offset;
outright[i]+=offset;
outrect[i].left+=offset.x;
outrect[i].right+=offset.x;
outrect[i].top+=offset.y;
outrect[i].bottom+=offset.y;
}
for(i=0;i<concnt;i++)
{ concenter[i]+=offset;
contop[i]+=offset;
conbottom[i]+=offset;
conrect[i].left+=offset.x;
conrect[i].right+=offset.x;
conrect[i].top+=offset.y;
conrect[i].bottom+=offset.y;
concenter[i+5]+=offset;
contop[i+5]+=offset;
conbottom[i+5]+=offset;
conrect[i+5].left+=offset.x;
conrect[i+5].right+=offset.x;
conrect[i+5].top+=offset.y;
conrect[i+5].bottom+=offset.y;
}
}
void node::see()
{
change();
move();
}
BOOL node::is_dipan_snap(dpt &pt)
{
double r2=(dipan.right-dipan.left)*(dipan.right-dipan.left)/4;
double l2=(center.x-pt.x)*(center.x-pt.x)+(center.y-pt.y)*(center.y-pt.y);
if(l2<=r2)
return TRUE;
else
return FALSE;
}
BOOL node::is_in_snap(dpt &pt,int* ppin)
{
double r2,llth;
dpt bag;
if(incnt>0)
{ r2=(inrect[0].right/2-inrect[0].left/2)*(inrect[0].right/2-inrect[0].left/2);
for(unsigned int i=0;i<incnt;i++)
{
bag=dpt(inrect[i].left/2+inrect[i].right/2,inrect[i].top/2+inrect[i].bottom/2);
llth=(pt.x-bag.x)*(pt.x-bag.x)+(pt.y-bag.y)*(pt.y-bag.y);
if(llth<=r2)
{*ppin=i;
return TRUE;
}
}
}
return FALSE;
}
BOOL node::is_out_snap(dpt &pt,int* ppin)
{
double r2,llth;
dpt bag;
if(outcnt>0)
{r2=(outrect[0].right/2-outrect[0].left/2)*(outrect[0].right/2-outrect[0].left/2);
for(unsigned int i=0;i<outcnt;i++)
{
bag=dpt(outrect[i].left/2+outrect[i].right/2,outrect[i].top/2+outrect[i].bottom/2);
llth=(pt.x-bag.x)*(pt.x-bag.x)+(pt.y-bag.y)*(pt.y-bag.y);
if(llth<=r2)
{*ppin=incnt+i;
return TRUE;
}
}
}
return FALSE;
}
BOOL node::is_con_snap(dpt &pt,int* ppin)
{
double r2,llth;
dpt bag;
if(concnt>0)
r2=(conrect[0].right/2-conrect[0].left/2)*(conrect[0].right/2-conrect[0].left/2);
for(unsigned int i=0;i<concnt;i++)
{
bag=dpt(conrect[i].left/2+conrect[i].right/2,conrect[i].top/2+conrect[i].bottom/2);
llth=(pt.x-bag.x)*(pt.x-bag.x)+(pt.y-bag.y)*(pt.y-bag.y);
if(llth<=r2)
{ *ppin=incnt+outcnt+i;
return TRUE;
}
bag=dpt(conrect[i+5].left/2+conrect[i+5].right/2,conrect[i+5].top/2+conrect[i+5].bottom/2);
llth=(pt.x-bag.x)*(pt.x-bag.x)+(pt.y-bag.y)*(pt.y-bag.y);
if(llth<=r2)
{ *ppin=incnt+outcnt+i+5;
return 2;
}
}
return FALSE;
}
void node::setdipan(CView *pv)
{ CDC* pDC=pv->GetDC();
CPen* pNewPen=new CPen;
pNewPen->CreatePen(0,5,RGB(255,0,0));
CPen* oldpen=pDC->SelectObject(pNewPen);
pDC->Ellipse(dipan.left,dipan.top,dipan.right,dipan.bottom);
pDC->SelectObject(oldpen);
}
void node::finishflag(CView *pv)
{static char info0[]="节点级别: ";static char info1[]=" 节点编号: ";
char info2[]=" 模块: ";char info3[]=" 接口: ";unsigned cnt=0;
char bag[128];memset(bag,0,128);
memset(runinfo,0,1000);
for(unsigned i=0;i<sizeof(info0)-1;i++)
runinfo[cnt++]=info0[i];
runinfo[cnt++]=grade+'0';
for(i=0;i<sizeof(info1)-1;i++)
runinfo[cnt++]=info1[i];
gcvt(number,1,bag);
for(i=0;bag[i]!=0;i++)
runinfo[cnt++]=bag[i];
memset(bag,0,128);
for(i=0;i<sizeof(info2)-1;i++)
runinfo[cnt++]=info2[i];
if(pcmd!=NULL)
{for(i=0;i<pcmd->name_length;i++)
runinfo[cnt++]=pcmd->cmd_name[i];
for(i=0;i<sizeof(info3)-1;i++)
runinfo[cnt++]=info3[i];
for(i=0;i<pcmd->conector[funcnumber].function_length;i++)
runinfo[cnt++]=pcmd->conector[funcnumber].function_name[i];
}
pmv->node_info_out(runinfo);
memset(runinfo,1,1000);
CDC* pDC=pv->GetDC();
CPen* pNewPen=new CPen;
pNewPen->CreatePen(0,5,RGB(0,255,0));
CPen* oldpen=pDC->SelectObject(pNewPen);
pDC->Ellipse(dipan.left,dipan.top,dipan.right,dipan.bottom);
pDC->SelectObject(oldpen);
}
void node::move(dpt pt)
{
center+=pt;
dipan.left+=pt.x;
area.left+=pt.x;
dipan.right+=pt.x;
area.right+=pt.x;
dipan.top+=pt.y;
area.top+=pt.y;
dipan.bottom+=pt.y;
area.bottom+=pt.y;
for(unsigned int i=0;i<incnt;i++)
{
incenter[i]+=pt;
inleft[i]+=pt;
inright[i]+=pt;
inrect[i].left+=pt.x;
inrect[i].right+=pt.x;
inrect[i].top+=pt.y;
inrect[i].bottom+=pt.y;
if(binfrosen!=NULL)
{
if(binfrosen[i]==TRUE)
pptlist[i].move(pt);
}
}
for(i=0;i<outcnt;i++)
{ outcenter[i]+=pt;
outleft[i]+=pt;
outright[i]+=pt;
outrect[i].left+=pt.x;
outrect[i].right+=pt.x;
outrect[i].top+=pt.y;
outrect[i].bottom+=pt.y;
}
for(i=0;i<concnt;i++)
{ concenter[i]+=pt;
contop[i]+=pt;
conbottom[i]+=pt;
conrect[i].left+=pt.x;
conrect[i].right+=pt.x;
conrect[i].top+=pt.y;
conrect[i].bottom+=pt.y;
concenter[i+5]+=pt;
contop[i+5]+=pt;
conbottom[i+5]+=pt;
conrect[i+5].left+=pt.x;
conrect[i+5].right+=pt.x;
conrect[i+5].top+=pt.y;
conrect[i+5].bottom+=pt.y;
}
}
void ptlist::clear()
{
head=pdpt=tail=NULL;
}
void ptlist::draw(CDC *pDC)
{ if(head!=NULL)
pDC->MoveTo(head->x,head->y);
pdpt=head;
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?