oldpen = pDC->SelectObject(&curpen);
pDC->MoveTo(rect.left, rect.bottom);
// 用线段近似曲线
for(int i=0; i
{
x = rect.left + (int)(i*xinterval);
y = rect.bottom - (int)(m_UsageHistory[i]*yinterval);
pDC->LineTo(x, y);
}
// 恢复设备上下文
pDC->SelectObject(oldpen);
curpen.DeleteObject();
}
(4)动态绘制CPU 使用记录
响应CCpuUsageDlg 的WM_PAINT 消息,用来动态绘制CPU 使用记录,代码如下:
void CCpuUsageDlg::OnPaint()
枫叶文学网www.fywxw.com
第7 章 图形图像
·171·
{
if (IsIconic())
{
……
}
else
{
CPaintDC dc(this);
// 绘制CPU 使用记录
DrawDiagram(&dc);
}
}
(5)释放资源
最后,响应CCpuUsageDlg 的WM_DESTROY 消息,在程序退出时,删除定时器,释放
系统资源,代码如下:
void CCpuUsageDlg::OnDestroy()
{
CDialog::OnDestroy();
// 释放定时器资源
KillTcomr(m_tcomr);
}
(6)运行结果
程序运行后, 界面如图7-2 至7-5 所示。
枫叶文学网www.fywxw.com
Visual C++ 6.0 程序设计从入门到精通
·172·
图7-2 Cpu 使用记录1
图7-3 Cpu 使用记录2
图7-4 Cpu 使用记录3 枫叶文学网www.fywxw.com
第7 章 图形图像
·173·
图7-5 CPU 使用记录
7.4.2 画刷
实例7-2:画刷使用实例实例。源代码在光盘中“\07\实例7-2\Color”目录下。
1.创建程序
本节利用CDC 类的一个函数和画刷来取得指定点的颜色。首先用Visual C++的
AppWizard 创建一个基于对话框的应用程序Color,为对话框添加两个图像框控件。为
CColorDlg 添加如表7-2 所示的成员变量,。
表7-2 CColorDlg 的成员变量表
成员变量 类型 作用
m_StaticC