您所在的位置: 首页 > 读书频道 > 设计开发 > C++ >

7.2 绘制视图背景

http://book.51cto.com  2008-10-13 13:46  刘锐宁/宋坤  机械工业出版社  我要评论(0)
  • 摘要:《Visual C++从入门到精通》第7章文档/视图程序设计,这一章将详细介绍视图的操作,为日后编程打下良好的基础。讲解过程中为了便于读者理解结合了大量的举例。本小节讲述的是绘制视图背景。
  • 标签:Visual C++  程序设计  C++  Visual C++从入门到精通

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】

回书目   上一节   下一节
C++是垃圾语言?!
VC++基础开发专题
C++开发专栏
互联网时代的软件革命—SaaS架构设计
ASP.NET 3.5入门经典--涵盖C#和VB.NET(第5版)
 
 验证码: (点击刷新验证码)   匿名发表
  • 互联网时代的软件革命—SaaS架构设计

  • 作者:叶伟等著
  • 本书是国内第一本完整介绍SaaS应用开发的书籍,聚集于架构设计。内容是互联网领域具有丰富实践经验的8位一线架构师,对于多年Sa..
Copyright©2005-2008 51CTO.COM 版权所有