📄 miniframe.cpp
字号:
start=fstr.Find(" ",pos);
str=fstr.Mid(pos,start-pos);
color[2][3]=atoi(str);
start++;
pos=fstr.Find(" ",start);
str=fstr.Mid(start,pos-start);
level[2][3]=atoi(str);
}
start=fstr.Find("Level3",pos);
start+=7;
pos=fstr.Find(" ",start);
str=fstr.Mid(start,pos-start);
if(str=="Sel")
{
pos++;
start=fstr.Find(" ",pos);
str=fstr.Mid(pos,start-pos);
color[2][2]=atoi(str);
start++;
pos=fstr.Find(" ",start);
str=fstr.Mid(start,pos-start);
level[2][2]=atoi(str);
}
start=fstr.Find("Level4",pos);
start+=7;
pos=fstr.Find(" ",start);
str=fstr.Mid(start,pos-start);
if(str=="Sel")
{
pos++;
start=fstr.Find(" ",pos);
str=fstr.Mid(pos,start-pos);
color[2][1]=atoi(str);
start++;
pos=fstr.Find(" ",start);
str=fstr.Mid(start,pos-start);
level[2][1]=atoi(str);
}
start=fstr.Find("Level5",pos);
start+=7;
pos=fstr.Find(" ",start);
str=fstr.Mid(start,pos-start);
color[2][0]=atoi(str);
pos++;
start=fstr.Find("<",start);
str=fstr.Mid(pos,start-pos);
level[2][0]=atoi(str);
}
//网络流出量
fstr=param->getCStringValue("FRAME4");
if(fstr=="")
{
level[3][0]=10;
level[3][1]=50;
level[3][2]=80;
level[3][3]=90;
level[3][4]=100;
color[3][0]=255;
color[3][1]=16744703;
color[3][2]=16744576;
color[3][3]=65280;
color[3][4]=12632256;
}
else
{
start=fstr.Find("Level1",0);
start+=7;
pos=fstr.Find(" ",start);
str=fstr.Mid(start,pos-start);
if(str=="Sel")
{
pos++;
start=fstr.Find(" ",pos);
str=fstr.Mid(pos,start-pos);
color[3][4]=atoi(str);
level[3][4]=100;
}
start=fstr.Find("Level2",pos);
start+=7;
pos=fstr.Find(" ",start);
str=fstr.Mid(start,pos-start);
if(str=="Sel")
{
pos++;
start=fstr.Find(" ",pos);
str=fstr.Mid(pos,start-pos);
color[3][3]=atoi(str);
start++;
pos=fstr.Find(" ",start);
str=fstr.Mid(start,pos-start);
level[3][3]=atoi(str);
}
start=fstr.Find("Level3",pos);
start+=7;
pos=fstr.Find(" ",start);
str=fstr.Mid(start,pos-start);
if(str=="Sel")
{
pos++;
start=fstr.Find(" ",pos);
str=fstr.Mid(pos,start-pos);
color[3][2]=atoi(str);
start++;
pos=fstr.Find(" ",start);
str=fstr.Mid(start,pos-start);
level[3][2]=atoi(str);
}
start=fstr.Find("Level4",pos);
start+=7;
pos=fstr.Find(" ",start);
str=fstr.Mid(start,pos-start);
if(str=="Sel")
{
pos++;
start=fstr.Find(" ",pos);
str=fstr.Mid(pos,start-pos);
color[3][1]=atoi(str);
start++;
pos=fstr.Find(" ",start);
str=fstr.Mid(start,pos-start);
level[3][1]=atoi(str);
}
start=fstr.Find("Level5",pos);
start+=7;
pos=fstr.Find(" ",start);
str=fstr.Mid(start,pos-start);
color[3][0]=atoi(str);
pos++;
start=fstr.Find("<",start);
str=fstr.Mid(pos,start-pos);
level[3][0]=atoi(str);
}
}
void CMINIFRAME::DrawDynInfo(int obj, int nID)
{
int value=0,index=0;
int * values;
int xpos=0,ypos=0;
int W=0,H=0;
int width=20,heigth=20;
COLORREF curColor=0;
switch(obj)
{
case CPU_USAGE:
value=sys->getCpuUsedRadio();
cpu_inf.Format("%d",value);
cpu_inf="CPU:\r\n"+cpu_inf+"%";
index=this->CheckLevel(value,0);
if(index==-1)
{
curColor=RGB(2,252,4);
}
else
{
curColor=this->color[0][index];
}
break;
case MEMORY_USAGE:
values=sys->getMemoryUsedInfo();
memory_inf.Format("%d",values[0]);
memory_inf="内存:\r\n"+memory_inf;
index=this->CheckLevel(values[1],1);
if(index==-1)
{
curColor=RGB(2,252,4);
}
else
{
curColor=this->color[1][index];
}
value=values[1];
break;
case NETWORK_INPUT_USAGE:
value=sys->getNetWorkInput();
input_inf.Format("%dK",value);
input_inf="网络流入量:\r\n"+input_inf;
value=(int)(((float)value/1024/100)*100);
index=this->CheckLevel(value,2);
if(index==-1)
{
curColor=RGB(2,252,4);
}
else
{
curColor=this->color[2][index];
}
break;
case NETWORK_OUTPUT_USAGE:
value=sys->getNetWorkOutput();
output_inf.Format("%dK",value);
output_inf="网络流出量:\r\n"+output_inf;
value=(int)(((float)value/1024/100)*100);
index=this->CheckLevel(value,3);
if(index==-1)
{
curColor=RGB(2,252,4);
}
else
{
curColor=this->color[3][index];
}
}
CWnd *pWnd=this->GetDlgItem(IDC_PLATFORM);
CRect rc;
pWnd->GetWindowRect(&rc);
W=rc.Width()/count;
H=rc.Height();
width=W-4;
heigth=H-5;
xpos=W*nID+2;
ypos=2;
CDC *pDC=pWnd->GetWindowDC();
//pDC->FillSolidRect(0,0,rc.Width(),rc.Height(),RGB(106,150,244));
this->DrawBackGround(pDC,xpos,ypos,width,heigth);
this->DrawCurrent(pDC,xpos,ypos,width,heigth,value,curColor);
}
void CMINIFRAME::DrawBackGround(CDC *pDC, int x0, int y0, int dx, int dy)
{
pDC->FillSolidRect(x0,y0,dx,dy,RGB(0,0,0));
for(int i=1;i<dx;i=i+2)
{
for(int j=0;j<dy;j=j+2)
{
pDC->FillSolidRect(x0+i,y0+j,1,1,RGB(22,81,59));
}
pDC->FillSolidRect(x0+i+1,y0,1,dy,RGB(22,81,59));
}
}
int CMINIFRAME::CheckLevel(int usage, int nID)
{
for(int i=0;i<5;i++)
{
if(usage<=level[nID][i])
{
return i;
}
}
return -1;
}
void CMINIFRAME::DrawCurrent(CDC *pDC, int x0, int y0, int dx, int dy, int percent, COLORREF curColor)
{
if(percent>100)
{
percent=100;
}
int pos=(int)(((float)dy/100)*percent);
pDC->FillSolidRect(x0,y0+dy-pos,dx,pos,curColor);
}
//DEL void CMINIFRAME::OnLButtonDown(UINT nFlags, CPoint point)
//DEL {
//DEL // TODO: Add your message handler code here and/or call default
//DEL
//DEL CDialog::OnLButtonDown(nFlags, point);
//DEL
//DEL //GetParentFrame()->PostMessage(WM_NCLBUTTONDOWN,HTCAPTION,MAKELPARAM(point.x,point.y));
//DEL }
//////////////////
// Non-client hit-test handler to move window by its client area.
// If the user clicks anywhere on the client area, pretend it's the
// caption. Windows does the rest!
//
//DEL UINT CMINIFRAME::OnNcHitTest(CPoint pt)
//DEL {
//DEL CRect rc;
//DEL GetClientRect(&rc);
//DEL ClientToScreen(&rc);
//DEL return rc.PtInRect(pt) ? HTCAPTION : CDialog::OnNcHitTest(pt);
//DEL }
void CMINIFRAME::OnClose()
{
// TODO: Add your message handler code here and/or call default
/*for(int i=0;i<count;i++)
{
this->KillTimer(i);
}*/
CDialog::OnClose();
}
void CMINIFRAME::OnCtrl()
{
// TODO: Add your control notification handler code here
for(int i=0;i<count;i++)
{
this->KillTimer(i);
}
CDialog::EndDialog(0);
this->parent->ShowWindow(SW_SHOW);
}
void CMINIFRAME::OnMouseMove(UINT nFlags, CPoint point)
{
// TODO: Add your message handler code here and/or call default
//CString str;
CWnd *pWnd=this->GetDlgItem(IDC_PLATFORM);
CRect rc,*nowrc;
pWnd->GetWindowRect(&rc);
CDC *pDC=pWnd->GetWindowDC();
pDC->SetTextAlign(TA_CENTER);
pDC->SetBkColor(RGB(255,255,255));
pDC->SetTextColor(RGB(0,0,0));
switch(this->CheckPoint(point,rc))
{
case 1:
//pDC->TextOut(cx,cy,cpu_inf);
nowrc=new CRect(cx,cy,cx+dh,rc.Height()-3);
pDC->DrawText(cpu_inf,nowrc,DT_WORDBREAK+DT_CENTER);
break;
case 2:
pDC->TextOut(cx,cy,memory_inf);
break;
case 3:
pDC->TextOut(cx,cy,input_inf);
break;
case 4:
pDC->TextOut(cx,cy,output_inf);
}
CDialog::OnMouseMove(nFlags, point);
}
int CMINIFRAME::CheckPoint(CPoint p,CRect rc)
{
int width=rc.Width();
int heigth=rc.Height();
int dw=width/count;
for(int i=0;i<count;i++)
{
if(p.x>=(dw*i+2)&&p.x<=(dw*(i+1)-2)&&p.y>=2&&p.y<=heigth-3)
{
cx=dw*i+2;
cy=2;
dh=dw-4;
return i+1;
}
}
return 0;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -