📄 miniframe.cpp
字号:
// MINIFRAME.cpp : implementation file
//
#include "stdafx.h"
#include "PMonitor.h"
#include "MINIFRAME.h"
#include "Parameter.h"
#include "SysInfo.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
///////////////
#define CPU_USAGE 0
#define MEMORY_USAGE 1
#define NETWORK_INPUT_USAGE 2
#define NETWORK_OUTPUT_USAGE 3
/////////////////////////////////////////////////////////////////////////////
// CMINIFRAME dialog
CMINIFRAME::CMINIFRAME(CWnd* pParent /*=NULL*/)
: CDialog(CMINIFRAME::IDD, pParent)
{
//
//{{AFX_DATA_INIT(CMINIFRAME)
//}}AFX_DATA_INIT
}
void CMINIFRAME::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CMINIFRAME)
DDX_Control(pDX, IDC_CTRL, m_control);
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CMINIFRAME, CDialog)
//{{AFX_MSG_MAP(CMINIFRAME)
ON_WM_PAINT()
ON_WM_TIMER()
ON_WM_CLOSE()
ON_BN_CLICKED(IDC_CTRL, OnCtrl)
ON_WM_MOUSEMOVE()
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CMINIFRAME message handlers
//自定义全局变量
int cx=0,cy=0,dh=0;
CString cpu_inf="",memory_inf="",input_inf="",output_inf="";
int count=0;
int selobj[4]={-1,-1,-1,-1};
CSysInfo *sys=new CSysInfo();
BOOL CMINIFRAME::OnInitDialog()
{
CDialog::OnInitDialog();
// TODO: Add extra initialization here
//获取预警信息
this->GetLevelInfo();
//确定监测对象
if(objFlag[0]) //CPU
{
selobj[count]=CPU_USAGE;
this->SetTimer(count,this->COLCYC*1000,NULL);
count++;
}
if(objFlag[1]) //内存
{
selobj[count]=MEMORY_USAGE;
this->SetTimer(count,this->COLCYC*1000,NULL);
count++;
}
if(objFlag[2]) //网络流入量
{
selobj[count]=NETWORK_INPUT_USAGE;
this->SetTimer(count,this->COLCYC*1000,NULL);
count++;
}
if(objFlag[3]) //网络流出量
{
selobj[count]=NETWORK_OUTPUT_USAGE;
this->SetTimer(count,this->COLCYC*1000,NULL);
count++;
}
//确定窗口的大小和位置
this->SetWindowPos(&(wndTopMost),600,0,56+40*count,36,SWP_SHOWWINDOW);
//设定放大控制键
bitmap.LoadBitmap(IDB_MAXARROW);
this->m_control.SetBitmap((HBITMAP)bitmap.m_hObject);
return TRUE; // return TRUE unless you set the focus to a control
// EXCEPTION: OCX Property Pages should return FALSE
}
void CMINIFRAME::OnPaint()
{
CPaintDC dc(this); // device context for painting
// TODO: Add your message handler code here
CWnd *pWnd=this->GetDlgItem(IDC_PLATFORM);
pWnd->UpdateWindow();
CRect rc;
pWnd->GetWindowRect(&rc);
CDC *pDC=pWnd->GetWindowDC();
pDC->FillSolidRect(0,0,rc.Width(),rc.Height(),RGB(106,150,244));
this->GetClientRect(rc);
dc.FillSolidRect(0,0,rc.Width(),rc.Height(),RGB(106,150,244));
// Do not call CDialog::OnPaint() for painting messages
}
void CMINIFRAME::OnTimer(UINT nIDEvent)
{
// TODO: Add your message handler code here and/or call default
switch(nIDEvent)
{
case 0:
this->DrawDynInfo(selobj[0],0);
break;
case 1:
this->DrawDynInfo(selobj[1],1);
break;
case 2:
this->DrawDynInfo(selobj[2],2);
break;
case 3:
this->DrawDynInfo(selobj[3],3);
}
CDialog::OnTimer(nIDEvent);
}
void CMINIFRAME::PassData(int *flag,int colCyc)
{
this->objFlag=flag;
this->COLCYC=colCyc;
}
void CMINIFRAME::GetLevelInfo()
{
CString fstr,str;
int start,pos;
CParameter * param=new CParameter();
//CPU
fstr=param->getCStringValue("FRAME1");
if(fstr=="")
{
level[0][0]=10;
level[0][1]=50;
level[0][2]=80;
level[0][3]=90;
level[0][4]=100;
color[0][0]=255;
color[0][1]=16744703;
color[0][2]=16744576;
color[0][3]=65280;
color[0][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[0][4]=atoi(str);
level[0][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[0][3]=atoi(str);
start++;
pos=fstr.Find(" ",start);
str=fstr.Mid(start,pos-start);
level[0][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[0][2]=atoi(str);
start++;
pos=fstr.Find(" ",start);
str=fstr.Mid(start,pos-start);
level[0][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[0][1]=atoi(str);
start++;
pos=fstr.Find(" ",start);
str=fstr.Mid(start,pos-start);
level[0][1]=atoi(str);
}
start=fstr.Find("Level5",pos);
start+=7;
pos=fstr.Find(" ",start);
str=fstr.Mid(start,pos-start);
color[0][0]=atoi(str);
pos++;
start=fstr.Find("<",start);
str=fstr.Mid(pos,start-pos);
level[0][0]=atoi(str);
}
//内存
fstr=param->getCStringValue("FRAME2");
if(fstr=="")
{
level[1][0]=10;
level[1][1]=50;
level[1][2]=80;
level[1][3]=90;
level[1][4]=100;
color[1][0]=255;
color[1][1]=16744703;
color[1][2]=16744576;
color[1][3]=65280;
color[1][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[1][4]=atoi(str);
level[1][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[1][3]=atoi(str);
start++;
pos=fstr.Find(" ",start);
str=fstr.Mid(start,pos-start);
level[1][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[1][2]=atoi(str);
start++;
pos=fstr.Find(" ",start);
str=fstr.Mid(start,pos-start);
level[1][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[1][1]=atoi(str);
start++;
pos=fstr.Find(" ",start);
str=fstr.Mid(start,pos-start);
level[1][1]=atoi(str);
}
start=fstr.Find("Level5",pos);
start+=7;
pos=fstr.Find(" ",start);
str=fstr.Mid(start,pos-start);
color[1][0]=atoi(str);
pos++;
start=fstr.Find("<",start);
str=fstr.Mid(pos,start-pos);
level[1][0]=atoi(str);
}
//网络流入量
fstr=param->getCStringValue("FRAME3");
if(fstr=="")
{
level[2][0]=10;
level[2][1]=50;
level[2][2]=80;
level[2][3]=90;
level[2][4]=100;
color[2][0]=255;
color[2][1]=16744703;
color[2][2]=16744576;
color[2][3]=65280;
color[2][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[2][4]=atoi(str);
level[2][4]=100;
}
start=fstr.Find("Level2",pos);
start+=7;
pos=fstr.Find(" ",start);
str=fstr.Mid(start,pos-start);
if(str=="Sel")
{
pos++;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -