C++-Windows下怎么让一个图片平铺在一个新开的编辑框中?

发布于 2016-12-30 09:42:34 字数 311 浏览 1248 评论 2

今天看到别人写的软件,是一个Windows的应用程序,某一功能下能够开启一个新的编辑框,里面可以插入图片,输入文字,编辑文字啥的,但是就有一点,那个框不怎么大,虽然可以调,但是如果我这个图片特别大的话,还是会不能完全显示。
我就想能不能够在载入图片的时候,直接将图片自适应这个编辑框。
譬如图片在画图中正常打开时,直观来看是30厘米X20厘米,但是那个框只有10厘米X10厘米,怎么让这个图片在这个框中完全显示,并且长宽保持同样的比例?就是宽30厘米给压到10厘米显示出来,高按照同样的比例显示出来。
我是好奇,应该会有一种方法可以实现。特别想尝试一个怎么实现。求各位指点一二。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

浮生未歇 2017-06-21 05:55:30

若是你的绘图用的是GDI+,可以用其API函数--DrawImage()来对图像进行缩放显示。

VOID Example_DrawImage9(HDC hdc)

{
Graphics graphics(hdc);

// Create an Image object.
Image image(L"climber.jpg");

// Create a Pen object.
Pen pen (Color(255, 255, 0, 0), 2);

// Draw the original source image.
graphics.DrawImage(&image, 10, 10);

// Create a Rect object that specifies the destination of the image.
Rect destRect(200, 50, 150, 75);

// Draw the rectangle that bounds the image.
graphics.DrawRectangle(&pen, destRect);

// Draw the image.
graphics.DrawImage(&image, destRect);
}

参考链接:Graphics.DrawImage(Image*, const Rect) method (Windows)

虐人心 2017-02-20 18:38:10

可以直接用位图的形式来实现,不过感觉比较差。如果可以的话,你查查OpenGL来实现吧,实现起来不难,效果会好些!

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文