首页 > 编程知识 正文

backset函数基本用法(strcat函数用法举例)

时间:2023-05-03 09:54:52 阅读:74721 作者:3130

StretchBlt和BitBlt用于双缓冲区视图中显示图像

一. StretchBlt

函数将位图从源矩形复制到目标矩形,并根据需要在目标设备设置的模式下缩放图像。 也就是说,可以将存储器中的位图复制到屏幕上,根据屏幕的绘制区域的大小进行伸缩,并适应于响应的屏幕(或图像控制)

OOLstretchblt(intx,int y,int nWidth,int nHeight,CDC* pSrcDC,int xSrc,int ySrc,int nSrcWidth,int nSrcHeight,dworrorc(获取图像控件的DC后,该值一般设为 0 )y :逻辑单元y轴左上角的坐标;(获取图像控件的DC后,该值一般设为 0 )nWidth :设备矩形宽度;(即是图像控件的宽度,通过int rcWidth = rc.right - rc.left;来获得,rc为保存了图像控件矩形区坐标信息)nHeight :设备矩形高度;(即是图像控件的高度,通过int rcHeight = rc.bottom - rc.top;来获得)pSrcDC :源设备上下文;(就是我们定义的内存DC,然后取地址)xSrc :源矩形x轴左上角坐标;(一般都是整幅图片拷贝,所以该值为 0 )ySrc :源矩形y轴左上角坐标; 3358 www.Sina.com/specifies the x-coordinate (inlogicalunits ) of the upper-leftcornerofthesourcerectangle.nsr cwidth 3335(一般都是整幅图片拷贝,所以该值为 0 )

二、BitBlt函数该函数将指定源设备环境区域内的像素转换为比特块(bit_block )并传输到目标设备环境。

CDC:BitBlt

3358 www.Sina.com/x http://www.Sina.com/y http://www.Sina.com/nwidth 3358 www.Sina.com/nheight 3358 www.Sina xsrsr

(如果我们定义了一个结构体BITMAP类型m_bmp保存位图信息,那么可以用m_bmp.bmWidth获取宽度)

( 如果我们定义了一个结构体BITMAP类型m_bmp保存位图信息,那么可以用m_bmp.bmHeight获取宽度)

(这个有很多选择,我们一般选择SRCCOPY:将源矩形区域直接拷贝到目标矩形区域。)

BOOL BitBlt(int

BitBlt函数并不拉伸或压缩原始位图,而是根据给定的nWidth、nHeight值确定显示哪些部分

, int

voidcenvirmonibeta1view :3360 show bitmap (CDC * PDC,CString TotalName,const RECT rc ) )。

{

//根据显示图像的函数LoadImage位图(或图像)的完整路径名TotalName加载图像

HBITMAP m_hBitmap;

m_hbitmap=(hbitmap ) loadimage (空,TotalName,IMAGE_BITMAP,0,0,lr _ load from file|lr _ defaultsize|ll

//以前,在类中定义了CBitmap类的对象m_bitmap,

if(m_bitmap.m_hobject ) )。

{

m_bitmap.Detach (; //m_bitmap是创建的位图对象

}

m_bitmap.attach(m_hbitmap; //将位图对象m_bitmap与我们加载的位图相关联(加载的位图只需要提供一个位图句柄) )。

//定义并创建内存设备环境

CDC m_dcMemory;

if (! 33558 www.Sina.com/. createcompatibledc (PDC ) )//创建兼容的DC

返回;

, int

位图位图;

m _ bitmap.getbitmap (http://www.Sina.com /

CBitmap *pbmpOld=NULL; 33558 www.Sina.com/. select object (m _ bitmap ); //将位图选择为临时存储器设备环境

//获取屏幕绘制区域(图像控件)的宽度和高度

int rcWidth=rc.right - rc.left;

int rcHeight=rc.bottom - rc.top;

//图像显示调用函数BitBlt

PDC-bitblt (0,0,RC宽度,rcHeight,dcBmp,0,0,SRCCOPY );

//想要自动拟合图像和矩形区域时,使用以下函数

//PDC-stretchblt (0,0,rcWidth,rcHeight,dcBmp,0,0,bitmap.bmWidth,bitmap.bmHeight,SRCCOPY );

//接下来是善后处理

DBMP.selectobject(PBMpold ); //恢复临时直流的位图

删除对象(m _ bitmap; //删除位图

dcBmp.DeleteDC (; //删除后台直流

//Invalidate (; 调用OnDraw继续显示图像

}

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。