PAINTSTRUCT ps;
HDC hdc = BeginPaint(hWnd, &ps);
// TODO: 在此處添加使用 hdc 的任何繪圖代碼...
HDC hdcsrc = CreateCompatibleDC(hdc);
HBITMAP hbm = CreateCompatibleBitmap(hdcsrc, WINDOW_X, WINDOW_Y);
SelectObject(hdcsrc, hbm);
do_something();//這裡將位圖畫到hdcsrc上
BitBlt(hdc, 0, 0, WINDOW_X, WINDOW_Y, hdcsrc, 0, 0, SRCCOPY);
DeleteObject(hbm);
DeleteDC(hdcsrc);
EndPaint(hWnd, &ps);
運行結果是純黑色的,然而繪圖部分
dosomething();
直接畫到hdc上是正常的沒問題的
PAINTSTRUCT ps;
HDC hdc = BeginPaint(hWnd, &ps);
// TODO: 在此處添加使用 hdc 的任何繪圖代碼...
do_something();//這裡將位圖畫到hdcsrc上
EndPaint(hWnd, &ps);
這樣就沒問題,請問這是什麼原因造成的。。
一整天也沒解決。
CreateCompatibleBitmap(hdcsrc, WINDOW_X, WINDOW_Y);
-->
CreateCompatibleBitmap(hdc, WINDOW_X, WINDOW_Y);
另外你確定你的do_something()中使用的dc是hdcsrc嗎?