掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
画面更新 (ID:53117)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
えーとDirectDrawは使いません。 基本的に考え方は同じなんですけどね。 WindowsAPIだけで描画する場合は初期化時(WM_CREATE)に、 1.ビットマップハンドルを作成。 2.メモリDC作成。 3.2で作成したメモリDCにビットマップハンドルを関連づける。 としてバックバッファ用のメモリDCを作成し、全てここに描画します。 (例) 初期化で、 hBackBitmap = CreateCompatibleBitmap(hdc, 640, 480); hBackMemDC = CreateCompatibleDC(hdc); SelectObject(hBackMemDC, hBackBitmap); 実際の描画は、 BitBlt(hBackMemDC, 0, 0, 幅、高さ、描画するメモリDC, ...); BitBlt(hBackMemDC, 0, 0, 幅、高さ、描画するメモリDC2, ...); BitBlt(hBackMemDC, 0, 0, 幅、高さ、描画するメモリDC3, ...); . . . と、全てバックバッファに描画してWM_PAINTでは、 BeginPaint( hWnd, &ps ); BitBlt(ps.hdc, 0, 0, 640, 480, hBackMemDC, 0, 0, SRCCOPY ); EndPaint( hWnd, &ps ); このような感じになります。 ちなみにDirectDrawでウィンドウの場合フリップではなくセカンダリ(バックバッファ)>プライマリにBltします。 また何か分らなかったら質問して下さい。 それでは。
←解決時は質問者本人がここをチェックしてください。
戻る
掲示板システム
Copyright 2020 Takeshi Okamoto All Rights Reserved.