(画質が悪い=デバッグウインドウなどの文字がつぶれる現象として、レスします。)
bmpsaveの問題と思われます。
ちょくとさんのサンプルのDeleteDC hdcScreen の後ろに、
次のコードを入れると、原因が分かりやすいと思います。
screen 1, sx, sy
gcopy 2, 0, 0, sx, sy
ちょくとさんのサンプルでは、画面のコピーをbuffer2に入れています。
これをscreen1にコピーし、表示するコードです。
screen1に表示される内容は、画質が良い状態です。
その後にあるbmpsaveで、画面を保存すると、画質が落ちます。
(screen1を保存しても同じです。)
※screen1のサイズは画面と同じなので、表示されていないように
見えるので、注意して下さい。
回避策として、buffer2などの内容を取得して、BMPデータを作り、
bsaveなどで保存する方法などが考えられますが、
そのあたりは、かなり高度な話題になりそうなので、
きれいな画像が必要な場合は、挑戦してみて下さい。
ちなみに、32bitが24bitに落ちても、画質は低下しないはずです。
BMP形式の場合
24bit:R,G,B 各8bit
32bit:R,G,B,予約 各8bit (予約の部分は、他の形式でアルファ(透明度)にあたる部分)