0

ソース ビットマップに基づいて独自の長方形のボタンを描画するコードがいくつかあります。

ほとんどの場合、宛先ボタンはソース ビットマップ イメージよりも大きく、StretchBlt は正常に動作します。ただし、宛先がソース イメージより小さい場合、StretchBlt は宛先領域全体を塗りつぶすことを拒否します。

画像の縮小に関しては、StretchBlt の品質が良くないことは知っていますが、それについてはあまり心配していません。欠落したピクセルが欲しくないだけです。

上部にソース画像、下部に宛先のリンクがあります。

リンク テキスト 注、実際にはソース イメージの一部を宛先に縮小しています。画像全体を縮小しているわけではありません。たとえば、BitBlt() を使用して角のサイズをサイズにコピーし、ソース イメージの角の間の水平方向のピクセル データを転送先の DC に引き伸ばします (押しつぶします)。

出発地と目的地の座標に問題はありません。SRCCOPY から WHITENESS に変更すると、予想どおり、領域全体が白で塗りつぶされます。上の Broken.bmp 画像に見られるように、ピクセルがコピーされていない灰色のバーはありません。

誰かが以前にこの問題を抱えていましたか? もしそうなら、誰かが解決策を提案できますか?

乾杯

4

1 に答える 1

0

私は問題を解決しました。StretchBlt()には何の問題もありません。問題は、作成して作業中のDCに関連付けたビットマップが小さすぎて画像を収容できないため、画像が切り捨てられていたことです。おっと。

于 2009-12-03T21:58:02.430 に答える