程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> 編程解疑 >> 兼容dc-關於雙緩沖繪圖所使用兼容DC的問題

兼容dc-關於雙緩沖繪圖所使用兼容DC的問題

編輯:編程解疑
關於雙緩沖繪圖所使用兼容DC的問題

            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嗎?

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved