绘制视图背景
绘制视图的背景可以通过在视图类的OnDraw函数中进行。使用GetClientRect函数获得视图的客户区域。
语法:
void GetClientRect( LPRECT lpRect ) const;
lpRect:客户区域的大小。
调用CDC类的StretchBlt函数绘制视图的背景。
例如,下面通过实例来实现绘制视图的背景,程序设置步骤如下:
(1)创建一个单文档应用程序。
(2)选择工作区窗口的RecourceView选项卡,导入一个位图资源。
(3)在视图类的OnDraw函数中绘制视图背景,代码如下。
void CDrawBKView::OnDraw(CDC* pDC)
{
CDrawBKDoc* pDoc = GetDocument();
ASSERT_VALID(pDoc);
CBitmap m_Bitmap; //声明CBitmap对象
m_Bitmap.LoadBitmap(IDB_BITMAP1); //加载位图资源
CDC memDC; //设备上下文
memDC.CreateCompatibleDC(pDC); //创建内存设备上下文
memDC.SelectObject(&m_Bitmap); //将位图选人设备上下文
BITMAP m_Bmp; //声明BITMAP对象
m_Bitmap.GetBitmap(&m_Bmp); //获得位图信息
int x = m_Bmp.bmWidth; //获得位图的宽度
int y = m_Bmp.bmHeight; //获得位图的高度
CRect rect; //声明区域对象
GetClientRect(rect); //获得编辑框客户区域
pDC->StretchBlt(0,0,rect.Width(),rect.Height(),&memDC,0,0,x,y,SRCCOPY); //绘制位图背景
memDC.DeleteDC(); //释放内存设备上下文
}
实例的运行结果如图1所示。
.jpg)
图1 绘制视图的背景