请问怎么让图片根据图片框的大小自动伸缩? 也就是让图片框具有stretch的属性,使得图片自适应图片框控件的大小,多谢! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 用StretchBlt只不过图像会变形失真,需要自己对位图进行处理. 相应控件的wm_size消息,在里面重新画一下就可以了GetClientRect,然后在DC里面画,一般不直接在dc里画,而是用CreateCompatibleDC创建一个dc,在这里画完后,在BitBlt到dc里面去 用gdi+ CDC* pDC=m_picHolder.GetWindowDC(); CRect rc; m_picHolder.GetClientRect(&rc); rc.InflateRect(-10,-20,-20,-30); Rect dstRect(rc.left,rc.top,rc.right,rc.bottom); Graphics graphics(pDC->GetSafeHdc()); Image imgJpg(m_lpstreamImage);graphics.DrawImage(&imgJpg,dstRect,0,0,imgJpg.GetWidth(),imgJpg.GetHeight(),UnitPixel); m_picHolder.ReleaseDC(pDC); 简单说一下使用gdi+的方法在stdafx.h加入#include "gdiplus.h"#pragma comment(lib,"gdiplus.lib");using namespace Gdiplus;在InitInstance中加入GdiplusStartupInput gdiplusStartupInput; GdiplusStartup(&gdiplusToken, &gdiplusStartupInput, NULL);在ExitInstance加入GdiplusShutdown(gdiplusToken);变量gdiplusToken是CXXXAPP的成员变量当然还有很多关于图形的操作,请查看msdn关于gdi+的帮助 VC++奇怪的错误 程序只能放在C盘运行,为什么? 怎么定义网络通讯协议 如何将任务栏和开始菜单隐藏? 在MFC中关于CFile类的问题... 强烈建议斑竹把恶意攻击网站的不法分子举报公安机关!!支持的就顶!! 新手提问^_^ 在RichEditCtrl2.0 中FindText为何总是返回-1? oracle里的一个函数返回一个数据集,ADO如何接收? socket怎么一次用send()发送四个字节 两次发送的信息为什么一次就能全部接收到?这个问题怎样解决?在线等~~~谢谢 100分请教
只不过图像会变形失真,需要自己对位图进行处理.
GetClientRect,然后在DC里面画,一般不直接在dc里画,而是用CreateCompatibleDC创建一个dc,在这里画完后,在BitBlt到dc里面去
CRect rc;
m_picHolder.GetClientRect(&rc);
rc.InflateRect(-10,-20,-20,-30);
Rect dstRect(rc.left,rc.top,rc.right,rc.bottom);
Graphics graphics(pDC->GetSafeHdc());
Image imgJpg(m_lpstreamImage);
graphics.DrawImage(&imgJpg,dstRect,0,0,imgJpg.GetWidth(),imgJpg.GetHeight(),UnitPixel);
m_picHolder.ReleaseDC(pDC);
在stdafx.h加入
#include "gdiplus.h"
#pragma comment(lib,"gdiplus.lib");
using namespace Gdiplus;在InitInstance中加入
GdiplusStartupInput gdiplusStartupInput;
GdiplusStartup(&gdiplusToken, &gdiplusStartupInput, NULL);
在ExitInstance加入
GdiplusShutdown(gdiplusToken);
变量gdiplusToken是CXXXAPP的成员变量
当然还有很多关于图形的操作,请查看msdn关于gdi+的帮助