C++-Windows下怎么让一个图片平铺在一个新开的编辑框中?
今天看到别人写的软件,是一个Windows的应用程序,某一功能下能够开启一个新的编辑框,里面可以插入图片,输入文字,编辑文字啥的,但是就有一点,那个框不怎么大,虽然可以调,但是如果我这个图片特别大的话,还是会不能完全显示。
我就想能不能够在载入图片的时候,直接将图片自适应这个编辑框。
譬如图片在画图中正常打开时,直观来看是30厘米X20厘米,但是那个框只有10厘米X10厘米,怎么让这个图片在这个框中完全显示,并且长宽保持同样的比例?就是宽30厘米给压到10厘米显示出来,高按照同样的比例显示出来。
我是好奇,应该会有一种方法可以实现。特别想尝试一个怎么实现。求各位指点一二。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
若是你的绘图用的是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)
可以直接用位图的形式来实现,不过感觉比较差。如果可以的话,你查查OpenGL来实现吧,实现起来不难,效果会好些!