私はWindows(7とXPの両方-両方とも32ビット)を使用しており、C++でコーディングしています
外部ソースからビットマップを受信しています。これらのビットマップは固定解像度(384x288)です
ビットマップを受け取った後、可変サイズのレイアウトに基づいてサイズを変更する必要があるため、現在、StretchBltを使用してこれらのタスクを実行しています。
画面上の画像でビットマップのサイズを大きくすると、これはうまく機能します。
ただし、着信ビットマップを小さいバージョンに縮小して画面に配置すると、画像上で発生する奇妙な「ボクシング」タイプの効果が得られます。
次の例では、ソース画像は3つのパネルのそれぞれで同じです。ただし、左側の2つ(サイズを小さく)は両方ともボクシング/ライン効果があります。

実際のStretchBlt呼び出しでは、次のようにします。
memcpy(at_TempPointer[PortNo], // Destination
(void *)VideoBufferAddress, // Source
FIXED_IMAGE_WIDTH * FIXED_IMAGE_HEIGHT * BYTES_PER_PIXEL // Number of bytes
);
StretchBlt(at_ImageDC[PortNo], // HDC Dest
0, // X Origin Dest
0, // Y Origin Dest
at_Width[PortNo], // Width Dest
at_Height[PortNo], // Height Dest
at_GhDC[PortNo], // HDC Source
0, // X Origin Source
0, // Y Origin Source
FIXED_IMAGE_WIDTH, // Width Source
FIXED_IMAGE_HEIGHT, // Height Source
SRCCOPY // Graphic Operation
);
しかし、おそらく問題は他の場所にあるのだろうかと思います。
他の誰かが、私がそれを修正する方法を知っているこの種のサイズ変更画像の破損の経験がありますか?