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

📄 pmonitordlg.cpp

📁 一个操作系统资源监测器的需求、设计与实现
💻 CPP
📖 第 1 页 / 共 4 页
字号:
					cvalue2=new CStatic();
					rc=new CRect(210+181,178,210+217,196);
					str.Format("%d",diskInfo->getDUsedSize());
					cvalue2->Create(str+"(G)",SS_CENTER,*rc,this,IDC_TITLE24);
					cvalue2->ShowWindow(SW_SHOW);

					cntitle2=new CStatic();
					rc=new CRect(210+25,198,210+75,216);
					cntitle2->Create("簇大小:",SS_CENTER,*rc,this,IDC_TITLE25);
					cntitle2->ShowWindow(SW_SHOW);

					cnvalue2=new CStatic();
					rc=new CRect(210+76,198,210+116,216);
					str.Format("%d",diskInfo->getClusterSize());
					cnvalue2->Create(str,SS_CENTER,*rc,this,IDC_TITLE16);
					cnvalue2->ShowWindow(SW_SHOW);

					cutitle2=new CStatic();
					rc=new CRect(210+120,198,210+172,216);
					cutitle2->Create("簇个数:",SS_CENTER,*rc,this,IDC_TITLE27);
					cutitle2->ShowWindow(SW_SHOW);

					cuvalue2=new CStatic();
					rc=new CRect(210+174,198,210+215,216);
					str.Format("%d",diskInfo->getClusterNum());
					cuvalue2->Create(str,SS_CENTER,*rc,this,IDC_TITLE28);
					cuvalue2->ShowWindow(SW_SHOW);

					break;
				case 1:
					disk4=new CButton();
					rc=new CRect(210+23,191+42,210+223,191+220);
					disk4->Create(diskInfo->getDiskName(),BS_GROUPBOX,*rc,this,IDC_DISK4);
					disk4->ShowWindow(SW_SHOW);

					m_dused4.SetWindowPos(&(wndBottom),210+95,191+61,64,105,SWP_SHOWWINDOW);
					m_dused4.ShowWindow(SW_SHOW);
					diskvalue[index][0]=diskInfo->getDiskSize();
					diskvalue[index][1]=diskInfo->getDUsedSize();

					dtitle4=new CStatic();
					rc=new CRect(210+25,191+178,210+62,191+196);
					dtitle4->Create("容量:",SS_CENTER,*rc,this,IDC_TITLE41);
					dtitle4->ShowWindow(SW_SHOW);

					dvalue4=new CStatic();
					rc=new CRect(210+67,191+178,210+109,191+196);
					str.Format("%d",diskInfo->getDiskSize());
					dvalue4->Create(str+"(G)",SS_CENTER,*rc,this,IDC_TITLE42);
					dvalue4->ShowWindow(SW_SHOW);

					ctitle4=new CStatic();
					rc=new CRect(210+120,191+178,210+180,191+196);
					ctitle4->Create("使用容量:",SS_CENTER,*rc,this,IDC_TITLE43);
					ctitle4->ShowWindow(SW_SHOW);

					cvalue4=new CStatic();
					rc=new CRect(210+181,191+178,210+217,191+196);
					str.Format("%d",diskInfo->getDUsedSize());
					cvalue4->Create(str+"(G)",SS_CENTER,*rc,this,IDC_TITLE44);
					cvalue4->ShowWindow(SW_SHOW);

					cntitle4=new CStatic();
					rc=new CRect(210+25,191+198,210+75,191+216);
					cntitle4->Create("簇大小:",SS_CENTER,*rc,this,IDC_TITLE35);
					cntitle4->ShowWindow(SW_SHOW);

					cnvalue4=new CStatic();
					rc=new CRect(210+76,191+198,210+116,191+216);
					str.Format("%d",diskInfo->getClusterSize());
					cnvalue4->Create(str,SS_CENTER,*rc,this,IDC_TITLE46);
					cnvalue4->ShowWindow(SW_SHOW);

					cutitle4=new CStatic();
					rc=new CRect(210+120,191+198,210+172,191+216);
					cutitle4->Create("簇个数:",SS_CENTER,*rc,this,IDC_TITLE47);
					cutitle4->ShowWindow(SW_SHOW);

					cuvalue4=new CStatic();
					rc=new CRect(210+174,191+198,210+215,191+216);
					str.Format("%d",diskInfo->getClusterNum());
					cuvalue4->Create(str,SS_CENTER,*rc,this,IDC_TITLE48);
					cuvalue4->ShowWindow(SW_SHOW);

					break;
				case 2:
					disk6=new CButton();
					rc=new CRect(210+23,382+42,210+223,382+220);
					disk6->Create(diskInfo->getDiskName(),BS_GROUPBOX,*rc,this,IDC_DISK6);
					disk6->ShowWindow(SW_SHOW);

					m_dused6.SetWindowPos(&(wndBottom),210+95,382+61,64,105,SWP_SHOWWINDOW);
					m_dused6.ShowWindow(SW_SHOW);
					diskvalue[index][0]=diskInfo->getDiskSize();
					diskvalue[index][1]=diskInfo->getDUsedSize();

					dtitle6=new CStatic();
					rc=new CRect(210+25,382+178,210+62,382+196);
					dtitle6->Create("容量:",SS_CENTER,*rc,this,IDC_TITLE61);
					dtitle6->ShowWindow(SW_SHOW);

					dvalue6=new CStatic();
					rc=new CRect(210+67,382+178,210+109,382+196);
					str.Format("%d",diskInfo->getDiskSize());
					dvalue6->Create(str+"(G)",SS_CENTER,*rc,this,IDC_TITLE62);
					dvalue6->ShowWindow(SW_SHOW);

					ctitle6=new CStatic();
					rc=new CRect(210+120,382+178,210+180,382+196);
					ctitle6->Create("使用容量:",SS_CENTER,*rc,this,IDC_TITLE63);
					ctitle6->ShowWindow(SW_SHOW);

					cvalue6=new CStatic();
					rc=new CRect(210+181,382+178,210+217,382+196);
					str.Format("%d",diskInfo->getDUsedSize());
					cvalue6->Create(str+"(G)",SS_CENTER,*rc,this,IDC_TITLE64);
					cvalue6->ShowWindow(SW_SHOW);

					cntitle6=new CStatic();
					rc=new CRect(210+25,382+198,210+75,382+216);
					cntitle6->Create("簇大小:",SS_CENTER,*rc,this,IDC_TITLE65);
					cntitle6->ShowWindow(SW_SHOW);

					cnvalue6=new CStatic();
					rc=new CRect(210+76,382+198,210+116,382+216);
					str.Format("%d",diskInfo->getClusterSize());
					cnvalue6->Create(str,SS_CENTER,*rc,this,IDC_TITLE66);
					cnvalue6->ShowWindow(SW_SHOW);

					cutitle6=new CStatic();
					rc=new CRect(210+120,382+198,210+172,382+216);
					cutitle6->Create("簇个数:",SS_CENTER,*rc,this,IDC_TITLE67);
					cutitle6->ShowWindow(SW_SHOW);

					cuvalue6=new CStatic();
					rc=new CRect(210+174,382+198,210+215,382+216);
					str.Format("%d",diskInfo->getClusterNum());
					cuvalue6->Create(str,SS_CENTER,*rc,this,IDC_TITLE68);
					cuvalue6->ShowWindow(SW_SHOW);
				}
			}

			index++;
		}

		diskInfo=diskInfo->next;
	}

	//初始化显示Tag页“进程”内的信息
	m_list.InsertColumn(0,"进程名称",LVCFMT_RIGHT,250);
	m_list.InsertColumn(1,"CPU使用",LVCFMT_RIGHT,60);
	m_list.InsertColumn(2,"内存使用",LVCFMT_RIGHT,70);
	m_list.SetExtendedStyle(LVS_EX_FULLROWSELECT);

	//获取预警机制的等级与颜色
	int pos,start;

	//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++;
			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);
	}

	int x=0;
	for(int i=0;i<101;i++)
	{
		x=(int)(2.57*i);

		cpoint[i].x=x;
		cpoint[i].y=185;

		mpoint[i].x=x;
		mpoint[i].y=185;

		ipoint[i].x=x;
		ipoint[i].y=185;

		opoint[i].x=x;
		opoint[i].y=185;
	}

	for(i=0;i<4;i++)
	{
		for(int j=0;j<101;j++)
		{
			pervalue[i][j]=0;
		}
	}

	//初始化图像
	CWnd *pWnd;
	if(cflag)
	{
		int percent=sys->getCpuUsedRadio();

		int y=this->DrawDynBg(IDC_DYNCOL1,IDC_DYNPLOY1);

		pWnd=this->GetDlgItem(IDC_DYNCOL1);
		CDC *pDC1;
		pDC1=pWnd->GetDC();
		CRect rc1;
		pWnd->GetWindowRect(&rc1);
		pWnd->UpdateWindow();

		pWnd=GetDlgItem(IDC_DYNPLOY1);
		CDC *pDC2;
		pDC2=pWnd->GetDC();
		CRect rc2;
		pWnd->GetWindowRect(&rc2);
		pWnd->UpdateWindow();

		CString str;
		str.Format("%d",percent);
		str+="%";

		this->DrawDynGraph(pDC1,pDC2,rc1,rc2,y,cpu_count,percent,0,str);
	}

	if(mflag)
	{
		int y=this->DrawDynBg(IDC_DYNCOL2,IDC_DYNPLOY2);

		pWnd=this->GetDlgItem(IDC_DYNCOL2);
		CDC *pDC1;
		pDC1=pWnd->GetDC();
		CRect rc1;
		pWnd->GetWindowRect(&rc1);
		pWnd->UpdateWindow();

		pWnd=GetDlgItem(IDC_DYNPLOY2);
		CDC *pDC2;
		pDC2=pWnd->GetDC();

⌨️ 快捷键说明

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