半圆仪表盘_头条文章--用仪表盘在 PowerPoint里动态监测内存状态

前期,我给大家分享过在Excel中实现用仪表盘方式动态瞬时监测内存使用状态信息的功能,根据粉丝的反响,感觉还不错吧,有粉丝建议我能不能直接用PowerPoint弄一个这种功能的监测仪表盘呢?本来想,很简单的,无非就是代码的移植修改,但是事后想了想,尽管我看起来简单,但是各位网友未必都如此认为。

于是乎今天,我再次跟大家分享在PowerPoint环境下实现了同样的功能吧!好了,我们现在就来分享我的实现吧!

一、仪表盘和仪表指针的制作

(一)仪表盘的制作

我们可以在PowerPoint中建立一个半圆饼图图表。如下图所示

46fc5d3b72d70d3d122c4e7391662f76.png

图1 半圆饼图图表

为该半圆饼图图表设置数据标签,并设置各系列数据标签在图表上的适当位置、标签文字大小等。如下图所示

12acf70626efd183ae9802edde48dbaf.png

图2 半圆饼图数据标签设置

打开一个新的PowerPoint环境,复制刚才的半圆饼图到本演示文档的环境中来,用QQ截图的方式将半圆饼图截图,并对齐原图表,绘制一个与半圆饼图同心但半径略小的圆。如下图所示

b62a99c5b41fdf1e7ad3dc3ad3ccf77d.png

图3 同心的绘制圆和截图

接着,给半圆图表截图用透明色去背景,然后按住键依次选中截图的半圆图表、绘制的同心圆,再用PowerPoint的合并图形的剪裁功能。如下图所示

e6917e35aee3119c4e3a48e1f5bd7b5b.png

图4 选择合并图形功能

执行上图的裁剪功能后,将得到仪表盘。如下图所示

2e5193b4da397e42369492901a1435bb.png

图5 用PowerPoint合并成的仪表盘图形

最后,将这个制作的仪表盘图形复制到本PowerPoint中去。

(二)仪表盘指针的制作

同样在刚才那个新环境的PowerPoint中绘制仪表盘指针,主要采用绘制三个图形:小黑圆、等腰梯形两个;通过对齐、组合的变化,将组合的图形旋转中心对齐到小黑圆的中心。如下图所示

dd2832b3062c203272ccdc25589ca08f.png

图6 绘制好的仪表指针

然后,复制改仪表指针图形到本PowerPoint中去。

(三)仪表的部件图形命名

图形的命名很重要,方便通过图形名称使用。为此,我们将仪表盘和指针分别复制了一份,将第一份规定为物理内存使用状态的仪表(仪表盘名称“仪表盘_物理”,指针名称“仪表指针_物理”),将第二份规定为虚拟内存使用状态的仪表(仪表盘名称“仪表盘_虚拟”,指针名称“仪表指针_虚拟”)。最后的仪表效果如下图所示

9f0030396d329ab878e5df72013feb88.png

图7 物理、虚拟仪表

二、PowerPoint前端界面其他部件布局

添加四个ActiveX标签控件、两个ActiveX按钮、两个ActiveX文本框。整体布局如下图所示

e2bc8b44cd55961e6fb545e33330bc0b.png

图8 PowerPoint前端界面整体布局

三、实现仪表动态监测内存使用状态的功能代码

标准模块----模块1中的代码:

'声明GlobalMemoryStatus函数,需要在该模块(如“模块1”等)顶部增加一条语句,该语句通知Visual Basic GlobalMemoryStatus函数 _

的功能以及它需要哪些类型的参数。该函数所需的参数名是lpBuffer,双字符前缀lp指明该参数是长整型指针,指向收集来的系统内存用 _

法信息的存放位置的内存地址,该参数没有使用VB标准数据类型(比如:Integer、String或Boolean类型等),而是使用称之 _

为“MemoryStatus”的用户自定义类型来声明,在访问GlobalMemoryStatus函数之前,必须在标准模块中声明一个MemoryStatus类型的全 _

局变量,这样才能把信息传递给GlobalMemoryStatus函数并返回结果。该类型包含8个数值分量,用来指明计算机中物理内存和虚拟内存的 _

状态。而MemoryStatus类型在API访问期间保持数据的聚集(MemoryStatus类型保存调用GlobalMemoryStatus函数时收集的数据)

Public Declare Sub GlobalMemoryStatus Lib "kernel32" (lpBuffer As MemoryStatus)

'定义一个公有的“内存状态”MemoryStatus类型的结构,其成员包括如下内部所示,成员前面冠以的“dw”意思是“double words双字符”

Public Type MemoryStatus

dwLength As Long '存放“内存状态”MemoryStatus类型的“长度”(长整型Long)

dwMemoryLoad As Long '内存使用载入的数量(长整型Long)

dwTotalPhys As Long '“内存状态”类型的“总共的物理内存”成员:dwTotalPhys(长整型Long)

dwAvailPhys As Long '“内存状态”类型的“可获得(即可用的)的物理内存”成员:dwAvailPhys(长整型Long)

dwTotalPageFile As Long '“内存状态”类型的“总共的分页文件字节数”成员:dwTotalPageFile(长整型Long)

dwAvailPageFile As Long '“内存状态”类型的“可获得(即可用的)的分页文件字节数”成员:dwAvailPageFile(长整型Long)

dwTotalVirtual As Long '“内存状态”类型的“总共的虚拟内存”成员:dwTotalVirtual(长整型Long)

dwAvailVirtual As Long '“内存状态”类型的“可获得(即可用的)的虚拟内存”成员:dwAvailVirtuall(长整型Long)

End Type

'定义公有类型的内存信息对象memInfo(类型为MemoryStatus),仪表工作状态标志flag

Public memInfo As MemoryStatus, flag As Boolean

'定义公有类型的物理内存仪表盘Shp_Panel_Phys和物理内存指针Shp_Meter_Hand_Phys图形对象

Public Shp_Panel_Phys As Shape, Shp_Meter_Hand_Phys As Shape

'定义公有类型的虚拟内存仪表盘Shp_Panel_Virt和虚拟内存指针Shp_Meter_Hand_Virt图形对象

Public Shp_Panel_Virt As Shape, Shp_Meter_Hand_Virt As Shape

Sub OnSlideShowTerminate() '活动放映结束或强行按了键终止放映的触发事件

MsgBox "您不想继续监测电脑内存状态啦,谢谢使用,再见!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值