インターネットで多くの例を読みましたが、まだ立ち往生しています。アプリケーションに送信された WM_PAINT メッセージを処理しようとしています。
私のアプリケーションでは、常に という名前の同じ DC を描画しg_hDC
ます。それは完全に機能します。を受け取ると、 my の内容を から返された DC にWM_PAINT
描画しようとします。私が描いた最後のビットマップが含まれていると思います。だから私はそれを元に戻したいだけです。g_hDC
BeginPaint
g_hDC
case WM_PAINT:
PAINTSTRUCT ps;
int ret;
HDC compatDC;
HDC currentDC;
HDC paintDC;
HBITMAP compatBitmap;
HGDIOBJ oldBitmap;
paintDC = BeginPaint(g_hWnd, &ps);
currentDC = GetDC(g_hWnd);
compatDC = CreateCompatibleDC(paintDC);
compatBitmap=CreateCompatibleBitmap(paintDC, CONFIG_WINDOW_WIDTH, CONFIG_WINDOW_HEIGHT);
oldBitmap=SelectObject(compatDC, compatBitmap);
ret = BitBlt(compatDC,
ps.rcPaint.left,
ps.rcPaint.top,
ps.rcPaint.right - ps.rcPaint.left,
ps.rcPaint.bottom - ps.rcPaint.top,
currentDC,
ps.rcPaint.left,
ps.rcPaint.top,
SRCCOPY);
ret = BitBlt(paintDC,
ps.rcPaint.left,
ps.rcPaint.top,
ps.rcPaint.right - ps.rcPaint.left,
ps.rcPaint.bottom - ps.rcPaint.top,
compatDC,
ps.rcPaint.left,
ps.rcPaint.top,
SRCCOPY);
DeleteObject(SelectObject(compatDC, oldBitmap));
DeleteDC(compatDC);
DeleteDC(currentDC);
EndPaint(g_hWnd, &ps);
壊す;
しかし、それは白い長方形を描くだけです...私は多くの可能性を試しましたが、何もうまくいきません。手伝ってくれませんか?