全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:1619
推到 Plurk!
推到 Facebook!

Canvas如何保持不消失?

尚未結案
oakchung
一般會員


發表:3
回覆:2
積分:1
註冊:2006-10-17

發送簡訊給我
#1 引用回覆 回覆 發表時間:2006-11-21 10:32:13 IP:61.219.xxx.xxx 訂閱
各位大大好:

小弟在此學到了不少關於編寫程式的知識,對我的工作幫助極大....

目前我使用Form.canvas來畫圖,可正常執行,但只要有別的視窗彈出並覆蓋圖形位置的話,再將該視窗縮小(或關閉)則圖形就消失了,並須再重畫一次。有辦法讓圖形一直出現而不消失嗎?

另外,我在 on Resize 中執行圖形重畫,會有閃爍的現象,可以避免嗎?

先說聲謝謝囉!!
psl
一般會員


發表:6
回覆:30
積分:7
註冊:2003-06-11

發送簡訊給我
#2 引用回覆 回覆 發表時間:2006-11-21 22:08:57 IP:220.143.xxx.xxx 未訂閱

被蓋住了 自行畫的圖會不見 這是一定的
因為 VCL 預設的處理函式並不知道你自己多畫了什麼
當被覆蓋的視窗重新回到上方時 會有個 message 發出到視窗 好像是 WM_PAINT
將你的繪圖程式碼也寫到 OnPaint 這個 event handle 內就可以了

重畫會閃爍
解決辦法是使用 double-buffer
原本你是直接畫到 form.canvas........
現在改成畫到一個 buffer 上 這樣問題就解決了

我沒有寫的很詳細 實作方法可能就自行努力一下囉 ^____^
oakchung
一般會員


發表:3
回覆:2
積分:1
註冊:2006-10-17

發送簡訊給我
#3 引用回覆 回覆 發表時間:2006-11-22 09:05:14 IP:61.219.xxx.xxx 訂閱

謝謝指導,我也趕快的去試試,但卻會一直閃個不停....努力中


===================引 用 文 章===================

被蓋住了 自行畫的圖會不見 這是一定的
因為 VCL 預設的處理函式並不知道你自己多畫了什麼
當被覆蓋的視窗重新回到上方時 會有個 message 發出到視窗 好像是 WM_PAINT
將你的繪圖程式碼也寫到 OnPaint 這個 event handle 內就可以了

重畫會閃爍
解決辦法是使用 double-buffer
原本你是直接畫到 form.canvas........
現在改成畫到一個 buffer 上 這樣問題就解決了

我沒有寫的很詳細 實作方法可能就自行努力一下囉 ^____^
oakchung
一般會員


發表:3
回覆:2
積分:1
註冊:2006-10-17

發送簡訊給我
#4 引用回覆 回覆 發表時間:2006-11-22 09:32:35 IP:61.219.xxx.xxx 訂閱
原來是我將Repaint寫到on paint中才會不斷閃爍。問題已解決....再說聲謝謝

希望我的功力可以進步到幫別人解決問題.....工作去囉

===================引 用 文 章===================

謝謝指導,我也趕快的去試試,但卻會一直閃個不停....努力中


===================引 用 文 章===================

被蓋住了 自行畫的圖會不見 這是一定的
因為 VCL 預設的處理函式並不知道你自己多畫了什麼
當被覆蓋的視窗重新回到上方時 會有個 message 發出到視窗 好像是 WM_PAINT
將你的繪圖程式碼也寫到 OnPaint 這個 event handle 內就可以了

重畫會閃爍
解決辦法是使用 double-buffer
原本你是直接畫到 form.canvas........
現在改成畫到一個 buffer 上 這樣問題就解決了

我沒有寫的很詳細 實作方法可能就自行努力一下囉 ^____^
系統時間:2024-05-17 11:09:40
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!