7.2 绘制视图背景
教学录像:光盘\TM\lx\7\绘制视图背景.exe
绘制视图的背景可以在视图类的OnDraw函数中进行。使用GetClientRect函数获得视图的客户区域。
语法格式如下:
void GetClientRect( LPRECT lpRect ) const;
|
其中,lpRect是指客户区域的大小。
调用CDC类的StretchBlt函数绘制视图的背景。
例7.1 绘制视图的背景。(实例位置:光盘\TM\sl\7\1)
步骤如下:
(1)创建一个单文档应用程序。
(2)选择工作区窗口中的ResourceView选项卡,导入一个位图资源。
(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(); //释放内存设备上下文 }
|
实例的运行结果如图7.9所示。
|
| 图7.9 绘制视图的背景 |
【责任编辑:
夏书 TEL:(010)68476606】