質問

C ++でWin32でプロジェクトを行い、描画されている画像を2倍にバッファーしようとしますが、正しいビットマップが描かれたブラックスクリーンを取得しています。また、これは私のwm_mousemove状態を引き起こしており、ビットマップをカーソルと一緒にドラッグしてビットマップを描かないようにします。ペイントのコードは以下のとおりです。ペイント()はWM_Paintの下のWNDProcで呼び出されます。スクロールはスクロールバーの位置であり、これまでに使用されていません。

int paint(HWND hWnd, HINSTANCE hInst, RECT clientRect, std::vector<Measure> *measures, int scroll)
{
int x = 90;
hdc = BeginPaint(hWnd, &ps);
hdcmem = CreateCompatibleDC(hdc);
HBITMAP hbmScreen = CreateCompatibleBitmap(hdc, clientRect.right, clientRect.bottom);
SelectObject(hdcmem,hbmScreen); 
/*these functions just create the bitmaps into hdcmem*/
drawStaff(hWnd, hInst, clientRect, x, 0);
drawKey(hWnd, hInst, clientRect, x, (*measures)[0], 0);
drawTime(hWnd, hInst, clientRect, x, (*measures)[0], 0);
drawNotes(hWnd, hInst, clientRect, measures, x);
    BitBlt(hdc, 0, 0, clientRect.right, clientRect.bottom, hdcmem, 0, 0, SRCCOPY);
ReleaseDC(hWnd, hdcmem);
return 0;
}
役に立ちましたか?

解決

他のグラフィックを描く前に、最初に背景色が何であれ、ビットマップを埋める必要があります。メモリが正しく私に役立つ場合、ビットマップは作成されたときにデフォルトで黒で満たされます。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top