0

我有一些代码可以根据源位图绘制我自己的矩形按钮。

大多数时候目标按钮比我的源位图图像大,并且 StretchBlt 工作正常。但是,当目标小于源图像时,StretchBlt 拒绝填充整个目标区域。

我知道 StretchBlt 在缩小图像时的质量不是很好,但我并不太担心。我只是不想丢失像素。

这是顶部的源图像和底部的目标图像的链接:

链接文本 注意,我实际上是将源图像的一部分缩小到目标中。我没有缩小整个图像。因此,例如,我使用 BitBlt() 复制角大小的大小,然后将角之间的水平像素数据从源图像拉伸(挤压)到目标 DC。

我的源坐标和目标坐标没有错。如果我从 SRCCOPY 更改为 WHITENESS,整个区域将如您所料填充为白色。正如您在上面的 Broken.bmp 图像中看到的那样,没有灰色条没有复制像素。

以前有没有人遇到过这个问题,如果有,有人可以提出解决方案吗?

干杯

4

1 回答 1

0

我已经解决了这个问题。StretchBlt() 没有任何问题。问题是我创建并与我的工作 DC 相关联的位图太小而无法容纳图像,因此它会截断它。哎呀。

于 2009-12-03T21:58:02.430 回答