VC内部培训资料——第9章 修改框架程序的显示效(12)

发布时间:2021-06-07

修改框架程序的显示效果

VC++培训教程草稿(2000年撰写) 张孝祥、袁龙友著 网址:

看到位图的一部分,如果想在视图窗口上显示整个位图而不管视图窗口多大时,可以用StretchBlt函数。

步骤4:修改CEX09_02View::OnDraw函数代码,将位图拉伸显示,代码如下: void CEX09_02View::OnDraw(CDC* pDC) { CEX09_02Doc* pDoc = GetDocument(); }

ASSERT_VALID(pDoc);

// TODO: add draw code for native data here //产生一个兼容DC CDC dcCompatible;

dcCompatible.CreateCompatibleDC(pDC); //创建及装入位图资源 CBitmap bmp;

bmp.LoadBitmap(IDB_BITMAP1); //将位图选入兼容DC

dcCompatible.SelectObject(&bmp); //将兼容DC上的内容拷入当前DC上 CRect rect;

GetClientRect(&rect); //获取位图信息

BITMAP bitmap;

bmp.GetBitmap(&bitmap);

可以看出,函数的语句去掉了,而且又添加最后的三条代码。

新加的代码中首先定义了一个BITMAP结构类型的对象bitmap,BITMAP结构包含很多数据成员,如bmType、、bmHeight等等,这些数据成员包含位图的相关信息。

代码是将位图bmp的信息及属性取出放到先前定义的bitmap变量中。

StretchBlt将位图贴到视图窗口,并且调节位图大小来适应视

int x, int y, int nWidth, int nHeight, CDC* pSrcDC, int xSrc,

, int nSrcWidth, int nSrcHeight, DWORD dwRop );

x和y,分别表示目的矩形的左上角的x坐标和y坐标。 nWidth和nHeight,分别表示目的矩形的宽度和高度。

第五个参数pSrcDC,指向包含位图的源DC。

第六、七个参数xSrc、ySrc,分别表示源矩形(即源DC)左上角的x和y坐标。 第八、九个参数nSrcWidth、nSrcHeight,分别表示源矩形(即源DC)的宽度和高度,本例中通过调用bitmap.bmWidth,bitmap.bmHeight取得位图的宽度和高度,这两个值也就是源DC的高度和宽度。其中bmWidth和bmHeight就是BITMAP结构中用来表示位图宽度和高度的两个数据成员。

编译运行程序,结果如图9-10所示,不管视图窗口怎么样改变,都可以显示完整的位

VC内部培训资料——第9章 修改框架程序的显示效(12).doc 将本文的Word文档下载到电脑

精彩图片

热门精选

大家正在看

× 游客快捷下载通道(下载后可以自由复制和排版)

限时特价:7 元/份 原价:20元

支付方式:

开通VIP包月会员 特价:29元/月

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:fanwen365 QQ:370150219