设为首页 加入收藏

TOP

11.1.2 将位图文件绘制成对话框背景
2013-10-07 00:11:26 来源: 作者: 【 】 浏览:62
Tags:11.1.2 位图 文件 制成 对话 背景

11.1.2  将位图文件绘制成对话框背景

在编写应用程序时,为了美化界面,通常会为对话框添加背景,但是使用控件显示图片时,当对话框大小改变时要改变显示图片的大小就很麻烦。为了解决这一问题,可以使用CDC类的StretchBlt函数将图片以对话框的大小绘制到对话框中,这样在对话框的大小改变时只要重新绘制一下图片就可以了。StretchBlt函数用位图的指定矩形部分和设备环境中指定的矩形区域贴图,如果位图的矩形部分同当前设备环境部分大小不一致,则将位图进行压缩或放大。
语法:

BOOL StretchBlt( int x, int y, int nWidth, int nHeight, CDC* pSrcDC, int xSrc, int ySrc, int nSrcWidth, int nSrcH
eight, DWORD dwRop );

StretchBlt函数参数说明如表11.4所示。

表11.4 StretchBlt函数参数说明
参    数 描    述
x 左上角横坐标
y 左上角纵坐标
nWidth 显示宽度
nHeight 显示高度
pSrcDC 设备环境指针
xSrc 复制位图左上角横坐标
ySrc 复制位图左上角纵坐标
nSrcWidth 源位图宽度
nSrcHeight 源位图高度
dwRop 光栅操作类型

例如:
将位图文件绘制成对话框背景的程序设计步骤如下。
ch1101实例位置:mr\11\sl\01
(1)创建一个基于对话框的应用程序。
(2)在工作区窗口选择ResourceView视图,右键单击任意节点,在快捷菜单中选择Insert菜单项,向对话框中导入一个BMP位图资源。
(3)在对话框的OnPaint函数中添加代码,将BMP位图资源绘制成对话框背景,代码如下:

void CBackdropDlg::OnPaint() 
{
……//此处代码省略
CRect rect;
GetClientRect(&rect);
CDC* pDC = GetDC();   
//将位图选进设备场景中
CBitmap cbitmap;
cbitmap.LoadBitmap(IDB_BITMAP1);
CDC memdc;
BITMAP bmp;
memdc.CreateCompatibleDC(pDC);
memdc.SelectObject(&cbitmap);
cbitmap.GetBitmap(&bmp);
pDC->StretchBlt(rect.left,rect.top,rect.Width(),rect.Height(),&memdc,0,0,
bmp.bmWidth,bmp.bmHeight,SRCCOPY);
}
(4)程序运行效果如图11.1所示。

图11.1  将位图文件绘制成对话框背景

【责任编辑:阚书 TEL:(010)68476606】

回书目   上一节   下一节

】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇11.1.1 位图文件结构分析 下一篇11.1.4 在程序中显示JPEG与GIF文件

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: