線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:1402
推到 Plurk!
推到 Facebook!

dc使用上的問題

缺席
kaija
一般會員


發表:16
回覆:14
積分:6
註冊:2003-07-24

發送簡訊給我
#1 引用回覆 回覆 發表時間:2007-11-14 14:34:35 IP:210.202.xxx.xxx 訂閱
我想建立一個暫存的 DC
一開始不想讓該 DC 的內容顯示到畫面上
因為重複把東西建入 DC 會很耗費系統效能
所以該 DC 的內容只建立一次
之後有需要再去取出繪製至螢幕上

可是我碰到一個問題QQ


[code cpp]
HDC hDevice = NULL;
HDC hTemp = NULL;

if( hSlideDC == NULL )
{
hDevice = GetDC( hAppWindow );
hTemp = CreateCompatibleDC( hDevice );
hSlideDC = CreateCompatibleDC( hDevice );

SelectObject( hTemp, hBackground );
BitBlt( hSlideDC, 0, 0, 200, 200, hTemp, 0, 0, SRCCOPY );
BitBlt( hDevice, 0, 0, 200, 200, hSlideDC, 0, 0, SRCCOPY );

DeleteDC( hTemp );
ReleaseDC( hAppWindow );
}

[/code]

hSlideDC 是我希望儲存固定內容的 dc
hTemp 則是 function 內的區域變數
上面的這段程式碼並無法正確畫面內容
但是下方如果直接從 hTemp 輸出到視窗的 dc (確定 hTemp 是有內容的)
卻可以看到內容
請教一下前輩們
這個是為什麼呀

[code cpp]
HDC hDevice = NULL;
HDC hTemp = NULL;

if( hSlideDC == NULL )
{
hDevice = GetDC( hAppWindow );
hTemp = CreateCompatibleDC( hDevice );
hSlideDC = CreateCompatibleDC( hDevice );

SelectObject( hTemp, hBackground );
BitBlt(
hDevice, 0, 0, 200, 200, hTemp, 0, 0, SRCCOPY );

DeleteDC( hTemp );
ReleaseDC( hAppWindow );
}

[/code]
jow
尊榮會員


發表:66
回覆:751
積分:1253
註冊:2002-03-13

發送簡訊給我
#2 引用回覆 回覆 發表時間:2007-11-14 14:48:21 IP:210.66.xxx.xxx 訂閱
DC 最好是用畢即歸還...
這樣才不會浪費系統資源.

編輯記錄
jow 重新編輯於 2007-11-14 14:56:21, 註解 看錯題意了!!!‧
kaija
一般會員


發表:16
回覆:14
積分:6
註冊:2003-07-24

發送簡訊給我
#3 引用回覆 回覆 發表時間:2007-11-14 14:54:43 IP:218.210.xxx.xxx 訂閱

===================引 用 jow 文 章===================
DC 用畢即歸還, 很正常啊
這樣才不會浪費系統資源.
=================================================

不太瞭解您想表達的是什麼 QQ
hSlideDC 在程式結束時會被釋放掉
這是有的
但是我在程式執行的過程中
我想要 hSlideDC 的內容是固定不變的
這樣我在做繪製的時候才不會因為要重複把東西拿出來還回去浪費效能
kaija
一般會員


發表:16
回覆:14
積分:6
註冊:2003-07-24

發送簡訊給我
#4 引用回覆 回覆 發表時間:2007-11-14 22:20:39 IP:122.121.xxx.xxx 訂閱
解了


[code cpp]
HBITMAP hBitmap;

SelectObject( hSlideDC, hBitmap );

[/code]

在Bitblt 到 hSlideDC 之前補上這兩行就好了
系統時間:2024-05-05 16:35:00
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!