,用于完成特定cāo作。
通常使用CDC 类的方法是传递一个CDC 的指针pDC 到OnDraw 函数,在OnDraw 函数
中调用它的成员函数完成绘图cāo作。
使用完毕后应该及时删除构造的CDC 对象。Windows 限制了可使用的设备上下文的数
量,如果删除一个设备上下文对象失败,将会占用一小部分内存,直到程序退出。要确保设
备上下文对象被删除,最容易的方法是在堆栈上构造对象。
也可通过CWnd::GetDC()成员函数来获得设备上下文指针,这种情况下必须调用
ReleaseDC 函数来释放设备环境。
7.3.2 GDI 对象
Windows 的GDI 对象都是从基类CGdiObject 派生而来。可以通过调用GDI 派生类的构
造函数来创建GDI 对象。GDI 对象如下:
? CBitmap;
? CBrush;
? CPen;
? CFont;
? CRgn;
? CPalette。
枫叶文学网www.fywxw.com
第7 章 图形图像
·167·
7.4 画笔和画刷
画笔(CPen)和画刷(CBrush)是最常用的两个GDI 对象。本节通过两个实例,详细
介绍这两个对象的使用方法。
7.4.1 画笔
实例7-1:画笔使用实例实例。源代码在光盘中“\07\实例7-1\CpuUsage”目录下。
1.创建程序
下面通过动态显示CPU 的使用记录的例子介绍画笔的使用方法。利用Visual C++的
AppWizard 创建一个基于对话框的应用程序CpuUsage,为对话框添加一个静态文本框控件和
一个group box 控件。为对话框类CCpuUsageDlg 添加成员变量,如表7-1 所示。
表7-1 CCpuUsageDlg 的成员变量表
成员变量 类型 作用
m_btnView CButton 显示区域
m_strCpuUsage CString 显示字符串
m_UsageHistory int[] CPU 使用记录
m_tcomr int 计时器
m_Usage CCpuUsage 测试Cpu 使用率类
2.编写代码
(1)初始化对话框
修改CCpuUsageDlg 的成员函数OnInitDialog,对变量做初始化。代码如下:
BOOL CCpuUsageDlg::OnInitDialog()
{
CDialog::OnInitDialog();
// Add "About..."comnu item to systemcomnu.
// IDM_ABOUTBOX must be in the system command range.
ASSERT((IDM_ABOUTBOX & 0xFFF0) == IDM_ABOUTBOX);
ASSERT(IDM_ABOUTBOX < 0xF000);